HPサーバーにCitrix XenServer 6.1がインストールされています(1x Intel Xeon E5630 @ 2.53GHz(4コア、8スレッド、RAM:dom0用に752MB、ゲスト用に55286MB)。サーバーには2つのscsiミラーリングディスクがあり、devに使用されます/ testing。
ホストは、テスト中に電源をオンまたはオフにした5つのゲストを実行します。ほとんどのパフォーマンステストでは結果が良くありませんでした。しかし、Xenを調整したいと思います。たとえば、 "dd if =/dev/zero ..."を指定すると、ホストで130MB/sになりますが、単一のゲストでは75MB/sになります。
dd if=/dev/urandom
ゲストでは、CPUが飽和状態になり、7MB /秒を取得します。
tune-vcpus
、dom0に8個のvCPUを割り当てることができ、パフォーマンスが低下しました。デフォルトは4 vCPUで、dom0に1 vCPUのみを与えたいのですが、機能しません。
これが私が試したものです:
/etc/sysconfig/tunes-vcpus
> NR_DOMAIN0_VCPUS = 1およびMAX_NR_DOMAIN0_VCPUS = 1/etc/init.d/tune-vcpus
開始分私も試しました
/opt/xensource/libexec/xen-cmdline -set-dom0 blkbk.reqs=256
ストレージからより多くのパフォーマンスを得るには、何も変更しません。
また、VBDでQosを有効にし、テストを行う場所を最優先しました。
結局、I/Oパフォーマンスは向上しません。他に何かすることはありますか?
Max_sectors_kbの適切な値を見つけることができます。デフォルトでは512または1024に設定されています。たとえば、128に設定して再度テストできます(dom0とdomU)。
echo 128 > /sys/block/[your blockdevice]/queue/max_sectors_kb
この設定は永続的ではありません。エントリを/etc/rc.localに入れて、起動時に設定します。
結果を投稿してください。
ゲストからのストレージスループットについて具体的に言及しているようです。これは、パフォーマンスに関する多くの指標の1つにすぎません。 I/Oスループットは、bandwidthおよびlatencyの関数です。つまり、高いスループットを実現するには、レイテンシを最小限に抑え、帯域幅を最大化する必要があります(つまり、大量のデータを随時飛ばし、そのデータに対するリクエストを可能な限り高速に処理する必要があります)。
仮想化環境にいる場合、要求に対応するために必然的にレイテンシが追加されます。つまり、domUがdom0に表示されるスループットと一致するのは非常に困難です。うまくいけば、いつでもより多くのデータを送信できるようにすることで、この影響を最小限に抑えることができます(多くのVMがI/Oを実行するか、十分な大きさの要求を行うことによって)。
あなたのハードウェアとあなたが参照している速度(〜150 MB/s)を考えると、dd
に正しいパラメーターが与えられていれば、ゲストから同様のスループットが見られない場合、私は非常に驚きます。
これを「dom0」と「domU」から実行します(以下のコマンドは500MBのデータをdelete.me
に書き込みます:
dd if=/dev/zero of=delete.me bs=1M count=500 oflag=direct
oflag=direct
は、これらの書き込みがVM(dom0およびdomU)のバッファーキャッシュをバイパスすることを確認します。
また、次のドキュメントを参照して、XenServer 6.1.0が仮想化ストレージを実装する方法とそのパフォーマンスへの影響(vCPUの数のチューニングアドバイスとピン接続を含む)をよりよく理解してください。
追加してみることのできる1つのことは、VMのioスケジューラを期限に切り替えて、そこでioマージを実際に無効にすることです。これにより、一般的にioレイテンシが短縮され、XenのIOリング構造でより効果的に機能する可能性があります。
echo 1 > /sys/block/$dev/queue/nomerges
私の推論、そしてLinuxのブロックコードは実際にはスマートではないという経験ですが、そうだと思います。したがって、理想的には、すべてのIO要求を1つにマージしてからディスクドライバーに渡すようにします。Xenの場合、次のアクションは、それらを分割してリングバッファーに収まるようにすることです。次に、それらはdom0にあり、ディスクドライバーは、アライメントのために単一のVMに関する知識を取得する必要がないため、マージする必要があるものを見つけるためのはるかに優れた位置にあります。
それが役に立たない場合は、変更を元に戻しますが、他のすべてがすでに試されたときに私はそれを確認します。
たぶんあなたのサーバーはずっと前に捨てられたかもしれませんが、私はこれがまだ誰かを助けるでしょう。