I/O streams capped at 128KB/t?

Andre Goree andre at drenet.net
Mon Jun 4 19:06:16 UTC 2018


I'm trying to come up with a solution to an issue I'm seeing on FreeBSD 
VMs installed as qemu/KVM guests (I'm sure the fact that they're guests 
have nothing to do with my issue, but I thought I'd mention it anyway).

 From within a VM, I seem to be hitting a ~128KB/s limit on I/O streams, 
that only seems to be present in FreeBSD.  The first output below is to 
the local disk (local to the VM) on which the OS is installed, you can 
see that the KB/t (kilobytes per transfer) never go above ~128KB/t, 
though the IOPS (iostat tps field) go up as far as allowed for the VM.  
I ran a simple 'dd' with 'bs=1M count=1024' (columns are KB/t,tps,MB/s):


   0.00   0  0.00   0.00   0  0.00
  126.90 322 39.91   0.00   0  0.00
  127.59 1094 136.31   0.00   0  0.00
  126.79 1089 134.88   0.00   0  0.00
  127.85 1314 164.03   0.00   0  0.00
  127.57 1340 166.91   0.00   0  0.00
  127.56 1322 164.69   0.00   0  0.00
  127.64 1331 165.87   0.00   0  0.00
  126.87 425 52.71   0.00   0  0.00
   7.00   1  0.01   0.00   0  0.00
   0.00   0  0.00   0.00   0  0.00


The second disk I added (which is an RBD network disk, though I don't 
think that matters, thought I'd mention it) has it's IOPS limited to 75 
(with some bursting allowed).  You can see that the KB/t still remains 
below 128KB/t, which creates a bottleneck as the IOPS cannot increase 
for this disk, giving it a very low throughput of ~9MB/s, which is 
horrible write speed for my case.


   0.00   0  0.00  124.69  75  9.17   0.00   0  0.00   0.00   0  0.00
   0.00   0  0.00  124.86  74  9.05   0.00   0  0.00   0.00   0  0.00
   0.00   0  0.00  124.64  75  9.19   0.00   0  0.00   0.00   0  0.00
   0.00   0  0.00  124.81  75  9.09   0.00   0  0.00   0.00   0  0.00
   0.00   0  0.00  124.61  76  9.23   0.00   0  0.00   0.00   0  0.00
   0.00   0  0.00  124.80  74  9.04   0.00   0  0.00   0.00   0  0.00
   0.00   0  0.00  124.77  75  9.14   0.00   0  0.00   0.00   0  0.00
   0.00   0  0.00  124.56  76  9.22   0.00   0  0.00   0.00   0  0.00
   0.00   0  0.00  123.24  75  9.03   0.00   0  0.00   0.00   0  0.00
   0.00   0  0.00  124.97  75  9.15   0.00   0  0.00   0.00   0  0.00
   4.00   1  0.00  124.73  75  9.13   0.00   0  0.00   0.00   0  0.00
   0.00   0  0.00  124.73  75  9.14   0.00   0  0.00   0.00   0  0.00


 From within any number of Linux VMs (I've tried Ubuntu, Arch, and 
Fedora) on the same platform, using the RBD disk I do not have the same 
issue with speed, as those systems seem to scale up their data per 
second -- discounting the fact that the IOPS in this case burst up a bit 
to 118tps (this is from a VM running Arch Linux; columns are 
tps,KB_read/s,KB_wrtn/s,KB_read,KB_wrtn):

sdb               4.00         8.00        28.00          8         28
sdb              26.00         4.00     23820.00          4      23820
sdb              31.00         0.00     31488.00          0      31488
sdb             118.00         0.00    120832.00          0     120832
sdb              90.10         0.00     93275.25          0      94208
sdb               0.00         0.00         0.00          0          0



My question is, am I able to increase the KB/t from 128KB/t?  Or is this 
simply a limit of the FreeBSD kernel?  I'd prefer to be able to increase 
the KB/t (from within the VM) rather than IOPS (which I can do from the 
host system) if at all possible.

Thanks in advance for any insight.


-- 
Andre Goree
-=-=-=-=-=-
Email     - andre at drenet.net
Website   - http://blog.drenet.net
PGP key   - http://www.drenet.net/pubkey.html
-=-=-=-=-=-


More information about the freebsd-questions mailing list