調整(およびnumad)を〜1000サーバーにロールアウトします。それらの大部分は、NetAppまたは3Parストレージ上のVMwareサーバーです。
RedHatsのドキュメントによると、virtual-guest
profileを選択する必要があります。それがしていることはここで見ることができます: tuned.conf
IOスケジューラーをNOOPに変更します。VMwareとNetApp/3Parの両方が十分なスケジューリングを行うためです。
ただし、少し調べたところ、なぜvm.dirty_ratio
およびkernel.sched_min_granularity_ns
が増加しているのかわかりません。
私が理解している限り、vm.dirty_ratio
を40%に増やすことは、20GBのRAMを持つサーバーの場合、vm.dirty_writeback_centisecs
が最初にヒットしない限り、いつでも8GBがダーティになる可能性があることを意味します。そしてこれらの8GBをフラッシュしている間、アプリケーションのすべてのIOはダーティページが解放されるまでブロックされます。
Dirty_ratioを増やすと、キャッシュがより大きくなるため、ピーク時の書き込みパフォーマンスが高くなる可能性がありますが、キャッシュがいっぱいになると、再びIOがかなり長い時間(数秒)ブロックされます。
もう1つは、彼らがsched_min_granularity_ns
を増やしている理由です。私がそれを正しく理解している場合、この値を増やすとEpoch(sched_latency_ns
)あたりのタイムスライスの数が減り、実行中のタスクが作業を完了するためにより多くの時間を費やすことになります。これは、スレッドが非常に少ないアプリケーションにとっては非常に良いことですが、たとえば、多くのスレッドを持つApacheまたは他のプロセスは、これは逆効果ではありませんか?
簡単に言えば、どのような調整も当て推量であり、実証的なデータでバックアップされた場合にのみ価値があるということです。試してみてください。それを測定します。気に入らない場合は調整してください。
より長い答え:
Dirty_ratioを増やすと、おそらく書き込みパフォーマンスが向上します... IOはかなり長い時間ブロックされます
いいえ。ダーティー率を高くすると、システムが書き込み時にブロックを開始する必要がある状態になる可能性が低くなります。欠点は、使用されるメモリが多くなり、停止中にデータが失われるリスクが高くなることです。
タスクを実行すると、作業を完了するためにより多くの時間がかかることを意味します
プロセスは通常、タイムスライスの期限が切れる前に生成されます。 VM=の問題は、マシンが他のVMとCPUおよびL1/L2キャッシュを競合している可能性があることです-プリエンプションにより)高レベルのタスク切り替えがスループットに大きな影響を与えます。通常VMにデプロイされるアプリケーションの種類は、CPUバウンドのアプリケーション(Webサーバー、アプリケーションサーバー)です。
はい、スループットの増加(すべての種類のアプリケーションに適用されます)はレイテンシの増加という犠牲を伴いますが、後者はほとんどのトランザクションがミリ秒を要する場合、マイクロ秒のオーダーです。リアルタイム機能/非常に低いレイテンシが必要な場合は、VMを使用しないでください。
次に、tuned-adm構成のスケジュールを示します...
それらを表形式で表示すると役立つと思います。注意すべき主なことはデフォルトのRHEL6設定はうんざりです!!もう1つは、エンタープライズストレージと仮想ゲストのプロファイルは、削減されたスワップネス仮想ゲスト側(理にかなっていますよね?)。
ストレージI/Oエレベーターに関する推奨事項については、ストレージレイヤーにいくつかの抽象化レイヤーがあります。 noop scheduler を使用することは、RDMを使用しているか、仮想マシンにストレージを直接提供している場合に意味があります。しかし、それらはNFSまたはVMFSで動作するので、デッドラインスケジューラによって提供される追加の チューニングオプション が好きです。
調整されたプロファイルは実行中のシステムでオンザフライで変更できるため、懸念がある場合は、アプリケーションと特定の環境およびベンチマークでテストしてください。
サミットのシャックとラリーのパフォーマンスチューニングビデオを見て、チューニングされたプロファイルについて詳しく説明します。
最も意図されている最大のポイントの1つは、プロファイルは推奨される開始点にすぎず、すべての環境に魔法のように完璧な不変の数値ではないということです。
1つのプロファイルから始めて、設定をいじってみましょう。実稼働のような優れたテストワークロードを生成し、ビジネスにとって重要なメトリックを測定します。
一度に1つずつ変更し、すべての反復ですべての結果を記録します。完了したら、結果を確認し、最良の結果が得られた設定を選択します。これが理想的な調整済みプロファイルです。