アプリケーションのVMwareパフォーマンス要件をVMware管理者に説明する方法


23

多くの場合、オンサイトのdebian-stableベースのアプリケーションのインストールは、仮想マシン(通常はVMware ESXi)で実行されます。一般的なケースでは、仮想化環境に対する可視性や影響力はなく、VMware vCenterクライアントや同等のものへのアクセスもありません。ここではVMwareに焦点を当てます。これは、私たちが目にする最も一般的な方法だからです。

私たちがしたいこと:

  • お客様のVMware管理者に伝える:パフォーマンス基準X、Y、Zを満たしている限り、VMware ESX環境などでアプリケーションを実行できます。
  • 実行中のシステムであっても、基準X、Y、Zが実際に継続的に満たされているかどうかを判断できます(たとえば、現在も)(アプリケーションを停止してベンチマークを実行することはできません。仮想環境は時間とともに変化します)。
  • 基準X、Y、およびZが満たされた場合、十分なパフォーマンスでアプリケーションを実行するための適切な仮想HWリソースがあることを確信してください。

X、Y、Zとは何ですか?

パフォーマンスの問題がある場合、問題はアプリケーションではなく、仮想化環境にあることが何度もあります。たとえば、別の仮想マシンが大量のCPU、メモリ、またはディスクが実際に格納されているSANを使用している場合、アプリケーション以外のものが頻繁に使用します。現在、それを証明または反証する方法はありません。

理論的には、アプリケーションが遅い場合もあります... ;-)

パフォーマンスの問題の根本的な原因(仮想環境またはアプリケーション)をどのように判断しますか?

通常、CPU、メモリ、およびディスクI / Oのパフォーマンスの問題には3つの領域があります。

CPU

たとえばVMwareでは、管理者はMHzで表される予約と制限を指定できますが、たとえば、あるESXホストの512MHzは別のESXホストの512MHzとまったく同じです。

そして、私たちが実際にそれを得るかどうかをどのように測定しますか?アプリケーションの実行中に、おそらく4つのCPUで212%のCPU使用率になっていることがわかります。私たちのアプリケーションが多くのことをしているからか、同じホスト上の別のVMがCPUを集中的に使用してすべてのCPUを使用しているからでしょうか?

メモリー(バルーニング?)

たとえば16GB RAMを要求すると、多くの場合構成されますが、バルーニングのために、実際には4GBしか得られず、驚くことに、アプリケーションのパフォーマンスが低下します。

