Slower than expected movescu performance Ubuntu 24.04 VM orthanc 1.12 from Ubuntu apt repo

orthanc and DCMTK movescu on same host i.e. all localhost

orthanc pkgs from ubuntu repo

VMware ESXI Ubuntu 24.04 desktop 16 GB RAM 24 GB swap 6 CPUs everything on SSD drive

Getting data from orthanc server is much slower than making a copy:

time /usr/bin/movescu  -k StudyInstanceUID=“1.3.51.0.1.1.142.76.63.34.9009420.3014930” -od DICOMs/identified --port 4243 -aet ROBERTLOCAL -aec ORTHANC -aem ROBERTLOCAL2 localhost 4242

real	1m9.759s
user	0m0.559s
sys	0m0.873s

Results above with postgres backend. Initially tried with default DB (SQLite). It made no difference.

du -sh DICOMs/identified/
551M	DICOMs/identified/

Making a copy is much faster:

time cp -R DICOMs/identified copy/

real	0m0.627s
user	0m0.008s
sys	0m0.616s

I expect that cp might finish before all data is truly copied due to buffered IO.
Could DCMTK movesu be the cause for slowness?

CPU usage for orthanc and movescu are low 2-4% during pull..

Background info
Orthanc log attached.

dpkg -l | grep orthanc
ii  orthanc                                       1.12.2+dfsg-1build4                      amd64        Lightweight, RESTful DICOM server for medical imaging
ii  orthanc-dicomweb                              1.16+dfsg-1build2                        amd64        Plugin to extend Orthanc with support of WADO and DICOMweb
ii  orthanc-doc                                   1.12.2+dfsg-1build4                      all          Documentation of Orthanc
ii  orthanc-gdcm                                  1.6+dfsg-1build2                         amd64        DICOM transcoder/decoder for Orthanc using GDCM (notably for JPEG2k)
ii  orthanc-postgresql                            5.0+dfsg-2build3                         amd64        Plugins to use PostgreSQL as a database back-end to Orthanc
ii  orthanc-webviewer                             2.8-4build1                              amd64        Web viewer of medical images for Orthanc

dpkg -l | grep postgres
ii  orthanc-postgresql                            5.0+dfsg-2build3                         amd64        Plugins to use PostgreSQL as a database back-end to Orthanc
ii  postgresql                                    16+257build1.1                           all          object-relational SQL database (supported version)
ii  postgresql-16                                 16.10-0ubuntu0.24.04.1                   amd64        The World's Most Advanced Open Source Relational Database
ii  postgresql-client-16                          16.10-0ubuntu0.24.04.1                   amd64        front-end programs for PostgreSQL 16
ii  postgresql-client-common                      257build1.1                              all          manager for multiple PostgreSQL client versions
ii  postgresql-common                             257build1.1                              all          PostgreSQL database-cluster manager
diff postgresql.json  original_configuration/postgresql.json 
11c11
< 	"EnableIndex" : true,
---
> 	"EnableIndex" : false,
21c21
< 	"Password" : "OBFUSCATED",
---
> 	"Password" : "my_password",


diff orthanc.json  original_configuration/orthanc.json 
375,376c375
<     "robertlocal" : [ "ROBERTLOCAL", "127.0.0.1", 4242 ],
<     "robertlocal2" : [ "ROBERTLOCAL2", "127.0.0.1", 4243 ]
---
>

Orthanc_log.txt (7.0 KB)

Thanks for the information.

Happy to investigate further with guidance. J’espérais plus … :smiling_face:

To me, you can not compare cp performance with storescu + orthanc since they are doing much more than just copying bytes from a place to another. They have no reason to be as efficient as cp.

cp might work in parallel → try to spin multiple storescu in parallel too.

Merci Alain.
Agreed. I did this unfair comparison to confirm that there are no issues with disk IO on my VM. DICOM transfer slower than I expected. I will experiment with several storescu’s a+