Hello Guys.
I need some help with the performance of my Orthanc server. Before describing the issue, I would like to explain the infrastructure I am using.
-
Orthanc is running on an EC2 instance (t3.2xlarge) with 8 vCPUs and 32 GB of RAM
-
For storage, I am using Amazon S3
-
As a database, I am using PostgreSQL running on RDS
Note: All services are in the same region (us-east-1).
The problem is that my server is taking about 7 minutes to process a study with around 1,400k instances. Below is my server configuration:
orthanc.secret.json :
{
"Name": "DICOM-SERVER",
"StorageDirectory" : "/var/lib/orthanc/db",
"RemoteAccessAllowed": true,
"AuthenticationEnabled": false,
"OrthancExplorerEnabled": false,
"Worklists": {
"Enable": false
},
"Plugins" : ["/usr/share/orthanc/plugins/"],
"PostgreSQL" : {
"EnableIndex" : true,
"EnableStorage" : false,
"Host" : "<rds_host>",
"Port" : 5432,
"Database" : "database_name",
"Username" : "username",
"Password" : "pg_password",
"Lock" : false,
"EnableSsl" : true,
"MaximumConnectionRetries" : 10,
"ConnectionRetryInterval" : 5,
"TransactionMode": "ReadCommitted",
"EnableVerboseLogs": false,
"HousekeepingInterval": 120,
"AllowInconsistentChildCounts": false,
"UseDynamicConnectionPool": true
},
"AwsS3Storage": {
"BucketName": "bucket_name",
"Region": "us-east-1",
"AccessKey" : "access_key",
"SecretKey" : "secret_key",
"EnableAwsSdkLogs": true
},
"DicomWeb" : {
"Enable" : false
},
"StableAge": 30,
"PythonScript" : "/etc/orthanc/script.py",
"RestApiWriteToFileSystemEnabled": false,
"ExecuteLuaEnabled": false,
"StorageCompression" : false,
"KeepAlive" : true,
"TcpNoDelay" : true,
"SaveJobs" : false,
"DicomAet" : "MY_AET_TITLE",
"DicomCheckCalledAet" : true,
"StrictAetComparison" : true,
"DicomAlwaysAllowEcho" : true,
"DicomAlwaysAllowStore" : true,
"DicomAlwaysAllowFind" : true,
"DicomAlwaysAllowFindWorklist" : false,
"DicomAlwaysAllowGet" : false,
"DicomAlwaysAllowMove" : false,
"DicomCheckModalityHost" : false
}
And here are the settings from my docker-compose.yml:
services:
orthanc:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
ports: ["4242:4242"]
volumes:
- "./script.py:/etc/orthanc/script.py:ro"
environment:
ORTHANC__DICOM_SERVER_ENABLED: "true"
ORTHANC__DICOM_THREADS_COUNT: 8
ORTHANC__DICOM_ALWAYS_ALLOW_STORE: "true"
ORTHANC__OVERWRITE_INSTANCES: "true"
secrets:
- orthanc.secret.json
secrets:
orthanc.secret.json:
file: orthanc.secret.json
And here is my dockerfile:
FROM orthancteam/orthanc:latest
RUN apt-get update && \
apt-get install -y python3-pip && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
Where am I going wrong for Orthanc to take so long to process this?
How can I reduce the processing time?