VMwareツールに現在のバルーニングについて尋ねることができますが、それはしばしば嘘をつく(または少なくとも不正確である)ことがわかりました。OSが合計16GBのRAMがあり、すべてのプロセスの常駐メモリ(RSS)の合計が4GBのRAMであると考える例を見てきましたが、VMwareツールからバルーンが0であると通知された場合でも2GBのRAMしかありません: -(

また、コピーオンライトメモリなどの共有RAMが簡単に存在する可能性があるため、RSSを一緒に追加するだけでは有効ではありません。そのため、すべてのプロセスからRSSを単純に差し引いて、RAMの空き容量を測定し、バルーニングを確実に検出することはできません。バルーニングのいくつかのケースを検出できますが、バルーニングが有効であるが、この方法では検出できない他のケースがあります。

ディスクI / O

ディスクの読み取りと書き込みの数、読み取りと書き込みのバイト数、およびIO待機%を経時的にグラフ化できると思います。しかし、それはディスクI / Oの正確な状況を教えてくれますか?すべてのCPUを使用する別のVMでビットコインマイナーが実行されている場合、CPUリソースが低下し、IO待機(%で測定されます)上がります。

要約すると、VMware管理者などに、どの言語を使用してどのようなパフォーマンスが必要かを、ポータブルで測定可能な方法で説明できますか?


アプリケーションの実際の要件は何ですか?これまで説明してきたことだけでは、環境内のリソース要件を正確に測定するには不十分であり、VMwareに精通しています。あなたのターゲットオーディエンスはさらに難しい時間を過ごすでしょう。実際には、ベンダーの要件を無視し、vRealize Operations Managerを使用した履歴メトリックと観察に基づいてVMを測定/適切なサイズに設定します。
-ewwhite

1
@ewwhite:私はハードウェアの専門家ではありません。ただし、具体的には、8GB RAMを搭載したCore i7-5820Kで問題なく実行できると言います。磁気ディスクca. 2015年は問題ありませんが、SSDの方が優れています(必要に応じて、ここで具体的に説明することができます)。80GBの空きディスク容量が必要です。
ピーターV.モーヒ

2
管理者として、「割り当てる必要があるコアの数、実際のRAM要件、IOPとスループットの観点からのストレージ要件、ストレージの成長率はどれくらいか、大丈夫です。シンプロビジョニングなどで?」
ewwhite

アプリケーションはパフォーマンスの観点から何を必要としますか?アプリケーションのベンチマークはありますか?言う"It runs fine with x, y, and z"だけでは十分ではありません。アプリケーションに必要なものを顧客に正確に伝えることができる必要があります。それらがあなたにそれらのリソースを提供し、アプリケーションのパフォーマンスが悪い場合、問題はそう"What do we need from a resource perspective?"ではありませんが"Why is it performing poorly even though the proper resources have been allocated?"
-joeqwerty

1
@ewwhite:「解決済み」?いいえ。VMware管理者に提供できる25ワードの暗号化機能はまだありません。そして、予測できるパフォーマンスが得られることをテストして知ることができます。しかし、そのような正確で測定可能な要件は不可能であり、あなたの情報は適切な言語を話すことに大いに役立つと思うので、私はあなたの答えを受け入れました。将来的には、「パフォーマンスのトラブルシューティングを行うには、少なくともvCenterへの表示アクセスが必要です」ルートに進むことをお勧めします。
ピーターV.モーヒ

回答:


23
  • 真剣に、ほとんどのVMware管理者はこれが得意ではありません。リソース管理の理解が不十分で、多くの場合Linuxの知識がなく(役立つ)、時間帯域幅が不足しています。ほとんどの社内管理者は、仮想化に関する深い知識を維持するのに苦労しています。

  • 幸いなことに、あなたが読むことができる本があります

  • ほとんどのVMware環境は、優れたものではありません。不適切なクラスター設計、不適切なリソース計画、標準以下のストレージ(Synology NASなど)、HAの構成ミス、監視やパッチ適用なし。

  • 組織としてのVMwareは私たちを失敗させます。彼らは最新の情報を広め、ベストプラクティスを促進するのが特に苦手です。一般的な質問の基本的な検索では、プロセスと設計が時間とともに変化したという事実にもかかわらず、2009年およびVMwareの古いリビジョンから結果が生成されます。

これらはすべてあなたに反するでしょう。

ソリューションの実際の要件を決定する必要があります。アプライアンスが必要とすることを正確に述べることができる:2 vCPU、8GB RAM、および500 IOPのストレージパフォーマンスは、私のような人にとっては大いに役立つでしょう。

もう1つのアプローチは、健全な環境または理想的な環境を観察し、そこからメトリックを推定することです。

特定の展開に関する問題を説明しました。問題とボトルネックは何でしたか?


適切なサイズのVMの例:

300ユーザー組織のExchangeサーバー。

  • 6週間のワークロード/ストレスヒートマップがあります。
  • 6個のvCPUにより、スパイク用のバッファルームが確保され、ストレスゾーンを上回っています。
  • 32GB RAMは、ストレス値を上回る値を維持しますが、実際に必要な値を超える不当な量ではありません。

ここに画像の説明を入力してください

  • 数GBのRAMとvCPUを再利用できましたが、すべてが効率的なVMです。
  • 理想的な条件下でアプリケーションのこのタイプの監視を取得するのが賢明でしょう。

ここに画像の説明を入力してください


VMリソースの監視の例。

Good-ish:-VMは適切なサイズです。-クラスタ全体でCPUがオーバーコミットされていますが、競合は発生していません。

ここに画像の説明を入力してください

悪いような:

  • VMは、設定されているすべてのRAMを取得することはありません。
  • VMはすでにRAMをスワップしています。
  • CPUが過剰に構成されています。

ここに画像の説明を入力してください


2
答えてくれてありがとう。議論のために、ある顧客では、2 vCPU、8GB RAM、および500 IOPのストレージパフォーマンス(回答から)で優れたパフォーマンスを発揮するとしましょう。VMwareの管理者によると、別の顧客サイトで同じことを要求し、それを入手します。ただし、2vCPUは他の17個のCPUを必要とするVMと共有され、8GB RAMもバルーン化されます。私はVMディスクをあまりよく理解していないので、実際にそれを取得したとしましょう。私たちのアプリは、これら2つのESXi環境の最初の環境で優れたパフォーマンスを発揮し、他の環境では恐ろしく機能します。VM内との違いをどのように測定しますか?
ピーターV.モーヒ

1
VMの上部にある「CPU Steal」を監視して、CPUが過度にコミットされすぎていないかどうかを確認できます。RAMのバルーニング/スワップについては、パフォーマンスの低下を除いて、VMの内部から伝えるのは困難です。ただし、vCenterのビューとVMのリソースを要求できます。例については上記を参照してください。
-ewwhite

1
CPU Stealを調べます。VMware管理者がアプリケーションに指を向けたり、遅いVMware環境に指を向けたりすることがあります。ただし、ほとんどの場合、vSphereへの表示アクセス権さえ持たないため、他のインストールで正常に機能する場合、トラブルシューティングが困難になります。「私たちはあなたのvCenterに少なくともビューのアクセス必要があります、あなたはトラブルシューティングのパフォーマンスに私たちをしたい場合は」:私は1つのアプローチは、可能性が推測する
ピーターV.Mørch

3
ほとんどのVMware管理者は、これらのことを読む方法すら知りません。私は彼らの後片付けに多くの時間を費やします。したがって、ベンダーとして、セットアップへのアクセスや洞察を求めるのは難しいです。しかし、要件を固めてから実施するのが最善だと思います。通常、予約の設定はお勧めしませんが、アプリケーションが重要な場合は意味があります。または、少なくとも「共有の優先順位」を設定します。アプリケーションは何をしますか?
ewwhite

1
これを、小規模、中規模、および大規模な推奨構成のVMwareアプライアンスとして配布することを検討しましたか?
ewwhite
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.