Hi folks,
since Nextcloud recently released version 16 of their software, I decided that it is that time again to put it on the test for it's file sync speed. The test case I've got therefore in mind is quite typical for Instagram users, namely syncing a little bit more than 1.000 Instagram photos to that own cloud, where it in the past always was quite slow and failed to be on par with commercial products like Dropbox, or the opensource Seafile solution.
So first I've decided on an safe for work Instagram channel which I'll be using as test case:
Grumpycat. 1.398 photos, perfect. Next I've downloaded copies of all photos of that channel on my computer. I've been using Windows 10 and the program
4K Stogram to get this job done. I choose this program because it's got an easy UI and the free version is more than good enough to get this job done. If you want to use something more nerdy, then you can use
Instaloader from Github from example which runs under Python.
The download took a few minutes; after it was finished, I had a new sub folder "4K Stogram" in my pictures folder with all the glory of Grumpycat in it. Perfect!
Upfront some data to put it into context: the files by the way were being served from my SSD drive; my upload bandwidth is in average around 11.6 Mbit/s, download 48 Mbit/s.
The stock Nextcloud sync client was being used with its default settings. The Nextcloud server is being hosted on my own, dedicated root server running Gentoo Linux, kernel 4.15.9 in a virtual machine, PHP 7.2 and uses MySQL for speed reasons as data base engine; only the vanilla installation on server side without any additional extensions was being used. All traffic was encrypted.
The host server has a Intel(R) Xeon(R) CPU E3-1271 v3 @ 3.60GHz, 32 GB of RAM and 2x4 TB HDDs in RAID1 setup, and is quite bored. So in short a more than powerful enough machine for that kind of test. The desktop is an i7-6700K with 16 GB of RAM and a 500 GB SDD, so also powerful enough to be a good client. As virus scanner only Windows Defender was being used, nothing else. The desktop machine was hooked up on the internet router directly via an ethernet cable.
First I've removed all movie files from that folder, so the file count went down from 1.422 to 1.379 pictures which needed to get synced, which used 157 MB of disk space or in average around 113 KB per picture, which is quite typical for this type of usage; then I've copied it into the sync folder of my running, virgin Nextcloud folder and watched the client do its job, and measured the time until it was done.
If the sync client would be able to use my upload connection good enough, I should be done in roughly 157 MB / [ (11.600 Mbit/s / 8)] = 157 MB / 1.45 MB = 108 seconds. That's what I'd expect from a fast syncing experience.
The first ETA of the client was around 20 minutes, after I've moved the folder into the sync folder. Looking at my web server log I've noticed that every second 2-3 pictures where being uploaded by the client. The client uses WebDAV for its uploads.
The time it took in reality for the initial sync was 19 m 27 s on an idle home network, so the ETA was actually quite good; the client also yielded one strange sync error, he was unable to sync one file, maybe due to name issues? I don't know; otherwise the sync went fine.
Now to Dropbox: again I've been using the same desktop/networking setup, recent stock original Dropbox sync client. I've moved the same bunch of files into the Dropbox sync folder; the sync was done in 2 m 26 s, which is a real good time. No sync error on Dropbox, though.
Conclusion: Nextcloud for sure improved since my last test; but uploading files is still slow due to it's architecture compared to the well established, commercial market leader Dropbox and other solutions as well. Dropbox is roughly eight times faster doing its initial sync on my test file case compared to Nextcloud.
If you don't care about speed, or just have view, big files to upload, then maybe it's a viable solution for you. If fast syncing speed which is able to saturate your upload bandwitdth during the initial sync is a must for you and you've got ten thousands of small to medium files, you'd better go looking for another solution, because Nextcloud sadly still cannot deliver that.