調整(およびnumad)を最大1000台のサーバーに展開します。それらの大部分は、NetAppまたは3Parストレージ上のVMwareサーバーです。
RedHatsのドキュメントによると、virtual-guest
プロファイルを選択する必要があります。それがしていることはここで見ることができます:tuned.conf
VMwareとNetApp / 3Parの両方で十分なスケジューリングを行う必要があるため、IOスケジューラをNOOPに変更します。
しかし、ビットを調査した後、私は、彼らが増加している理由はわからないvm.dirty_ratio
とkernel.sched_min_granularity_ns
。
私が理解している限り、vm.dirty_ratio
40%に増加すると、20GBのRAMを搭載したサーバーの場合、vm.dirty_writeback_centisecs
最初にヒットしない限り、8GBがいつでもダーティになる可能性があります。そして、これらの8GBをフラッシュしている間、アプリケーションのすべてのIOはダーティページが解放されるまでブロックされます。
dirty_ratioを増やすと、キャッシュが大きくなるため、ピーク時の書き込みパフォーマンスが高くなる可能性がありますが、キャッシュがいっぱいになると、IOはかなり長い時間(数秒)ブロックされます。
他の理由は、彼らが増加している理由sched_min_granularity_ns
です。私がそれを正しく理解している場合、この値を増やすとエポック(sched_latency_ns
)あたりのタイムスライスの数が減り、実行中のタスクが作業を完了するためにより多くの時間を費やすことになります。これは、スレッドが非常に少ないアプリケーションでは非常に良いことですが、たとえば、多くのスレッドを含むapacheまたは他のプロセスはこれは逆効果ではないでしょうか?