Werkzeuge:

Werkzeuge:

Ich weiß, dass Linux für mehrere Benutzer/parallel laufende Prozesse entwickelt wurde, aber auf Unternehmensebene werden viele davon für einzelne (aber große) Anwendungen verwendet, um einen internen Dienst zu unterstützen, der nur sehr wenige Clients bedient.

Wie sollten wir in einem solchen Anwendungsfall das System oder den Kernel (insbesondere Red Hat Linux, Fedora, CentOS) optimieren, um es für das Szenario zu optimieren? Um die Latenz zu minimieren, den Kontextwechsel zu reduzieren und möglichst wenig lokale Festplatten-E/A durchzuführen.

Die Sitzungslänge kann dauerhaft sein (da es nur wenige Clients gibt), der Datenaustausch ist gering, aber sehr häufig, etwa 1.000 bis 2.000 Nachrichten pro Sekunde, Größe 40 bis 100 Byte.

Antwort1

Leistungsoptimierung ist sowohl eine schwarze Kunst als auch eine Wissenschaft. Es wurden ganze Bücher darüber geschrieben, darunter auch einiges als Teil derLieferantendokumentation

Sie beginnen mit einer guten Überwachung, fügen eine Last hinzu, ermitteln einen Ausgangswert und beginnen erst dann mit der Anpassung und beobachten, ob Ihre Anpassung das gewünschte Ergebnis gebracht hat oder nicht.
Wiederholen Sie den Vorgang, bis Sie das optimale Ergebnis erzielen.

Sie erwähnen Ihre Hauptversion von RHEL oder CentOS nicht, aber sie alle beinhalten auch automatisches Tuning, beispielsweise mit dem tunedDaemon. Vordefinierte Leistungsprofile können ausgewählt tuned-adm list und dann mit aktiviert werden tune-adm profile <profile-name>.

Für Ihren Anwendungsfall das RHEL 7-Profillatency-performanceklingt nach etwas, von dem Sie profitieren könnten:

latency-performanceEin Serverprofil, das sich auf die Reduzierung der Latenz konzentriert. Dieses Profil wird für latenzempfindliche Workloads empfohlen, die von C-State-Tuning und der erhöhten TLB-Effizienz von Transparent Huge Pages profitieren. Dieses Profil bevorzugt Leistung gegenüber Energieeinsparungen, indem intel_pstateund festgelegt werden max_perf_pct=100. Es aktiviert Transparent Huge Pages, verwendet cpupowerzum Festlegen des Performance-Cpufreq-Governors und fordert einen cpu_dma_latencyWert von an 1.

Für allgemeinere Linux-OptimierungenBrandan Gregghat eine Reihe visueller Diagramme erstellt, die zeigen, welches Tool für welchen Teil Ihres Systems zu verwenden ist, und die sich als wirklich nette Spickzettel eignen:

Werkzeuge:

Leistungsbeobachtung

Welche Optionen sollen zur Überwachung verwendet werden sar:

<code>sar</code> Optionen

Und eng damit verbunden:

Linux-Benchmarking-Tools

Übersetzen Sie Beobachtungen in Feineinstellungen mit:

Tuning-Werkzeuge

verwandte Informationen