- 000001_AAHScout
- 000002_AAHScout-MPR
- 000003_t2-loca
- 000004_b1-map-xfl-sag-Amplitude
- 000005_b1-map-xfl-sag-Phase
- 000006_b1-map-xfl-sag-B1-Ampli-CP-mode
- 000007_b1-map-xfl-sag-VR
- 000008_b0-gre-field-mapping
- 000009_b0-gre-field-mapping
- 000010_t1-mp2rage-sag-iso0.75mm-INV1
- 000011_t1-mp2rage-sag-iso0.75mm-INV1-PHS
- 000012_t1-mp2rage-sag-iso0.75mm-T1-Images
- 000013_t1-mp2rage-sag-iso0.75mm-UNI-DEN
- 000014_t1-mp2rage-sag-iso0.75mm-UNI-Images
- 000015_t1-mp2rage-sag-iso0.75mm-INV2
- 000016_t1-mp2rage-sag-iso0.75mm-INV2-PHS
- 000017_t2star-map-gre-sag-iso0.8mm-VCConline
- 000018_t2star-map-gre-sag-iso0.8mm-VCConline
- 000019_T2Star-Images
- 000020_t2-tse-7T-cor-0.3x0.3x1.2mm-Block1
- 000021_t2-tse-7T-cor-0.3x0.3x1.2mm-Block2
- 000022_T2HR-fusionBlock1Block2
- number of files: 6028
- total size: 1.7 GB
An MRI operator was sending the above dataset repeatedly from the Siemens console, while I was changing the configuration of the storescp test instance for each transfer experiment. The transfer times were measured manually by the MRI operator, they do not include the "preparation time" of the Siemens console.
Experiment 1
With Nagle's algorithm, and with --ignore option to avoid the overhead of writing to the storage system.
Code: Select all
storescp --aetitle PtkDSU-NS-TEST --log-config log-config_test.cfg --disable-host-lookup --ignore 1104
- 6'18" (6 minutes and 18 seconds) for 1865 files (instead of the total 6028), therefore very approx. 10 Mb/s
Experiment 2
Disabling Nagle's algorithm, and with --ignore option to avoid the overhead of writing to the storage system.
Code: Select all
export TCP_NODELAY=1
storescp --aetitle PtkDSU-NS-TEST --log-config log-config_test.cfg --disable-host-lookup --ignore 1104
- 45" (45 seconds) for 1.7 GB, approx. 310 Mb/s
Experiment 3
Disabling Nagle's algorithm, with --ignore option to avoid the overhead of writing to the storage system, and -pdu 100000
Code: Select all
export TCP_NODELAY=1
storescp --aetitle PtkDSU-NS-TEST --log-config log-config_test.cfg --disable-host-lookup --ignore -pdu 100000 1104
- 45" (45 seconds) for 1.7 GB, approx. 310 Mb/s
Experiment 4
Disabling Nagle's algorithm, and without --ignore to take into account the overhead of writing to the storage system.
Code: Select all
export TCP_NODELAY=1
storescp --aetitle PtkDSU-NS-TEST --log-config log-config_test.cfg --disable-host-lookup --output-directory /storage/system/path/database/.TEST/.INCOMING 1104
- 2'13" (2 minutes and 13 seconds) for 1.7 GB, approx. 105 Mb/s
- Very clearly Nagle's algorithm looks like the main culprit for the painfully slow transfers to our CentOS 6.5 DICOM server. With Nagle's algorithm enabled, transfers are slowed down by more than an order of magnitude. I'm not sure how to interpret that, the algorithm itself cannot be that bad so I guess this may be specific to our context.
- is it expected that sending 6028 files instead of 399 files, with a similar total size of ~ 1.6 GB, is half as slow? Any suggestions on how to improve things on that front?
- Our storage system, accessed from the DICOM server using NFS, is also slowing down transfers considerably. Of course, the large number of small files only makes things worse - we are highly aware of that.
- Should I use test different values apart from -pdu 100000? Perhaps -pdu 262144?