
On Thu, Sep 28, 2017 at 12:03 PM Gianluca Cecchi <gianluca.cecchi@gmail.com> wrote:
Hello, I'm on 4.1.5 and I'm cloning a snapshot of a VM with 3 disks for a total of about 200Gb to copy The target I choose is on a different domain than the source one. They are both FC storage domains, with the source on SSD disks and the target on SAS disks.
The disks are preallocated
Now I have 3 processes of kind: /usr/bin/qemu-img convert -p -t none -T none -f raw /rhev/data-center/59b7af54-0155-01c2-0248-000000000195/fad05d79-254d-4f40-8201-360757128ede/images/8f62600a-057d-4d59-9655-631f080a73f6/21a8812f-6a89-4015-a79e-150d7e202450 -O raw /rhev/data-center/mnt/blockSD/6911716c-aa99-4750-a7fe-f83675a2d676/images/c3973d1b-a168-4ec5-8c1a-630cfc4b66c4/27980581-5935-4b23-989a-4811f80956ca
but despite capabilities it seems it is copying using very low system resources.
We run qemu-img convert (and other storage related commands) with: nice -n 19 ionice -c 3 qemu-img ... ionice should not have any effect unless you use the CFQ I/O scheduler. The intent is to limit the effect of virtual machines.
I see this both using iotop and vmstat
vmstat 3 gives: ----io---- -system-- ------cpu----- bi bo in cs us sy id wa st 2527 698 3771 29394 1 0 89 10 0
us 94% also seems very high - maybe this hypervisor is overloaded with other workloads? wa 89% seems very high
iotop -d 5 -k -o -P gives:
Total DISK READ : 472.73 K/s | Total DISK WRITE : 17.05 K/s Actual DISK READ: 1113.23 K/s | Actual DISK WRITE: 55.86 K/s PID PRIO USER DISK READ> DISK WRITE SWAPIN IO COMMAND
2124 be/4 sanlock 401.39 K/s 0.20 K/s 0.00 % 0.00 % sanlock daemon 2146 be/4 vdsm 50.96 K/s 0.00 K/s 0.00 % 0.00 % python /usr/share/o~a-broker --no-daemon 30379 be/0 root 7.06 K/s 0.00 K/s 0.00 % 98.09 % lvm vgck --config ~50-a7fe-f83675a2d676 30380 be/0 root 4.70 K/s 0.00 K/s 0.00 % 98.09 % lvm lvchange --conf~59-b931-4eb61e43b56b 30381 be/0 root 4.70 K/s 0.00 K/s 0.00 % 98.09 % lvm lvchange --conf~83675a2d676/metadata 30631 be/0 root 3.92 K/s 0.00 K/s 0.00 % 98.09 % lvm vgs --config d~f6-9466-553849aba5e9 2052 be/3 root 0.00 K/s 2.35 K/s 0.00 % 0.00 % [jbd2/dm-34-8] 6458 be/4 qemu 0.00 K/s 4.70 K/s 0.00 % 0.00 % qemu-kvm -name gues~x7 -msg timestamp=on 2064 be/3 root 0.00 K/s 0.00 K/s 0.00 % 0.00 % [jbd2/dm-32-8] 2147 be/4 root 0.00 K/s 4.70 K/s 0.00 % 0.00 % rsyslogd -n 9145 idle vdsm 0.00 K/s 0.59 K/s 0.00 % 24.52 % qemu-img convert -p~23-989a-4811f80956ca 13313 be/4 root 0.00 K/s 0.00 K/s 0.00 % 0.00 % [kworker/u112:3] 9399 idle vdsm 0.00 K/s 0.59 K/s 0.00 % 24.52 % qemu-img convert -p~51-9c8c-8d9aaa7e8f58
0.59 K/s seems extremely low, I don't expect such value.
1310 ?dif root 0.00 K/s 0.00 K/s 0.00 % 0.00 % multipathd 3996 be/4 vdsm 0.00 K/s 0.78 K/s 0.00 % 0.00 % python /usr/sbin/mo~c /etc/vdsm/mom.conf 6391 be/4 root 0.00 K/s 0.00 K/s 0.00 % 0.00 % [kworker/u112:0] 2059 be/3 root 0.00 K/s 3.14 K/s 0.00 % 0.00 % [jbd2/dm-33-8]
Is it expected? Any way to speed up the process?
I would try to perform the same copy from the shell, without ionice and nice, and see if this improves the times. Can do a test with a small image (e.g 10g) running qemu-img with strace? strace -f -o qemu-img.strace qemu-img convert \ -p \ -t none \ -T none \ -f raw \ /dev/fad05d79-254d-4f40-8201-360757128ede/<lv-name> \ -O raw \ /dev/6911716c-aa99-4750-a7fe-f83675a2d676/<lv-name> and shared the trace? Also version info (kernel, qemu) would be useful. Adding Kevin. Nir