Wir werden optimierte (und numad) auf ~ 1000 Servern einführen, von denen die meisten VMware-Server entweder auf NetApp- oder 3Par-Speicher sind.
Laut RedHats-Dokumentation sollten wir das virtual-guest
Profil auswählen . Was es tut, kann hier gesehen werden: sung.conf
Wir ändern den E / A-Scheduler auf NOOP, da sowohl VMware als auch NetApp / 3Par eine ausreichende Planung für uns durchführen sollten.
Nach ein wenig Nachforschungen bin ich mir jedoch nicht sicher, warum sie zunehmen vm.dirty_ratio
und kernel.sched_min_granularity_ns
.
Soweit ich verstanden habe, bedeutet eine Erhöhung vm.dirty_ratio
auf 40%, dass bei einem Server mit 20 GB RAM 8 GB zu jedem Zeitpunkt verschmutzt sein können, sofern nicht vm.dirty_writeback_centisecs
zuerst getroffen wird. Und während diese 8 GB geleert werden, werden alle E / A für die Anwendung blockiert, bis die schmutzigen Seiten freigegeben sind.
Das Erhöhen des Dirty_Ratio würde wahrscheinlich eine höhere Schreibleistung bei Spitzenwerten bedeuten, da wir jetzt einen größeren Cache haben. Wenn der Cache jedoch voll ist, wird die E / A für eine erheblich längere Zeit (mehrere Sekunden) blockiert.
Der andere ist, warum sie die erhöhen sched_min_granularity_ns
. Wenn ich es richtig verstehe, verringert das Erhöhen dieses Werts die Anzahl der Zeitscheiben pro Epoche ( sched_latency_ns
), was bedeutet, dass das Ausführen von Aufgaben mehr Zeit erhält, um ihre Arbeit zu beenden. Ich kann verstehen, dass dies eine sehr gute Sache für Anwendungen mit sehr wenigen Threads ist, aber für z. Apache oder andere Prozesse mit vielen Threads wäre dies nicht kontraproduktiv?