![So richten Sie die MySQL-Replikation (Master-Slave) in RHEL, CentOS, Fedora ein](/f/55576ff9a64a4ee952b08d74a03d6d77.jpg?width=100&height=100)
Obwohl Linux sehr zuverlässig ist, sollten kluge Systemadministratoren einen Weg finden, das Verhalten und die Auslastung des Systems jederzeit im Auge zu behalten. Sicherstellung einer Betriebszeit so nah wie 100% wie möglich und die Verfügbarkeit von Ressourcen sind in vielen Umgebungen kritische Anforderungen. Die Untersuchung des vergangenen und aktuellen Status des Systems ermöglicht es uns, mögliche Probleme vorherzusehen und höchstwahrscheinlich zu vermeiden.
Einführung in das Linux Foundation-Zertifizierungsprogramm
In diesem Artikel stellen wir eine Liste einiger Tools vor, die in den meisten Upstream-Distributionen verfügbar sind, um den Systemstatus zu überprüfen, Ausfälle zu analysieren und laufende Probleme zu beheben. Konkret konzentrieren wir uns aus den unzähligen verfügbaren Daten auf CPU, Speicherplatz und Speicherauslastung, grundlegendes Prozessmanagement und Protokollanalyse.
Es gibt 2 bekannte Befehle in Linux, die verwendet werden, um die Speicherplatznutzung zu überprüfen: df und du.
Der erste, df (was für disk free steht) wird normalerweise verwendet, um die Gesamtnutzung des Speicherplatzes durch das Dateisystem zu melden.
Ohne Optionen, df meldet die Speicherplatznutzung in Byte. Mit dem -h markieren, werden die gleichen Informationen stattdessen mit MB oder GB angezeigt. Beachten Sie, dass dieser Bericht auch die Gesamtgröße jedes Dateisystems (in 1-KB-Blöcken), den freien und verfügbaren Speicherplatz und den Bereitstellungspunkt jedes Speichergeräts enthält.
# df. #df -h.
Das ist sicherlich schön – aber es gibt noch eine andere Einschränkung, die ein Dateisystem unbrauchbar machen kann, und zwar gehen die Inodes aus. Alle Dateien in einem Dateisystem werden einem Inode zugeordnet, der seine Metadaten enthält.
#df -hTi.
Sie können die Anzahl der verwendeten und verfügbaren Inodes sehen:
Nach obigem Bild gibt es 146 gebrauchte Inoden (1%) in /home, was bedeutet, dass Sie immer noch 226K-Dateien in diesem Dateisystem erstellen können.
Beachten Sie, dass Ihnen der Speicherplatz ausgehen kann, lange bevor Ihnen die Inodes ausgehen, und umgekehrt. Aus diesem Grund müssen Sie nicht nur die Speicherplatznutzung überwachen, sondern auch die Anzahl der vom Dateisystem verwendeten Inodes.
Verwenden Sie die folgenden Befehle, um leere Dateien oder Verzeichnisse (die 0B belegen) zu finden, die ohne Grund Inodes verwenden:
# find /home -type f -leer. # finde /home -type d -leer.
Sie können auch die -löschen Flag am Ende jedes Befehls, wenn Sie auch diese leeren Dateien und Verzeichnisse löschen möchten:
# find /home -type f -empty --delete. # find /home -type f -leer.
Das vorherige Verfahren hat 4 Dateien gelöscht. Lassen Sie uns noch einmal die Anzahl der verwendeten / verfügbaren Knoten in /home überprüfen:
# df -hTi | grep nach Hause.
Wie Sie sehen, gibt es 142 gebrauchte Inodes jetzt (4 weniger als zuvor).
Wenn die Nutzung eines bestimmten Dateisystems über einem vordefinierten Prozentsatz liegt, können Sie du (kurz für Festplattennutzung), um herauszufinden, welche Dateien den meisten Speicherplatz belegen.
Das Beispiel ist gegeben für /var, die, wie Sie im ersten Bild oben sehen können, mit 67% verwendet wird.
# du -sch /var/*
Notiz: Dass Sie zu einem der oben genannten Unterverzeichnisse wechseln können, um genau herauszufinden, was sich darin befindet und wie viel jedes Element belegt. Sie können diese Informationen dann verwenden, um entweder einige Dateien zu löschen, wenn sie nicht benötigt werden, oder die Größe des logischen Datenträgers bei Bedarf zu erweitern.
Lesen Sie auch
Das klassische Werkzeug in Linux, das verwendet wird, um eine Gesamtüberprüfung der CPU- / Speicherauslastung und des Prozessmanagements durchzuführen, ist oberstes Kommando. Darüber hinaus zeigt top eine Echtzeitansicht eines laufenden Systems an. Es gibt andere Tools, die für den gleichen Zweck verwendet werden könnten, wie z htop, aber ich habe mich für top entschieden, weil es in jeder Linux-Distribution out-of-the-box installiert ist.
Um oben zu beginnen, geben Sie einfach den folgenden Befehl in Ihre Befehlszeile ein und drücken Sie die Eingabetaste.
# oben.
Betrachten wir eine typische Top-Ausgabe:
In den Zeilen 1 bis 5 werden folgende Informationen angezeigt:
1. Die aktuelle Uhrzeit (20:41:32 Uhr) und die Betriebszeit (7 Stunden und 41 Minuten). Nur ein Benutzer ist am System angemeldet und der Lastdurchschnitt während der letzten 1, 5 bzw. 15 Minuten. 0,00, 0,01 und 0,05 zeigen an, dass das System in diesen Zeitintervallen 0 % der Zeit im Leerlauf war (0,00: keine Prozesse waren auf die CPU warten), war sie dann um 1 % überlastet (0,01: durchschnittlich 0,01 Prozesse warteten auf die CPU) und 5 % (0.05). Wenn kleiner als 0 und je kleiner die Zahl ist (z. B. 0,65), war das System während der letzten 1, 5 oder 15 Minuten zu 35 % im Leerlauf, je nachdem, wo 0,65 angezeigt wird.
2. Derzeit laufen 121 Prozesse (die vollständige Auflistung finden Sie in 6). Nur einer von ihnen läuft (in diesem Fall oben, wie Sie in der %CPU-Spalte sehen können) und die restlichen 120 warten im Hintergrund, aber "schlafen" und bleiben in diesem Zustand, bis wir sie aufrufen. Wie? Sie können dies überprüfen, indem Sie eine MySQL-Eingabeaufforderung öffnen und einige Abfragen ausführen. Sie werden feststellen, wie sich die Anzahl der laufenden Prozesse erhöht.
Alternativ können Sie einen Webbrowser öffnen und zu einer beliebigen Seite navigieren, die von Apache bereitgestellt wird, und Sie erhalten das gleiche Ergebnis. In diesen Beispielen wird natürlich davon ausgegangen, dass beide Dienste auf Ihrem Server installiert sind.
3. us (Zeit für die Ausführung von Benutzerprozessen mit unveränderter Priorität), sy (Zeit für die Ausführung von Kernelprozessen), ni (Zeit für die Ausführung von Benutzerprozessen mit geänderter Priorität), wa (Zeit für das Warten auf I/O Completion), hi (Zeitaufwand für die Wartung von Hardware-Interrupts), si (Zeitaufwand für die Wartung von Software-Interrupts), st (Zeit, die vom Hypervisor aus der aktuellen VM gestohlen wurde – nur in virtualisierten Umgebungen).
4. Physische Speichernutzung.
5. Swap-Speicherplatznutzung.
Um den RAM-Speicher und die Swap-Nutzung zu überprüfen, können Sie auch verwenden frei Befehl.
# frei.
Natürlich können Sie auch die -m (MB) oder -g (GB) schaltet um, um dieselben Informationen in lesbarer Form anzuzeigen:
# frei -m.
In jedem Fall müssen Sie sich darüber im Klaren sein, dass der Kernel so viel Speicher wie möglich reserviert und Prozessen auf Anfrage zur Verfügung stellt. Besonders die „-/+ Puffer/Cache”-Zeile zeigt die tatsächlichen Werte, nachdem dieser I/O-Cache berücksichtigt wurde.
Mit anderen Worten, die von Prozessen verwendete Speicherkapazität und die für andere Prozesse verfügbare Menge (in diesem Fall 232 MB gebraucht und 270 MB jeweils verfügbar). Wenn Prozesse diesen Speicher benötigen, verringert der Kernel automatisch die Größe des I/O-Cache.
Lesen Sie auch: 10 Nützlicher „free“-Befehl zum Überprüfen der Linux-Speichernutzung
Auf unserem Linux-System laufen zu jeder Zeit viele Prozesse. Es gibt zwei Tools, die wir verwenden werden, um Prozesse genau zu überwachen: ps und pstree.
Verwendung der -e und -F Optionen kombiniert in einem (-ef) können Sie alle Prozesse auflisten, die derzeit auf Ihrem System ausgeführt werden. Sie können diese Ausgabe an andere Tools weiterleiten, z grep (wie erklärt in Teil 1 der LFCS-Serie), um die Ausgabe auf den/die gewünschten Prozess(e) einzugrenzen:
# ps -ef | grep -i Tintenfisch | grep -v grep.
Die obige Prozessauflistung zeigt die folgenden Informationen:
Eigentümer des Prozesses, PID, Parent PID (der übergeordnete Prozess), Prozessorauslastung, Zeitpunkt des Befehlsstarts, tty (der? gibt an, dass es sich um einen Daemon handelt), die kumulierte CPU-Zeit und den mit dem Prozess verknüpften Befehl.
Möglicherweise benötigen Sie jedoch nicht all diese Informationen und möchten dem Eigentümer des Prozesses, den Befehl, der ihn gestartet hat, seine PID und PPID anzeigen. und der Prozentsatz des derzeit verwendeten Speichers – in dieser Reihenfolge und absteigend nach Speicherverbrauch sortiert (beachten Sie, dass ps standardmäßig sortiert ist nach PID).
# ps -eo user, comm, pid, ppid,%mem --sort -%mem.
Wobei das Minuszeichen vor %mem eine absteigende Sortierung anzeigt.
Wenn ein Prozess aus irgendeinem Grund zu viel Systemressourcen beansprucht und wahrscheinlich das Gesamtsystem gefährdet Funktionalität des Systems möchten Sie die Ausführung stoppen oder anhalten, indem Sie eines der folgenden Signale mit das töten Programm dazu. Andere Gründe, warum Sie dies in Betracht ziehen sollten, sind, wenn Sie einen Prozess im Vordergrund gestartet haben, ihn aber anhalten und im Hintergrund fortsetzen möchten.
Signalname | Signalnummer | Beschreibung |
SIGTERM | 15 | Beenden Sie den Prozess anmutig. |
UNTERSCHRIFT | 2 | Dies ist das Signal, das gesendet wird, wenn wir Strg + C drücken. Es zielt darauf ab, den Prozess zu unterbrechen, aber der Prozess kann ihn ignorieren. |
SIGKILL | 9 | Dieses Signal unterbricht auch den Prozess, aber bedingungslos (mit Vorsicht verwenden!), da ein Prozess es nicht ignorieren kann. |
SEUFZEND | 1 | Kurz für „Hang UP“, dieses Signal weist Daemons an, ihre Konfigurationsdatei erneut zu lesen, ohne den Prozess tatsächlich zu stoppen. |
SIGTSTP | 20 | Unterbrechen Sie die Ausführung und warten Sie, um fortzufahren. Dies ist das Signal, das gesendet wird, wenn wir die Tastenkombination Strg + Z eingeben. |
SIGSTOP | 19 | Der Prozess wird angehalten und bekommt keine Aufmerksamkeit mehr von den CPU-Zyklen, bis er neu gestartet wird. |
SIGCONT | 18 | Dieses Signal weist den Prozess an, die Ausführung fortzusetzen, nachdem er entweder SIGTSTP oder SIGSTOP empfangen hat. Dies ist das Signal, das von der Shell gesendet wird, wenn wir die Befehle fg oder bg verwenden. |
Wenn die normale Ausführung eines bestimmten Prozesses impliziert, dass keine Ausgabe an den Bildschirm gesendet wird, während er ausgeführt wird, können Sie es entweder im Hintergrund starten (ein kaufmännisches Und am Ende des Befehl).
Vorgangsname &
oder,
Sobald es im Vordergrund läuft, pausieren Sie es und senden Sie es mit. in den Hintergrund
Strg + Z.
# kill -18 PID.
Bitte beachten Sie, dass jede Distribution Tools zum ordnungsgemäßen Stoppen / Starten / Neustarten / Neuladen allgemeiner Dienste bereitstellt, wie z Service in SysV-basierten Systemen oder systemctl in systembasierten Systemen.
Wenn ein Prozess nicht auf diese Dienstprogramme reagiert, können Sie ihn gewaltsam beenden, indem Sie ihm das SIGKILL-Signal senden.
# ps -ef | grep Apache. # töten -9 3821.
Wenn es einen Ausfall im System gab (sei es ein Stromausfall, ein Hardwarefehler, eine geplante oder ungeplante Unterbrechung eines Prozesses oder eine Anomalie überhaupt), meldet sich das System an /var/log sind Ihre besten Freunde, um festzustellen, was passiert ist oder was die Probleme, mit denen Sie konfrontiert sind, verursachen könnte.
# cd /var/log.
Einige der Artikel in /var/log sind normale Textdateien, andere sind Verzeichnisse und wieder andere sind komprimierte Dateien rotierter (historischer) Protokolle. Sie werden diejenigen mit dem Wort Fehler im Namen überprüfen wollen, aber es kann auch nützlich sein, den Rest zu überprüfen.
Stellen Sie sich dieses Szenario vor. Ihre LAN-Clients können nicht auf Netzwerkdruckern drucken. Der erste Schritt zur Behebung dieser Situation ist: /var/log/cups Verzeichnis und sehen Sie, was sich darin befindet.
Du kannst den... benutzen Schwanz Befehl, um die letzten 10 Zeilen der Datei error_log anzuzeigen, oder tail -f error_log für eine Echtzeitansicht des Protokolls.
# cd /var/log/cups. # ls. # tail error_log.
Der obige Screenshot enthält einige hilfreiche Informationen, um zu verstehen, was Ihr Problem verursachen könnte. Beachten Sie, dass das Befolgen der Schritte oder das Korrigieren der Fehlfunktion des Prozesses das Gesamtproblem möglicherweise immer noch nicht lösen kann, aber wenn Sie sich daran gewöhnt haben Von Anfang an, um die Protokolle jedes Mal zu überprüfen, wenn ein Problem auftritt (sei es ein lokales oder ein Netzwerkproblem), sind Sie auf jeden Fall richtig nachverfolgen.
Obwohl die Fehlerbehebung bei Hardwarefehlern schwierig sein kann, sollten Sie die dmesg und Nachrichtenprotokolle und grep für verwandte Wörter zu einem vermutlich fehlerhaften Hardwareteil.
Das Bild unten stammt von /var/log/messages nachdem Sie mit dem folgenden Befehl nach dem Wortfehler gesucht haben:
# weniger /var/log/messages | grep -i Fehler.
Wir sehen, dass wir ein Problem mit zwei Speichergeräten haben: /dev/sdb und /dev/sdc, die wiederum ein Problem mit dem RAID-Array verursachen.
In diesem Artikel haben wir einige der Tools untersucht, die Ihnen helfen können, den Gesamtstatus Ihres Systems immer im Blick zu haben. Darüber hinaus müssen Sie sicherstellen, dass Ihr Betriebssystem und die installierten Pakete auf die neuesten stabilen Versionen aktualisiert werden. Und vergessen Sie nie, die Protokolle zu überprüfen! Dann sind Sie auf dem richtigen Weg, um die endgültige Lösung für alle Probleme zu finden.
Fühlen Sie sich frei, Ihre Kommentare, Vorschläge oder Fragen – falls Sie welche haben – über das untenstehende Formular zu hinterlassen.