サーバー仮想化:ボトルネックを回避、特定、修正するにはどうすればよいでしょうか?

StackOverflow https://stackoverflow.com/questions/121743

質問

サーバーの仮想化は最近大きな注目を集めているため、私は職場で仮想化されたサーバーにソフトウェアの一部をインストールして、何が起こるかを確認するという任務を与えられています。長い話を短くすると:ある rsync 転送により、仮想化サーバーは即座に機能不全に陥ります。仮想化ホストは、他の負荷を持たない頑丈なマシンです。こんなことはあってはならないと思います。 Top は、平均負荷が高く、CPU iowait が 100% に近いことを示しています。どこかに大きなボトルネックがある。

私はシステム管理者というよりプログラマーなので、ランダムにグーグル検索する以外にこれを修正する方法についての知識がありません。これは私だけではないと思います。

私がここで知りたいのは、仮想化に関する一般的なアドバイスと、私や他の人が自分自身を教育するために使用できる優れた記事やその他のリソースへのポインタです。

  • ボトルネックを正確に特定するにはどのようなツール (標準の UNIX ツールも含む) を使用できますか?
  • 物事がスムーズに進むようにするには、どのような指標に従う必要がありますか?
  • どのようなものを効率的に仮想化できますか?
  • どのようなセットアップが失敗する運命にあるのでしょうか?

質問の範囲が広くて申し訳ありません。私にはこれに関して有益な具体的な質問をする知識がありません。

編集:私の問題の詳細:

  • XAN 準仮想化、ゲスト CentOS x 3
  • すべてのゲストはローカル SCSI ディスク上にあり、完全なハードウェア RAID コントローラが存在します。
  • 1 つのゲスト OS 上で実行される rsyncd、100mbps LAN を介してリモートの非仮想化サーバーから転送が開始される

前にも言ったように、私は大量の有用なデータを提供することはできません。この問題に対する直接的な解決策が得られるとは思っていませんが、この種の問題をよりよく理解するために必要なスキルセットの構築をどこから始めるべきかについてのヒントがあれば幸いです。

役に立ちましたか?

解決

これをコメントに入れるつもりでしたが、公開した方が役立つと思います。

セットアップについてさらに詳細を追加していただけますか:

  • どの VM サーバーですか?
    (VMware Server、VMware ESX、MS VirtualServer、MS Hyper-V、その他何か?)
  • ゲスト用の OS はどれですか?
    (Windows、Linux、32ビット、64ビット?)
  • ゲストはどこに保管されますか?
    (ローカル ディスク、それとも NAS または SAN 上?)
  • 同じ VM サーバー上のゲスト間で、またはゲストと物理サーバー間で rsync を実行していましたか?
  • ネットワーク経由の場合、ネットワークの速度はどれくらいですか?

どのような環境でもパフォーマンス チューニングの 90% はデータ収集、10% は分析です。仮想化環境には物理環境よりも多くの変数を考慮する必要がありますが、さらに重要なのは、仮想環境の応答曲線が物理環境とは異なることです。一部のアプリケーションは、物理環境よりも仮想化環境の方がパフォーマンスが向上します。他の人はそうではありません。アプリケーションの要件と実装の制約を理解する必要があります。

細部に注意すれば、ソフトウェアのみのアプリケーションで仮想サーバーにうまくデプロイできないものはないと思います。(正常に仮想化できないカスタム ハードウェアを必要とするアプリケーションは別の問題です。)

他のヒント

私は rsync を使用して、(非常に新しい) 仮想環境の一部を問題なく同期させています。これは仮想化の問題ではなく、I/O の問題であると思われますが、すでに特定されているようです。

仮想化はハードディスクに非常に大きな負担をかけることがわかりました。ホスト ボックス上のゲストが増えるほど、この問題はさらに悪化します。I/O 負荷が非常に高いマシンの場合は、ディスク アクセスを他のホストからセグメント化することを検討してください。何らかの SAN テクノロジーを使用していますか?私の職場では、これが非常に役立つことがわかりました (2 台の 8 コア Sun Intel サーバーと 1TB 12 ディスク iSCSI アレイを使用しています)。

使用しているハードウェアは仮想化ソフトウェア プロバイダーによって完全にサポートされていますか?サポートされていないハードウェアで実行しようとしている場合は、ディスク コントローラーが最適なドライバーを使用していない可能性が高く、これがディスク アクセスの遅さの原因となります。

使用できます iostat Linux/Unix で I/O に関するフィードバックを得るには、 iotop ただし、まだ多くのディストリビューションにはパッケージ化されていません。

勝手ながら、これは I/O の問題だと思います。仮想環境では、パフォーマンスに影響を与える最大の要因は、ホスト マシンのディスクの状態です。パフォーマンスを最適化するために行うことは次のとおりです。

  1. ディスク割り当てを修正しました。このようにして、VM が存在するドライブ領域の連続したブロックを取得します。
  2. VM スライス OS とホスト サーバー ドライブのデフラグをスケジュールします。断片化は敵です。
  3. サーバーセッションを正常に終了していることを確認してください。仮想 OS をバウンスするときは、巨大なディスクの断片化を引き起こすため、VM スライスを単にシャットダウンしないでください。仮想OSはシャットダウン/再起動処理を行う必要があります。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top