![ubuntu kvm ディスク IO がしばらくすると遅くなる](https://rvso.com/image/658356/ubuntu%20kvm%20%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%20IO%20%E3%81%8C%E3%81%97%E3%81%B0%E3%82%89%E3%81%8F%E3%81%99%E3%82%8B%E3%81%A8%E9%81%85%E3%81%8F%E3%81%AA%E3%82%8B.png)
ホストシステム:
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/秒に低下しますが、ホスト システムはロードされておらず、dd テストでは同じく 30 ~ 40 MB/秒、CPU 使用率は 10% と表示されます。ゲストの再起動はしばらくは役立ちます。エラーや障害はなく、mdadm の再構築や再同期もありません。
どこに問題があるのか、どこを掘ればいいのか全く分かりません。
ゲストではこれが役立つようです: sync && echo 3 > /proc/sys/vm/drop_caches
同様の問題64GBのメモリを搭載したシステムでは、ddでデバイスnullにコピーしている間、Linuxバッファがいっぱいになり、手動でdrop_cachesを実行するまでIOが停止します。
答え1
30~40 MB/秒の初期パフォーマンスは、Linux カーネルのキャッシュ (およびハードウェア レベルで実行されるその他のキャッシュ) によるものだと思います。キャッシュが「使い果たされると」、実際のディスク アクセスが開始され、パフォーマンスが低下します。
さらに、ddより良いパフォーマンスを得るためにはbs=引数を適度に大きなサイズに設定してください。個人的には、利用可能なRAMの1/3〜1/2程度に設定するのが好きです。1Mの設定は最適ではなく、パフォーマンスの数値が低い主な理由です。しかし、最適な設定でもbs=設定すると、上で説明したように、ある時点でパフォーマンスが低下します。