GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Fehlerbehebung 101:Systemleistung

Ausgelastete Systeme in einem Netzwerk, das von mehreren lokalen Nutzern (oder Tausenden von Webnutzern) verwendet wird, haben während ihres Lebenszyklus Leistungsprobleme. Nur Systeme, die nicht ausgelastet sind, sind immun gegen Leistungsprobleme, die uns alle plagen. In diesem Artikel werden die üblichen Verdächtigen zum Auffinden und Beheben von Leistungsproblemen untersucht.

Im Folgenden finden Sie allgemeine Richtlinien, eine grundlegende Zusammenfassung von "Startpunkten". Jedes Problem ist anders, aber mit zunehmender Erfahrung haben Sie eine bessere Vorstellung davon, wo und wie Sie mit der Suche nach einem bestimmten Problem beginnen können. Ich glaube, dass Ihnen die Grundlagen der Fehlerbehebung beigebracht werden können, aber Sie können nicht Erfahrung oder Intuition lernen. Beides kommt mit der Zeit. Beachten Sie auch, dass sich einige Probleme so manifestieren, dass Sie einen Weg einschlagen und oft zu einem anderen geführt werden. Dieser Faktor ist frustrierend, aber normal. Bestimmte Festplattenprobleme können beispielsweise dazu führen, dass Ihre CPU-Auslastung stark ansteigt, und Speicherprobleme können sich als Probleme mit der Festplattenleistung tarnen. Beginnen Sie zuerst mit den einfachen Dingen und arbeiten Sie sich dann zu den komplexeren vor. Verkomplizieren Sie Ihr Leben nicht mehr als nötig. Manchmal müssen Sie nur ein Netzwerkkabel austauschen oder ein System neu starten. Einfach, aber effektiv.

Letzte Änderungen rückgängig machen

Es ist notwendig, Änderungen in einer Produktionsumgebung vorzunehmen. Die Dokumentation dieser Änderungen ist obligatorisch. Sie werden froh sein, dass Sie es getan haben, wenn etwas schief geht, und das wird es. Das Merkwürdige an Änderungen unter Linux (oder jedem anderen System) ist, dass die Änderung selbst vielleicht perfekt funktioniert, wenn Sie sie vornehmen, aber in ein oder zwei Tagen leidet Ihre Systemleistung. Bevor Sie irgendetwas anderes tun, überprüfen Sie Ihre Änderungsdokumentation, um festzustellen, ob kürzlich Änderungen am System vorgenommen wurden. Zu den Änderungen gehören Software-Patches, Updates jeglicher Art, Hardware-Austausch oder -Upgrades, Treiber-Updates, Firmware-Updates, Code-Pushes, neue Softwareinstallationen und Konfigurationsänderungen.

Wenn Sie Ihre Änderungsdokumentation überprüfen, vergleichen Sie die letzten Änderungen mit den Problemen, die Sie haben. Nachdem Sie die üblichen Systemprüfungen durchgeführt haben, sollten Sie Ihre Änderungen eine nach der anderen rückgängig machen, um zu sehen, welche auf Ihre Leistungsgrundursache zurückgeführt werden kann. Manchmal werden Sie feststellen, dass bestimmte Update-„Cluster“ nicht kompatibel sind oder in einer bestimmten Reihenfolge installiert oder angewendet werden müssen. Überprüfen Sie immer Ihre Lieferantendokumentation, um festzustellen, ob dies der Fall ist.

Aktualisieren, aktualisieren, aktualisieren

Sie können Leistungsprobleme im Zusammenhang mit Software- und Hardwarefehlern vermeiden, indem Sie alles auf dem neuesten Stand halten, insbesondere wenn es um serverseitige Software geht (und nicht um clientseitige, wie z. B. einen Webbrowser). Clientseitig sollte natürlich auch aktualisiert werden, aber das ist eine andere Diskussion.

Ja, es ist ein Vollzeitjob, alle Ihre Systeme auf dem neuesten Stand zu halten. Auf einem System muss immer etwas aktualisiert werden:BIOS, Firmware, Treiber, das Betriebssystem, Anwendungen, Agenten, Sicherheitssoftware, Datenbanken, Sicherungssoftware und so weiter. Diese Aufgabe endet nie. Entscheiden Sie, wie oft Sie aktualisieren müssen, oder halten Sie sich an die Patch-Richtlinie Ihrer Organisation, um diese Updates zu planen, zu planen und anzuwenden. Bei einem meiner Jobs haben wir einmal pro Woche gepatcht. Das war ein Schmerz. Einmal pro Woche mussten wir die ganze Nacht durchmachen, was schnell alt wird. Regelmäßig kommt man aber nicht darum herum. Sie müssen aktualisieren, um sicherzustellen, dass Ihre Systeme sicher sind und über die neuesten Stabilitätspatches verfügen.

