Надо скопировать sparse-образ виртуалки. Делаю rsync и получаю непонятные тормоза. Сравните:
ux32vd@perftests$ time { pv ./arch64_template.qcow2 > /home/sources/perftests/arch64_template.qcow2; sync; }
10GiB 0:00:54 [ 188MiB/s] [========================================================================================>] 100%
real 1m44.477s
user 0m0.107s
sys 0m29.743s
ux32vd@perftests$ time { rm arch64_template.qcow2; }
real 0m1.698s
user 0m0.000s
sys 0m0.973s
Тот же образ через rsync:
ux32vd@perftests$ time { sudo rsync -avHAXPS ./ /home/sources/perftests/; sync; }
sending incremental file list
./
arch64_template.qcow2
10737418240 100% 46.75MB/s 0:03:39 (xfer#1, to-check=1/11)
sent 10738729287 bytes received 34 bytes 48923596.00 bytes/sec
total size is 10970009332 speedup is 1.02
real 3m39.146s
user 3m4.517s
sys 1m10.577s
ux32vd@perftests$ time { rm arch64_template.qcow2; }
real 0m11.850s
user 0m0.003s
sys 0m1.073s
И это при том что rsync надо скопировать всего 3гига. Откуда такие тормоза? Даже файл удаляется после этого дольше (!).
Простой rsync без выкрутасов тоже тормозит:
ux32vd@perftests$ time { sudo rsync -a ./ /home/sources/perftests/; sync; }
real 3m24.019s
user 2m12.413s
sys 1m3.747s
Проц грузит, но не на 100%. При этом диски простаивают (картинка во время rsync):
top - 14:40:46 up 19 min, 0 users, load average: 1.53, 0.94, 0.45
Tasks: 116 total, 2 running, 114 sleeping, 0 stopped, 0 zombie
%Cpu(s): 23.9 us, 6.9 sy, 0.0 ni, 63.0 id, 6.2 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 10129100 total, 9961984 used, 167116 free, 336376 buffers
KiB Swap: 1000444 total, 0 used, 1000444 free, 8392568 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2544 root 20 0 13568 704 416 S 63.16 0.007 2:26.42 rsync
2542 root 20 0 13888 1440 1016 R 56.17 0.014 2:00.28 rsync
2205 exe 20 0 509068 57948 26536 S 1.994 0.572 1:09.96 plugin-co+
38 root 20 0 0 0 0 S 1.662 0.000 0:02.04 kswapd0
1655 root 20 0 121960 15376 7416 S 1.330 0.152 0:28.72 X
2017 root 20 0 0 0 0 D 1.330 0.000 0:00.82 flush-8:0
ux32vd@~$ sudo iostat -x -m 1
Linux 3.8.6-1-custom (ux32vd) 04/28/2013 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
9.64 0.00 4.00 2.03 0.00 84.33
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.06 4.38 25.30 44.75 0.32 18.96 563.83 7.75 110.65 1.68 172.27 1.31 9.20
sdb 1.56 0.00 66.36 0.00 5.23 0.00 161.50 0.07 0.99 0.99 0.00 0.35 2.35
avg-cpu: %user %nice %system %iowait %steal %idle
23.50 0.00 8.00 0.00 0.00 68.50
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 11.00 6.00 4.00 0.35 0.46 167.20 0.01 1.30 1.17 1.50 1.00 1.00
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
avg-cpu: %user %nice %system %iowait %steal %idle
23.35 0.00 7.11 1.52 0.00 68.02
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 1.00 40.00 0.00 12.29 614.24 14.42 33.17 10.00 33.75 2.93 12.00
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
^C
Опции монтирования:
ux32vd@~$ cat /proc/mounts | grep sda
/dev/sda2 / ext4 rw,relatime,discard,nobarrier 0 0