JonathanTreffler / backblaze-personal-wine-container

Run the Backblaze personal backup client in a docker container
https://hub.docker.com/r/tessypowder/backblaze-personal-wine
GNU Affero General Public License v3.0
374 stars 35 forks source link

much slower upload with same hardware than windows 11 #126

Closed mrbo-jangles closed 6 months ago

mrbo-jangles commented 6 months ago

I just switched from windows 11 to unraid for my server and have noticed my upload speeds are much slower with wine than windows 11. I have around 80mb upload and I was able to saturate that so 80mb but now with the container on unraid looking at the I can only upload at 1mb max more like .7 on average. its weird the in the backblaze performance area its show an last file transfer speed of 0.77Mbits/sec while in the unraid dashboard it shows about 8 - 12 for the outbound and I know I don't have anything else going out.

I know wine is going to be a little slower but I don't think what I am experiencing is normal. Its taking way too long to upload my data(or atleast check it for inherit the data as I am still doing the initial backup) I should also note I have tried changing the number of threads and the auto option in the performance area but it seemed to have no affect.

mason1171 commented 6 months ago

I also can't saturate more of my gigabit connection. Despite max threads and throttling to max backup speed, performance tab shows Backblaze will backup this computer at approximately: 638 Gigabytes per day, which even accounting for the slower read speed for my unraid array is still very very slow. How can we diagnose/optimize performance? @JonathanTreffler @traktuner Is the low speed caused by the client having to chunk >100 MB files?

JonathanTreffler commented 6 months ago

Backblaze starts with the smallest files. If anybody is re-uploading their files after switching to this docker they are likely experiencing how painfully slow small-file operations are compared to fewer big files of the same overall size.

Generally lower performance is to expected with the added overhead of Wine.

638 Gigabytes per day

You can try to optimize if you want but that sounds completely reasonable to me. Are you creating more than 638 GB of data a day ? No, then it will backup all your data / not get behind on your backup, I don't see how the initial backup speed is that relevant to the backup experience. Once the initial phase is done, it will idle most of the time with nothing to upload anyways :man_shrugging:

mrbo-jangles commented 6 months ago

I had the treads at 15 and changed it to 100 now it show about 700gb vs the 100gb a day I was seeing before. But file transfer speed is still 0.70Mbits/sec the most I have seen during this process is 1.8Mbit/sec but it mostly stays around 0.7Mb. Its mostly video files with some image and meta data but its mostly larger video files so Id think it should be going faster even running on wine. JonathanTreffler- I am seeing around 12Mb upload from the unraid dashboard but like I mentioned before backblaze is only showing around 0.7Mb

Mason1171- what are you seeing for your last file transfer speed.

Also I have the temp file location set mapped to /tmp and T: drive could the be causing any issues? Also mapping folders on to D: drive and and another to S: drive for backup. idk could the fact that I have the tmp linked to T: drive be slowing things down?

traktuner commented 6 months ago

@mrbo-jangles Please leave the backup running for at least 24h in continous mode. As @JonathanTreffler said, it will back up tiny files first which is MUCH slower than upluading a 10GB file (it will do that in 10MB chunks). The threading has the most impact on big files, not on small files. Small files kill performance - on your filesystem and also backing up small files is not performant. Please also completely ignore the transfer speed you see in the settings. This is a per-thread speed, also the "gb/day" is a rought estimate from the per-thread-speed and the number of threads you chose. It will get faster after the tiny files are backed up. More context here: https://www.reddit.com/r/backblaze/comments/185m8ka/comment/kbvc6ss/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button (the user "brianawski" is a former Backblaze employee. He was the CTO and developed the Backblaze Client you're using)

mrbo-jangles commented 6 months ago

after changing the threads from 15 to 100 I am now saturating my upload speed are around 80Mb, I am confirming this in the docker dashboard. I should note that there seems to be a bug with the reporting of last file transfer speed in backblaze perf ormance setting. Backblaze is still reporting 0.7Mb (this number changes but stays around 0.7 so the value is updating.

Screenshot (153) Screenshot (154)

traktuner commented 6 months ago

Hey, as I said above, the transfer speed is per thread, and you should not trust it. It seems that your client has already backed up the small files. And then it will saturate your uplpad speed. The detailed explanation is in the post I linked.

mrbo-jangles commented 6 months ago

ah ok so seem its running as it should. Its weird I swear I remember seeing the speed around 80Mb on windows, maybe wine is using an older install of backblaze and they have updated the speed output on current versions?

traktuner commented 6 months ago

maybe wine is using an older install of backblaze

Yes, it's running as it should We are using a known-good version of Backblaze which was the latest one last week. The "last file transfer speed" is the speed of one thread uploading a chunked file. If you have a file whith a size of 100MB, Backblaze makes 10x10MB chunks of that file and uploads it. For instance: The "last file transfer speed" is for one chunk, and tells you Backblaze uploaded the 10MB chunk with 1 Mbit/s For a 100MB file, which are 10 chunks, Backblaze can utilize 10 threads (and NOT 100 because the file is too small). So - the transfer speed for that 100MB file would be 10Mbit/s for that example (median speed).

So you see, the longer you leave the app running, the more threads can be used and the faster it gets. Just be patient, all is good ;-)