Wenn Ihre Systeme auf dem neuesten Stand sind und keine neueren Updates verfügbar sind, können Sie Updates und Patches im Allgemeinen als Ursache für Leistungsprobleme ausschließen.

Hardwarebeschränkungen und -fehler

Meiner Erfahrung nach möchte jeder (Programmierer, Netzwerkadministratoren, Management und Anbieter) die Infrastruktur für alle Leistungsprobleme verantwortlich machen. Sie alle glauben gemeinsam, dass die Infrastruktur das schwächste Glied ist und dass dort die Brüche am wahrscheinlichsten auftreten. Sie müssen also beweisen, dass es nicht Ihre Hardware ist, die das Problem verursacht, bevor jemand etwas unternimmt. In einem Punkt stimme ich zu, aber es ist etwas ärgerlich, wenn dies die erste Annahme ist und nicht eine, die gleichzeitig mit anderen möglichen Ursachen untersucht wird.

Im Allgemeinen gibt es vier Hardwarekomponenten, die entweder ausfallen oder Einschränkungen erreichen können, die Probleme verursachen können:CPU, Netzwerk, Arbeitsspeicher und Festplatte. Es gibt auch andere Komponenten, die ausfallen können, z. B. Netzteile, aber diese "großen Vier" sind die häufigsten Übeltäter und die ersten Stellen, an denen Sie nachsehen sollten, wenn Sie ein Problem haben.

Prozessor

Heutzutage haben die meisten Serversysteme CPU-Bänke mit mehreren Kernen und mehreren Prozessoren. Wenn Sie ein CPU-Problem haben, kann es durch einen Defekt in der CPU selbst verursacht werden. Das Finden der spezifischen CPU, die Ihnen ein Problem bereitet, würde den Rahmen dieses Artikels sprengen. Wenn Sie einen tatsächlichen CPU-Ausfall oder eine Anomalie vermuten, wenden Sie sich an Ihren Systemanbieter. Es ist wahrscheinlich, dass sie Diagnoseroutinen haben, die Sie ausführen können, um die problematische CPU zu identifizieren. Darüber hinaus schicken sie einen Techniker, um eine oder alle CPUs auszutauschen.

Worauf achten Sie also, abgesehen von einem pauschalen CPU-Ausfall, wenn Sie ein CPU-Problem vermuten? Kreuzen Sie top an um zu sehen, ob irgendwelche Prozesse Ihre CPU(s) überlasten. Um top zu sortieren Führen Sie für die CPU top aus und geben Sie dann P ein (Umschalt+P). Sehen Sie sich die Prozesse an, die Ihre CPU-Zyklen verbrauchen. Sind die ganz oben in der Liste systembezogen oder Anwendungen? Wenn es sich um Systemprozesse handelt, überprüfen Sie Ihre Betriebszeit. Die Betriebszeit sollte wegen regelmäßiger Neustarts nicht extrem hoch sein.

Wenn Sie feststellen, dass eine bestimmte Anwendung ungewöhnlich viele CPU-Zyklen verwendet, starten Sie die Anwendung neu, um festzustellen, ob das Problem weiterhin besteht. Wenn der Prozess systembedingt ist, versuchen Sie, den Prozess nach Möglichkeit neu zu starten. Wenn nicht, starten Sie das System neu. Ja, starten Sie das System neu.

Fehlerbehebungsbonus (Neustart)

Ja, Sie müssen mindestens einmal im Monat neu starten. Ich weiß, dass es eine Flut von Argumenten zu dieser Vorgehensweise gibt, aber um viele Probleme auszuschließen, löst ein guter Neustart viele Probleme und hilft Ihnen, Hardwareprobleme mit minimalem Aufwand zu diagnostizieren. Das gelegentliche Ausschalten des Systems ist ebenfalls eine gute Praxis, da das Hochfahren eines Systems von einem Kaltstart viele Hardwareprobleme erkennen kann, die sich auf einem laufenden System verbergen könnten. Sie können auch Probleme eingrenzen, wenn das Leistungsproblem nach einem Neustart bestehen bleibt.

Erinnerung

