[PVE-User] [SPAM] Proxmox with ceph storage VM performance strangeness
Ralf Storm
ralf.storm at konzept-is.de
Tue Mar 17 14:53:52 CET 2020
Hello Rainer,
same issue here 7nodes Cluster with Proxmox and Ceph on the same nodes
seperate 10gb for Ceph and 10gb for VMs,
not erasure coded, about 50 ssd. Performance for Backups, recovery etc.
is almost 1000MByte/s, several vms accessing data at the same time is
raising the perfomance also to the expected levels, but single vm access
is never above 150MByte...
Could not exaxctly figure out why in my searches...
regards
Ralf
Am 17/03/2020 um 14:04 schrieb Rainer Krienke:
> Hello,
>
> I run a pve 6.1-7 cluster with 5 nodes that is attached (via 10Gb
> Network) to a ceph nautilus cluster with 9 ceph nodes and 144 magnetic
> disks. The pool with rbd images for disk storage is erasure coded with a
> 4+2 profile.
>
> I ran some performance tests since I noticed that there seems to be a
> strange limit to the disk read/write rate on a single VM even if the
> physical machine hosting the VM as well as cluster is in total capable
> of doing much more.
>
> So what I did was to run a bonnie++ as well as a dd read/write test
> first in parallel on 10 VMs, then on 5 VMs and at last on a single one.
>
> A value of "75" for "bo++rd" in the first line below means that each of
> the 10 bonnie++-processes running on 10 different proxmox VMs in
> parallel reported in average over all the results a value of
> 75MBytes/sec for "block read". The ceph-values are the peaks measured by
> ceph itself during the test run (all rd/wr values in MBytes/sec):
>
> VM-count: bo++rd: bo++wr: ceph(rd/wr): dd-rd: dd-wr: ceph(rd/wr):
> 10 75 42 540/485 55 58 698/711
> 5 90 62 310/338 47 80 248/421
> 1 108 114 111/120 130 145 337/165
>
>
> What I find a little strange is that running many VMs doing IO in
> parallel I reach a write rate of about 485-711 MBytes/sec. However when
> running a single VM the maximum is at 120-165 MBytes/sec. Since the
> whole networking is based on a 10GB infrastructure and an iperf test
> between a VM and a ceph node reported nearby 10Gb I would expect a
> higher rate for the single VM. Even if I run a test with 5 VMs on *one*
> physical host (values not shown above), the results are not far behind
> the values for 5 VMs on 5 hosts shown above. So the single host seems
> not to be the limiting factor, but the VM itself is limiting IO.
>
> What rates do you find on your proxmox/ceph cluster for single VMs?
> Does any one have any explanation for this rather big difference or
> perhaps an idea what to try in order to get higher IO-rates from a
> single VM?
>
> Thank you very much in advance
> Rainer
>
>
>
> ---------------------------------------------
> Here are the more detailed test results for anyone interested:
>
> Using bonnie++:
> 10 VMs (two on each of the 5 hosts) VMs: 4GB RAM, BTRFS, cd /root;
> bonnie++ -u root
> Average for each VM:
> block write: ~42MByte/sec, block read: ~75MByte/sec
> ceph: total peak: 485MByte/sec write, 540MByte/sec read
>
> 5 VMs (one on each of the 5 hosts) 4GB RAM, BTRFS, cd /root; bonnie++ -u
> root
> Average for each VM:
> block write: ~62MByte/sec, block read: ~90MByte/sec
> ceph: total peak: 338MByte/sec write, 310MByte/sec read
>
> 1 VM 4GB RAM, BTRFS, cd /root; bonnie++ -u root
> Average for VM:
> block write: ~114 MByte/sec, block read: ~108MByte/sec
> ceph: total peak: 120 MByte/sec write, 111MByte/sec read
>
>
> Using dd:
> 10 VMs (two on each of the 5 hosts) VMs: 4GB RAM, write on a ceph based
> vm-disk "sdb" (rbd)
> write: dd if=/dev/zero of=/dev/sdb bs=nnn count=kkk conv=fsync
> status=progress
> read: dd of=/dev/null if=/dev/sdb bs=nnn count=kkk status=progress
> Average for each VM:
> bs=1024k count=12000: dd write: ~58MByte/sec, dd read: ~48MByte/sec
> bs=4096k count=3000: dd write: ~59MByte/sec, dd read: ~55MByte/sec
> ceph: total peak: 711MByte/sec write, 698 MByte/sec read
>
> 5 VMs (two on each of the 5 hosts) VMs: 4GB RAM, write on a ceph based
> vm-disk "sdb" (rbd)
> write: dd if=/dev/zero of=/dev/sdb bs=4096k count=3000 conv=fsync
> status=progress
> read: dd of=/dev/null if=/dev/sdb bs=4096k count=3000 status=progress
> Average for each VM:
> bs=4096 count=3000: dd write: ~80 MByte/sec, dd read: ~47MByte/sec
> ceph: total peak: 421MByte/sec write, 248 MByte/sec read
>
> 1 VM: 4GB RAM, write on a ceph based vm-disk "sdb" (rbd-device)
> write: dd if=/dev/zero of=/dev/sdb bs=4096k count=3000 conv=fsync
> status=progress
> read: dd of=/dev/null if=/dev/sdb bs=4096k count=3000 status=progress
> Average for each VM:
> bs=4096k count=3000: dd write: ~145 MByte/sec, dd read: ~130 MByte/sec
> ceph
More information about the pve-user
mailing list