Schlüsselfaktoren zum Auffinden von Ressourcenengpässen bei der Überlastung von Linux-Servern

Trotz der günstigen Hardware kommt es sehr häufig zu Lastproblemen auf dem Server. Eine hohe Auslastung des Servers kann verschiedene Gründe haben, z. B. unzureichender RAM/CPU, langsamere Festplatten oder einfach nicht optimierte Software. In diesem Artikel erfahren Sie, wo der Engpass liegt und wo Sie investieren müssen. Bitte verstehen Sie es jedoch nicht als Ersatz für eine professionelle Beratung/Service. Sie sollten immer einen professionellen Service in Anspruch nehmen, wenn Sie sich die damit verbundenen Kosten leisten können.

I) Zuallererst, bist du wirklich in Schwierigkeiten?

Normalerweise suchen die Leute nach Last in Control Panels, indem sie den Befehl “uptime” oder “top” verwenden. Sie können wahrscheinlich den Befehl “uptime” in Ihrer Root-Shell ausführen, um herauszufinden, was die Last ist, aber ich möchte, dass Sie im Moment “top” verwenden (bitte schön). Auf diese Weise können Sie erkennen, wie viele CPUs gemeldet werden*. Sie sollten etwas wie cpu00, cpu01 usw. sehen können.

Eine Belastung von ~1 für jede CPU ist angemessen. Zum Beispiel sind Sie in Ordnung, wenn die Last 3,50 beträgt und Sie 4 CPUs haben.

Eine andere Sache, die Sie berücksichtigen sollten, wenn Sie die Auslastung über Uptime oder Top betrachten, ist zu verstehen, was sie anzeigt. Zum Beispiel: (auf einem 2HT-CPU-Server, gemeldet als 4)

18:30:55 bis 17 Tage, 5:17, 2 Benutzer, Lastdurchschnitt: 4,76, 2,97, 2,62

Der erste Teil (3.76) zeigt den Lastdurchschnitt der letzten 5 Minuten, während der zweite (2.97) und der dritte (2.62) Durchschnittswerte von 10 bzw. 15 Minuten zeigen. Es ist wahrscheinlich eine Spitze hier, über die ich mir keine allzu großen Sorgen machen würde (ein bisschen sorglos?), aber wenn ja, dann lies einfach weiter!

Ziemlich glücklich darüber, wie Sie feststellen konnten, dass Ihr Server wirklich überlastet ist? Es tut uns leid, das zu hören, aber man kann nie wissen, da Server manchmal viel mehr Last bewältigen können als die angezeigte Last. Die Lastmittelwerte sind dann doch nicht so genau und können nicht immer der entscheidende Faktor sein. Verwirrt? Es waren nur einige technische Informationen, um die Sie sich nicht so kümmern müssen. Gehen Sie voran, wenn Ihre Lasten ein Grund zur Sorge sind.

* Beachten Sie die Verwendung des Begriffs “gemeldet”. Ich habe diesen Begriff verwendet, weil eine P4-CPU mit HT-Technologie als 2 gemeldet wird, selbst wenn Sie wissen, dass Ihr Server eine CPU hat.

II) Wo ist das Problem?

Um das Problem zu identifizieren, müssen Sie eine Reihe logischer Tests durchführen (ok, es ist nicht so beängstigend, wie es sich anhört). Alles, was Sie brauchen, ist etwas Freizeit, wahrscheinlich 30-45 Minuten, und Root-Zugriff auf Ihren Server (erwarten Sie keine Magie ;)). Bereit zum Start? Lass uns gehen!

Hinweis: Führen Sie die Prüfungen mehrmals durch, um zu einem guten Ergebnis zu kommen.

1. Auf RAM prüfen (häufigster Engpass!).

# frei -m

Die Ausgabe sollte ungefähr so ​​aussehen:

# frei -m

insgesamt verwendete freie gemeinsam genutzte Puffer im Cache

Mem: 1963 1912 50 0 28 906

-/+ Puffer/Cache: 978 985

Tausch: 1027 157 869

Irgendeine Reaktion wie “Ohh Gott, fast der gesamte RAM ist aufgebraucht.”? Keine Panik. Schauen Sie sich die Puffer/Cache an, die besagt, dass “985” MB RAM noch in Puffern frei sind. Solange Sie genügend Speicher in den Puffern haben und Ihr Server nicht viel Swap verwendet, sind Sie mit RAM ziemlich in Ordnung. Ihr Server beginnt damit, SWAP (ähnlich wie Pagefile) zu verwenden, das ein Teil Ihrer Festplatte ist, das als Speicher zugeordnet ist, aber vergleichsweise sehr langsam ist und Ihr System weiter verlangsamen kann, wenn Sie eine ausgelastete Festplatte haben (was Sie nicht tun würden, wenn du verwendest so viel RAM). Kurz gesagt, mindestens 175 MB in Puffern verfügbar und nicht mehr als 200 MB Swap.

Wenn RAM das Problem ist, sollten Sie sich wahrscheinlich mit Optimierungen Ihrer PHP/Perl-Skripte, MySQL-Abfragen + Server und Apache befassen.

2. Überprüfen Sie, ob die E/A-Auslastung (Eingabe/Ausgabe) übermäßig hoch ist

Wenn zu viele Lese-/Schreibanforderungen auf einer einzelnen Festplatte vorliegen, wird sie langsam und Sie müssen sie auf eine schnellere Festplatte (mit mehr RPM und Cache) aufrüsten. Die alternative Option zu einem einzelnen schnelleren Laufwerk besteht darin, die Last auf mehrere Laufwerke aufzuteilen, indem die meisten angeforderten Inhalte auf mehrere Laufwerke verteilt werden, was leicht mit “Symlinks” (Softlinks zu Dateien/Ordnern) erreicht werden kann. Um festzustellen, ob Ihr E/A-Problem Ihren Server verzögert:

# oben

Lesen Sie die Ausgabe im Abschnitt “iowait” für jede CPU. Im Idealfall sollte er nahe 0% liegen. Wenn Sie jedoch zum Zeitpunkt einer Lastspitze eine Überprüfung durchführen, sollten Sie diese Werte mehrmals überprüfen, um eine gute Schlussfolgerung zu ziehen. Alles über 15% ist besorgniserregend. Als Nächstes können Sie die Geschwindigkeit Ihrer Festplatte überprüfen, um zu sehen, ob sie wirklich verzögert:

Wenn Sie wissen, dass Ihre Festplatte auf /dev/sda oder /dev/hda existiert, führen Sie einfach Folgendes aus. Oder führen Sie den Befehl “df -h” aus, um zu überprüfen, auf welchem ​​Laufwerk sich Ihre Daten befinden.

# hdparm -Tt /dev/sda

Die Ausgabe:

/dev/sda:

Timing zwischengespeicherter Lesevorgänge: 1484 MB in 2,01 Sekunden = 739,00 MB/s

Timing gepufferter Festplattenlesevorgänge: 62 MB in 3,00 Sekunden = 20,66 MB/Sek.

Es war großartig bei den Puffer-Cache-Lesevorgängen, höchstwahrscheinlich wegen des Onboard-Cache der Festplatte, aber gepufferte Festplattenlesevorgänge liegen nur bei 20,66 MB / s. Alles unter 25 MB ist etwas, worüber Sie sich Sorgen machen sollten.

3. Die CPU-Leistung wird vollständig verbraucht?

# oben

Überprüfen Sie die obere Ausgabe, um herauszufinden, ob Sie zu viel CPU-Leistung verbrauchen. Sie sollten den Wert unter Leerlauf neben jedem CPU-Eintrag suchen. Alles unter 45% ist etwas, worüber Sie sich wirklich Sorgen machen sollten.

III) Problem erkannt, was ist die Lösung?

Lassen Sie mich zum Abschluss einige Lösungen für jedes Problem anbieten:

Eine globale Lösung für alle Probleme ist die Optimierung von MySQL und Webserver einschließlich PHP/Perl-Skripten und Abfragen. Oder Sie können zumindest die Apache- und MySQL-Serverparameter optimieren, um eine bessere Leistung zu erzielen.

1. Zu viel CPU-Auslastung

Suchen Sie in “ps -auxf” oder “top” nach Prozessen, die zu viel CPU verbrauchen. Wenn es sich um HTTP oder MySQL handelt, optimieren Sie nach Möglichkeit Ihre Skripte und Abfragen. In den meisten Fällen ist es extrem schwierig, alle Skripte und Abfragen zu optimieren, und eine bessere Option ist es, einfach einen CPU-Wechsel/ein Upgrade durchzuführen. Eine Dual-CPU sollte eine bessere Leistung erbringen, aber welche Art von Upgrade Sie suchen, hängt von Ihrer aktuellen CPU ab.

2. RAM ist erschöpft

Es ist, als wären Sie in der gleichen Situation wie die CPU. Optimieren Sie HTTP, MySQL, Skripte usw. oder machen Sie ein RAM-Upgrade. Sie können Opcode-Cache-Software wie APC (von Pear) für PHP installieren, um eine bessere Leistung zu erzielen und gleichzeitig die Last zu verringern.

3. Die Festplatte ist vollständig belegt (eh, ich meine nicht den Speicherplatz)

Hier müssen Sie sich entweder für eine schnellere Festplatte wie SATA über normale IDE oder SCSI über SATA entscheiden. Nun, ich habe nur allgemein gesprochen. Sie müssen Faktoren wie RPM und Cache berücksichtigen, um sich für ein Upgrade zu entscheiden, das sich lohnt. Die zweite Möglichkeit besteht darin, mehrere Laufwerke derselben Klasse zu erhalten und die Last auf die Laufwerke zu verteilen. Eine gängige Methode besteht darin, MySQL von einem zweiten Laufwerk aus bereitzustellen.

IV. Schlussfolgerung

Das hat nicht viel geholfen? Mein Artikel könnte fehlerhaft sein, ahh, entschuldigen Sie. Es ist mein erster Artikel und dieses Ding hat wirklich einige Gehirnzellen von mir verbraucht. Das ist ein bisschen persönlich, nicht wahr? Kommen wir zurück zum Geschäft.

Zu Ihrer Information, In dem Beispiel lag das Problem darin, dass die E/A-Nutzung und die Festplatte langsam wurden.

Ein Leitfaden kann niemals vollständig sein oder Ihnen alles bieten, was Sie brauchen, um das Expertenniveau zu erreichen (Sie müssen weiter lernen, um dieses Niveau zu erreichen). Beauftragen Sie im Zweifelsfall bitte Experten mit der Überprüfung Ihres Servers. Irgendwie, wenn Sie nicht das Geld zum Ausgeben haben, sind Sie immer noch sicher! Sie können unseren Hilfebereich zur Serveroptimierung aufrufen, um Hilfe bei der Serveroptimierung zu erhalten.



Quelle von Asad Niazi
#Schlüsselfaktoren #zum #Auffinden #von #Ressourcenengpässen #bei #der #Überlastung #von #LinuxServern

Kommentar verfassen