Der nächste naheliegendste Ort, an dem Sie bei der Fehlerbehebung bei der Leistung nachsehen sollten, ist die Speichernutzung. Gedächtnisprobleme können sich auf verschiedene Weise manifestieren, die die Tatsache verschleiern, dass das Gedächtnis tatsächlich das Problem ist. Wenn Sie feststellen, dass der Arbeitsspeicher Ihres Systems im Laufe eines Tages erschöpft ist, sollten Sie zuerst Ihre Protokollierung überprüfen. Ich weiß, es klingt verrückt, aber das Erfassen von Protokollen hat ein Unternehmen, für das ich früher gearbeitet habe, fast Millionen von Dollar gekostet. Ich habe in den Leistungsberichten festgestellt, dass der Arbeitsspeicher unseres Cluster-Systems tagsüber abgelassen wurde. Es waren viele Gigabyte Arbeitsspeicher verfügbar, daher hätte dieses Problem nicht auftreten dürfen. Außerdem verschlechterte sich die Leistung im Laufe des Tages. Jede Nacht um Mitternacht kam alles zurück. Was ist um Mitternacht passiert, fragen Sie? Protokollrotation. Anscheinend hatte jemand das Debugging für Protokolle eingeschaltet, was bedeutete, dass Dutzende von Gigabyte pro Tag unnötigerweise gesammelt, gesichert und gespeichert wurden. Und es raubte unser Gedächtnis. Einmal entdeckt und behoben, kam die Leistung wieder voll zur Geltung und verringerte die Notwendigkeit, Millionen von Dollar für zusätzliche Systeme für diesen riesigen Cluster auszugeben.

Sie sollten sich auch den Auslagerungsspeicher ansehen, wenn Sie ein Speicherproblem vermuten. In dieser Ausgabe befindet sich mein System im Leerlauf, sodass das Ergebnis nicht dramatisch ist. Verwenden Sie das free -m Befehl zum Überprüfen der physischen und virtuellen (Swap-)Speichernutzung:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:            821         200         288          10         333         484
Swap:             0           0           0

Wenn Sie viel Swap verwenden, macht Ihr System möglicherweise das, was *nix-Administratoren "Thrashing" nennen. Thrashing ist im Gegensatz zu dem, was Skateboarder tun, eine schlechte Sache für uns. Sie möchten nicht, dass Ihr System ins Stocken gerät. Thrashing kann auch als Festplattenproblem auftreten, wenn es schwerwiegend genug ist. Wenn Ihr System so mit dem Ein- und Auslagern beschäftigt ist, dass die Festplattenleistung beeinträchtigt wird, müssen Sie sofort handeln, indem Sie den störenden Prozess neu starten. Versteh mich jetzt nicht falsch. Swap ist eingerichtet und konfiguriert, um Dinge auf die Festplatte auszulagern, aber wenn es ein Leistungsproblem verursacht, muss dieses Problem behoben werden.

Viele moderne Systeme haben so viel Arbeitsspeicher, dass festplattenbasierter Swap überhaupt nicht verwendet wird. Einige Administratoren sind der Meinung, dass dies eine Verschwendung von Speicherplatz ist. Ob ich Swap konfiguriere, hängt für mich vom Zweck des Systems und der Menge an RAM ab, die es hat. Swap-Überlegungen gehören eigentlich in einen anderen Artikel, aber ich möchte sagen, dass es Ihnen überlassen bleibt, wie Sie mit Swaps umgehen. Ich glaube nicht, dass die alte Regel von 1,5 x RAM mehr eine gute Formel ist. Denk darüber nach. Wenn Ihr System über 128 GB RAM verfügt, bedeutet dies, dass Sie 192 GB RAM für Auslagerungsspeicher konfigurieren. Lächerlich. Ich könnte höchstens 16 GB für dieses System einrichten, wenn ich überhaupt Swap konfiguriert habe.

In seltenen Fällen kann Ihr RAM schlecht sein oder kaputt gehen. Mir ist es passiert. Sie sollten auch darauf achten, welche Art von RAM Sie für ein System kaufen, wenn Sie ein Upgrade durchführen. Passen Sie an, was Sie haben, oder ersetzen Sie alles, wenn Sie es nicht zusammenbringen können. Mischen Sie nicht Geschwindigkeiten, Caches oder Marken. Verwenden Sie außerdem den empfohlenen RAM-Typ für Ihr System. Die Verwendung von Fremdmarken oder nicht übereinstimmendem RAM ist eine Katastrophe, die auf uns wartet.

