DICOMFuse performance investigations - GoogleCloudPlatform/healthcare-api-dicom-fuse GitHub Wiki
Test stand - 1:
- Google Cloud VM - Windows Server 2016 Datacenter
- DICOMFuse - v1.0.4
- WinFsp - 2019.2
- SSD - 100 GB
- CPU - 12 vCPUs 2.2GHz
- Memory - 15 Gb
- VM location - europe-west2
- Dataset location - europe-west2
- Files count - 1000
Throughput test results:
File size MiB | Upload rate - 1 thread MiB/s | Upload rate - 5 threads MiB/s | Upload rate - 16 threads MiB/s |
---|---|---|---|
0,99 | 26,83 | 52,25 | 59,77 |
20,84 | 50,57 | 50,6 | 50,7 |
Note: for small files, you should use more threads. DICOMFuse supports a maximum of 16 threads on Windows.
Test stand - 2:
- Google Cloud VM - Ubuntu 18.04 LTS
- DICOMFuse - v1.0.4
- libfuse2
- SSD - 100 GB
- CPU - 12 vCPUs 2.2GHz
- Memory - 15 Gb
- VM location - europe-west2
- Dataset location - europe-west2
- Files count - 1000
Throughput test results:
File size MiB | Upload rate - 1 thread MiB/s | Upload rate - 5 threads MiB/s | Upload rate - 16 threads MiB/s |
---|---|---|---|
0,99 | 3,47 | 19,59 | 62,72 |
20,84 | 15,51 | 50,6 | 51,75 |
Note: for small files, you should use more threads.
Fuse implementations on Linux(libfuse2) and Windows(WinFsp) are different. On Linux, a new copy thread starts after a file has been uploaded to the server and a response is received that the upload was successful or not. On Windows, a new copy thread starts before a file has been uploaded to the server and a response is received. That's why throughput on Windows is higher than on Linux. To get more info, see the issue in WinFsp repo.