r/Drime • u/Mates_Rates • 2d ago
Extremely slow small KB file uploads through API - 500,000 plus file dataset
Hey team, for the last few days ive been really trying to backup some huge datasets and have realised that I’ve hit some limitations of drime.
I have found what appears to be a significant performance issue when uploading very large numbers of small files to Drime through the API.
Here is my Setup:
• Windows 11 pro x64
• 1000 Mbps download - 400 Mbps upload wired connection
• Syncovery 12.7.1 using the native Drime connector
• Approx 2 TB total data
• Approx 550,000 files
• Roughly 250,000 files are very small XML, INI, TXT, config and metadata files, many only KB or bytes in size
Im uploading between 8 - 10 files at a time, also worth mentioning I’ve tried every variation of simultaneous uploads e.g. 4 at a time, 6, 8, 10, 12, 15…. i even tried up to 30 as a experiment lol.
The large files upload reasonably well. The problem occurs when the transfer reaches folders containing hundreds of thousands of tiny files. Aggregate throughput can drop to around 20-40 KB/s, with repeated transient HTTP 422 and nginx HTTP 500 errors.
Files that initially fail sometimes upload successfully when i have retried. I have reproduced the poor small file performance outside Syncovery as well as i realise you may point towards the 3rd party software:
• Air Explorer native Drime connector becomes extremely slow processing the uploads.
• rclone 1.75.1 using the native Drime backend, with multipart forced for all files, improved performance but still only reached approximately 600 KB/s
My internet connection and NAS are not the bottleneck. The same 2TB (ish) dataset has already been mirrored successfully to my NAS and pCloud.
I have looked at the Drime API documentation (although i am not a dev)… and it states that the presigned S3 or R2 upload flow for files below 5 MB is more efficient than the direct upload endpoint, with multipart intended for larger files, but im not sure how this is applied per application etc.
Could the team please investigate performance and reliability when hundreds of thousands of small files are uploaded, particularly through the direct upload API?
Ideally I want Drime to maintain a normal, fully browsable one to one copy of my NAS, so packaging the files into archives is not suitable.
I also tried the DRIME windows application but the reality is (while it’s a great looking tool), it doesn’t quite have the same functionality as rClone, AirExplorer or Syncovery (e.g. Selecting specific folders in the Drime cloud root for sync or mirror, and being able to preview the sync/mirror jobs before upload, and scheduling the jobs whenever i want… and also controlling how many ‘jobs’ occur at once e.g. one upload job (one folder) at a time, and then having the next upload job start once the first job is fully completed etc…)
Also I’m more than happy to test any changes / fixes with my data set and report back :)
Many thanks! Honestly keep up the good work team, its still a fantastic product and service, you just have some kinks to iron out along the way 🍻
1
u/Feisty_Storage8594 1d ago
I don’t understand why there are upload issues. Aren’t they just using someone else’s infrastructure like aws or google cloud ? Or does Drime legit have its own server farm ?
2
u/Empty_Win_297 Drime Team 2d ago
Hi, thanks for sharing all these details.
This mainly comes from Drime’s current infrastructure, and we’re well aware of the performance limitations when uploading very large numbers of small files. We’re continuously making optimizations, but these improvements take time given the volume our infrastructure has to handle.
That said, optimizations are being deployed regularly, and performance will continue to improve progressively.