Schließlich können fehlerhafte Programme Speicherprobleme verursachen. Java-basierte Programme haben mir historisch am meisten Kummer bereitet. Einige Java-Programmierer programmieren nicht richtig für die Müllbereinigung oder Speicherfreigabe, und es treten Probleme auf, wenn die Last hoch ist oder wenn bestimmte Aufrufe getätigt werden. Ich beginne immer damit, den Prozess neu zu starten. Meine nächste Option ist, top zu überprüfen für die vom Programm verbrauchte Speichermenge. Wenn alle meine Überprüfungen und Neustarts des Prozesses nicht funktionieren, starte ich das System neu. Wenn das Problem erneut auftritt, gehe ich zum Programmierer und beschwere mich und erstatte meinen Bericht.

Festplatte

Festplatten fallen aus. Das ist eine starke, aber wahre Behauptung. Sogar SSDs fallen irgendwann aus, bereiten Sie sich also auf einen Festplattenausfall vor. Denken Sie daran, dass RAID nicht dasselbe ist wie ein Backup und dass Festplatten und Partitionen sich füllen, was dazu führt, dass sie sich nicht optimal verhalten. Wenn Sie vermuten, dass eine Festplatte Ihr Leistungskiller ist, sollten Sie sich zuerst den verfügbaren Speicherplatz mit einem schnellen df ansehen Befehl:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        397M     0  397M   0% /dev
tmpfs           411M     0  411M   0% /dev/shm
tmpfs           411M   11M  400M   3% /run
tmpfs           411M     0  411M   0% /sys/fs/cgroup
/dev/sda2        16G  1.8G   14G  12% /
/dev/sda1       495M  152M  344M  31% /boot
tmpfs            83M     0   83M   0% /run/user/1000

Sie können oben sehen, dass es auf meinem Server keine vollständigen oder fast vollständigen Dateisysteme gibt.

Als nächstes müssen Sie überprüfen, ob Ihre Dateisysteme voll oder fast voll sind. Wenn dies nicht der Fall ist, haben Sie eine ausgefallene Festplatte. Ich kann einen Plattenausfall nicht simulieren, aber einige Serversysteme teilen Ihnen mit, wenn sie ausgefallene Platten haben. Beispielsweise zeigten einige meiner alten Server ein gelbes Licht anstelle eines grünen Lichts, wenn etwas nicht stimmte. Achten Sie auf Ihre Hardware-Anzeigen. Ich hatte auch Server mit einem kleinen LCD-Bildschirm, der mich über Ausfälle und Fehler informierte. Diese Tools waren hilfreich, wenn das Betriebssystem mich nicht über ein Problem informiert hat.

Eine ausgefallene Festplatte wirkt sich unabhängig von der Konfiguration auf die Leistung aus. RAID-Konfigurationen garantieren keine Leistung, wenn eine Mitgliedsfestplatte ausfällt. Stattdessen garantieren sie Sicherheit durch Redundanz. Mit anderen Worten, Ihre Daten sind intakt, aber Ihre Benutzer und Kunden werden aufgrund der trägen Leistung unzufrieden sein. Erwarten Sie Leistungsprobleme, wenn eine Mitgliedsfestplatte ausfällt.

Wenn Sie ein langsames System haben, überprüfen Sie den physischen Server und alle seine Komponenten, Warnungen und Meldungen. Dieser Schritt ist für diejenigen gedacht, die Zugriff auf physische Server haben. So viele Systemadministratoren müssen sich mit entfernten oder gehosteten Systemen befassen und haben daher diese Art von Zugriff nicht.

Netzwerk

Netzwerkprobleme aufgrund von Hardware sind eher selten, kommen aber vor. Eine lärmende Netzwerkkarte, ein defektes Kabel oder ein ausgefallener Switch oder Switch-Port können für einen Systemadministrator sehr frustrierend sein. Und wenn Sie eine Switch-Port- oder Netzwerk-Fehlkonfiguration auf dem Host selbst hinzufügen, haben Sie jetzt ein Rezept für viel Haarziehen. Manchmal ist es schwierig, die Ursache eines Netzwerkproblems zu finden, da das Problem lokal, am Switch oder irgendwo außerhalb des Switches liegen kann. Sie müssen sich jede Ebene einzeln ansehen, um das Problem zu finden.

Überprüfen Sie Ihre anderen Hosts zum Vergleich. Ist das Problem auf einen einzelnen Host lokalisiert, ist es auf eine einzelne Gruppe beschränkt oder tritt es systemweit auf? Mit dieser Prüfung können Sie feststellen, ob das Problem lokal ist, ob es sich auf einen einzelnen Switch beschränkt, ein ganzes Rack oder eine ganze Reihe betrifft oder das Problem weiter verbreitet ist.

