Libvirtを使用してUbuntu 14.04で実行されているKVMゲストがいくつかあります。彼らのパフォーマンスは非常に悪いです。単純なベンチマークテストでの桁違いのパフォーマンスと、他のVMへのアクティビティの明らかな影響によるパフォーマンスの低下の断続的な性質は、問題がホスト内のリソースの競合であることを強く示唆しています。ゲストのSar監視は、virtblkディスクがI/O要求が処理されるまで非常に長い時間待たなければならないという問題を明らかにします。例えば。
00:00:01 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
00:05:01 dev253-0 0.10 0.00 1.39 14.34 0.00 682539.72 0.14 0.00
待機時間は常に非常に長く、すべてのゲストでほぼ同じです。
典型的なディスク構成は
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/var/lib/libvirt/images/Base-dev-0002-clone.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</disk>
キャッシュ設定やドライバー行のio = native、raw imgファイルストレージから論理ボリュームへのクローン作成、elevator = deadline、virtio_blk.use_bio = 1など、ゲストにはさまざまなことが試されていますが、大きな影響はありません。
仮想ディスクはパフォーマンスを低下させる必要があることを理解していますが、これは極端です。
KVMゲストの典型的な待機時間は?
リソース競合の主張を念頭に置いて、どのリソース、ulimitsなどをホストに割り当てる必要があるのでしょうか?ホストには十分なリソースがあり、問題の明らかな兆候はありません。
私は最近同じ問題を抱えています
# iostat -dx 60
Linux 3.13.0-32-generic (hostname) Wednesday, 04 March, 2015 _x86_64_ (6 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 2.46 51.49 4.12 1742.66 325.36 74.38 0.05 770.46 487.83 4300.67 0.15 0.81
scd0 0.00 0.00 0.08 0.00 0.31 0.00 8.00 0.00 0.73 0.73 0.00 0.73 0.01
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.03 0.02 0.20 0.13 0.93 9.85 0.00 35787.38 4.00 38769.33 0.31 0.01
scd0 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
カーネルをアップグレードし、KVMゲストにlinux-headersおよびlinux-headers-genericをインストールすると、I/Oの問題が修正されます。インストール後に再起動します。
# aptitude install linux-headers-3.13.0-46 linux-headers-3.13.0-46-generic linux-image-3.13.0-46-generic
インストール後:
# iostat -dx 60
Linux 3.13.0-46-generic (hostname) Wednesday, 04 March, 2015 _x86_64_ (6 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.36 19.36 0.42 227.23 4.51 23.44 0.01 0.50 0.45 2.92 0.14 0.28
scd0 0.00 0.00 0.04 0.00 0.18 0.00 8.00 0.00 0.36 0.36 0.00 0.36 0.00
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 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
scd0 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
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 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
scd0 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
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 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
scd0 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
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 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
scd0 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
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 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
scd0 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