Why does downloading torrent increase IO Wait and copying files using SMB doesn't?

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Istria

New Member
Feb 4, 2022
9
1
3
Hi all,

I was hoping you could clarify this for me.

I'm running proxmox on a thin client (HP T630). I'm running openmediavault in a VM and dockerized qBittorrent in an LXC container.

When I copy a file from HDD1 to HDD2 via SMB share using File Explorer on my Android phone, the speed is 30MB/s (WiFi/phone bottleneck) and IO Wait practically zero. Just an increase in cpu load.

When I download a torrent at 5-10MB/s to the same HDD (via NFS share), I see a noticeable increase in IO Wait. Also the torrent speed sometimes dips to (almost) zero, before jumping back up to 5-10 MB/s. Almost like some sort of buffer fills up and needs some time to accept more downloaded data. And also proxmox webui becomes less responsive.

Question 1: What is the reason for this?
Question 2: Can I remedy it somehow?

Screenshot attached. The period where there is a IO Wait increase is during the torrent downloading. The period after that with only cpu load and no IO Wait increase is copying the downloaded torrent from HDD1 to HDD2 (from my phone via SMB, which seems to guide the data through my phone instead of directly from HDD1 to HDD2.

Second screenshot shows the network traffic, but it's taken a little later in time.

Thanks in advance!
 

Attachments

Last edited:

i386

Well-Known Member
Mar 18, 2016
4,245
1,546
113
34
Germany
1: random (torrent) vs sequential IO (file copying)
2: without changing your hardware? no really (besides getting a new hdd with >256MB cache)
if you can add ssd(s) then there are multiple options (dedicated torrent device vs cache for the hdd)
 

Istria

New Member
Feb 4, 2022
9
1
3
Thanks you for the reply.

I guess I could test if the random writes are the issue by doing a random writing test (for example copying 10.000 very small files to the HDD), and see if that also increases the IO Wait, correct?