Überprüfen Sie Ihre lokalen Netzwerkkonfigurationen. Überprüfen Sie die Änderungsprotokolle, um festzustellen, ob sich kürzlich etwas geändert hat. Führen Sie als Nächstes eine physische Überprüfung Ihrer Netzwerkkarte durch. Sehen die Lichter für Sie richtig aus? Sieht das Kabel gut aus und wirkt der Stecker unbeschädigt? Sieht die Drahtkonfiguration korrekt aus? Überprüfen Sie, wenn möglich, die gesamte Länge des Kabels auf physische Beschädigungen. Überprüfen Sie den physischen Switch und den Kabelabschluss im Switch auf physische Defekte.

Überprüfen Sie die Switch-Konfiguration entweder selbst oder bitten Sie einen Netzwerkadministrator, dies zu tun. Überprüfen Sie physisch den Switch-Standort oder sehen Sie in Ihrer Dokumentation nach, um den richtigen Port zu finden, den Sie dem Netzwerkadministrator melden müssen. Wenn die Konfiguration gut aussieht, lassen Sie den Netzwerkadministrator den Port schnell zurücksetzen. Fragen Sie den Administrator auch nach dem letzten Switch-Update und dem Datum des letzten Neustarts.

Abhängig von Ihrem Job und Ihrem Arbeitsplatz haben Sie möglicherweise keine Kontrolle oder Transparenz über Ihren Switch hinaus. Arbeiten Sie mit Netzwerkadministratoren, ISPs oder Hosting-Anbietern zusammen, um ein Problem mit der Netzwerkleistung weiter zu lokalisieren. Aus eigener Erfahrung weiß ich, dass Netzwerkadministratoren, sofern ein Netzwerkproblem nicht weit verbreitet ist, einen Beweis dafür verlangen, was Sie überprüft haben, was dazu geführt hat, dass Sie dem Netzwerk die Schuld geben. Aus diesem Grund habe ich die Netzwerkfehlerbehebung an letzter Stelle in der Liste platziert. Ich kann nicht zählen, wie oft ich diese frustrierenden Worte gehört habe:"Es ist nicht das Netzwerk, Mann. Es muss die Infrastruktur sein." Und dann ein Freizeichen.

Abschluss

Es gibt keine Abkürzungen, um Kenntnisse zur Fehlerbehebung zu erlangen. Sie können lernen und vorbereitet sein, aber leider ist Erfahrung der beste Lehrer, weil Sie Fehler erleben müssen, bevor Sie ein echtes Gefühl für die Fehlerbehebung in den Schützengräben bekommen. Selbst simulierte Fehler geben Ihnen nicht die gleiche Erfahrung wie ein echter Fehler, mit echten Benutzern, die fragen, wann die Dinge behoben werden, und echten Managern, die Sie ansehen, als ob es Ihre Schuld wäre, dass das Unternehmen Geld verliert, und sich darüber ärgern, dass Ihre Tastatur nicht funktioniert. macht keinen Lärm.

Das Beheben von Problemen ist nicht der lustige Teil eines Systemadministrators, aber es ist ein notwendiger Teil. Tatsächlich bin ich mir nicht sicher, ob es irgendwelche lustigen Teile gibt, und sie sind alle notwendig. Ein Systemadministrator zu sein ist stressig, und die Behebung von Problemen macht einen großen Teil dieses Stresses aus. Ich habe Ihnen Hinweise gegeben, um diesen Stress zu verringern, aber es liegt immer noch an Ihnen, Erfahrung und Selbstvertrauen bei der Anwendung zu sammeln.


Linux
  1. Verbessern Sie die Linux-Systemleistung mit noatime

  2. Fehlerbehebung bei Hardwareproblemen unter Linux

  3. Wenn es um die Fehlerbehebung von Linux-Systemen geht, ist find mein bester Freund

  4. 5 Linux-Befehle zur Fehlerbehebung im Netzwerk

  5. Linux-Fehlerbehebung:Einrichten eines TCP-Listeners mit ncat

Fsck-Befehl unter Linux

Ist Linux ein Betriebssystem oder ein Kernel?

Hilfreiche Tipps zur Verbesserung der Linux-Systemleistung

Meine Go-to-Fehlerbehebungsbefehle für Linux-Netzwerke

Dokumentieren der Systemverfügbarkeit in Linux

Beheben und überwachen Sie die Linux-Systemleistung mit nmon