web-dev-qa-db-ja.com

Linux-KVM-非常に遅いディスクIO

新しいサーバーのI/Oパフォーマンスはかなり低いです。私はグーグルで想像できるすべてを試しました。まず、ハードウェアコンポーネントは次のとおりです。

  • AMD Opteron(tm)プロセッサ6344
  • 4x Seagate ST3000VX000

現在、ソフトウェアRAID5で実行されています。

ホストマシンからのスループット:

# dd if=/dev/zero of=testfile bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 4.44095 s, 242 MB/s

ゲストシステムの現在のスループット:

# dd if=/dev/zero of=testfile bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 94.8643 s, 11.3 MB/s

自己コンパイルされたQEMU + LIBVIRTに加えて、自己コンパイルされたLinuxカーネル(3.10.32-lns-opteron-kvmhost)を使用しています。カーネル構成からパーツを提供できます。

  • Linuxカーネル(ホスト):3.10.32-lns-opteron-kvmhost
  • Linuxカーネル(ゲスト):3.10.2-lns-opteron-kvmguest
  • QEMUバージョン:2.0.0
  • Libvirtバージョン:1.2.4

完全なI/Oパフォーマンスで実行されている別のシステム(同じプロセッサですが、他のHDD)で両方のカーネルを実行しています。

他のシステムをインストールしなかったため、問題を確実に再現できません。

ゲストのHDD構成:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='threads'/>
  <source dev='/dev/vmstore/guest-data'/>
  <target dev='vda' bus='virtio'/>
</disk>

ご覧のとおり、私はLVMを使用しています。

CPU /メモリにパフォーマンスの問題はありません-ディスクI/Oにのみ問題があります。

4
T-Bash

私が見る唯一の明らかな問題あなたの構成でio='threads'です。これにより、io='native'よりも優れたパフォーマンスが得られる可能性はほとんどありません。

それ以外にも、これらのコンポーネント(kernel、libvirt、QEMU)を十分に理解していない限り、自分でコンパイルすることはお勧めしません。パフォーマンスと安定性のために最適化されたLinuxディストリビューションの十分にテストされた既知の作業パッケージを使用することをお勧めします。 RHEL/CentOSとFedoraは正常に動作します。他の配布を保証することはできません。

1
Michael Hampton