ubuntu kvm 磁盘 io 一段时间后变慢

ubuntu kvm 磁盘 io 一段时间后变慢

主机系统:

Ubuntu Server x64 12.04 
mdadm raid 1 (/dev/sda /dev/sdb)
no lvm
dd bs=1M count=256 if=/dev/zero of=filename conv=fdatasync
avarage ~ 40 MB/s

NCQ on disks is disabled
WriteCache is disables

宾客系统:

Ubuntu server i386 12.04
with lvm2 /10Gb /200Gb /200Gb disks all on lv-root (LV)
  --- Physical volume ---
  PV Name               /dev/vda5
  VG Name               root-vg
  PV Size               9.76 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              2498
  Free PE               0
  Allocated PE          2498

  --- Physical volume ---
  PV Name               /dev/vdb
  VG Name               root-vg
  PV Size               195.31 GiB / not usable 4.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              49999
  Free PE               0
  Allocated PE          49999

  --- Physical volume ---
  PV Name               /dev/vdc
  VG Name               root-vg
  PV Size               195.31 GiB / not usable 4.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              49999
  Free PE               0
  Allocated PE          49999

 dd bs=1M count=256 if=/dev/zero of=filename conv=fdatasync
    avarage ~ 30 MB/s
all disks in guest are RAWformat /VirtioBUS / No cache / IOmode=native

一段时间后,写入速度降至 1 MB/s,但主机系统未加载,dd 测试显示同样为 30-40 MB/s,CPU 使用率为 10%。客户机重启后有一段时间有用。没有错误/故障/没有 mdadm 重建或重新同步。

不知道问题出在哪里或需要从哪里挖掘。


看起来这对客户有帮助:sync && echo 3 > /proc/sys/vm/drop_caches


类似问题在具有 64GB 内存的系统上,Linux 缓冲区运行已满,同时使用 dd 复制到 dev null 并且 io 停止,直到手动 drop_caches

答案1

我认为,最初 30-40 MB/s 的性能是由于 Linux 内核的缓存(以及硬件级别上可能进行的任何其他缓存)。一旦缓存“用完”,实际的磁盘访问就会开始启动,性能就会下降。

此外,为了为了获得更好的性能,设置bs=参数设置为相当大的大小。我个人喜欢将其设置为可用内存的 1/3-1/2。您的 1M 设置不是最优的,也是性能数字低的主要原因。但即使使用最优bs=设置后,你会看到性能在某个时候下降,正如上面解释的那样。

相关内容