Einführung: Die meisten Dienste laufen unter Linux, aber es gibt immer noch viele Probleme. Lassen Sie uns nichts weiter besprechen als es mit E/A, Speicher, CPU und TCP zu tun hat Verbindungsnummer, Netzwerk, Prozess oder Thread. Die verwendeten Befehle sind iostat, vmstat, sar, mpstat, netstat, ss, iftop, free, pstree/ps, pidstat, top (Verfügbarkeit). Gehen wir tiefer 1. Festplatten-E/A (iostat)
Auf unserer Maschine sind viele Daten auf der Festplatte gespeichert. Wir lesen: Viele Daten müssen mit der Festplatte interagieren, aber die Festplatte ist auch eine Es handelt sich um ein langsames Gerät, das häufig blockiert wird. Daher ist die Überwachung der Festplatten-E/A sehr wichtig. Wir verwenden iostat zur Diagnose von Festplattenzuständen. Die verwendete Maschine ist der Tencent Cloud-Host.
ps: Die Anzahl der Übertragungen pro Sekunde des Geräts, die angibt, wie viele E/A-Anfragen pro Sekunde sind
Blk_read/s: Lesen vom Gerät pro Sekunde Menge der empfangenen Daten
Blk_wrtn/s: Menge der pro Sekunde auf das Gerät geschriebenen Daten
Blk_read: Gesamtmenge der gelesenen Daten
Blk_wrtn: Die Gesamtmenge der geschriebenen Daten
%user: stellt die vom Benutzermodusprozess verwendete CPU-Last dar
%nice: stellt die vom Prioritätsprozess verwendete CPU-Last dar
%system: Stellt die vom Kernel-Statusprozess verwendete CPU-Last dar
%iowait: Stellt die CPU-Last dar, wenn die CPU auf E/A wartet
%steal: Stellt die gestohlene CPU-Last dar , dies wird in der Virtualisierung verwendet
%idle wird in der Technologie verwendet: stellt die CPU-Last im Leerlauf dar
iostat verfügt auch über eine häufig verwendete Parameteroption -x, die erweiterte Informationen darstellt
rrqm/s: Wie viele Leseanfragen im Zusammenhang mit diesem Gerät pro Sekunde zusammengeführt werden (mehrere E/A-Zusammenführungsvorgänge)
wrqm/s: Wie viele Schreibvorgänge Anfragen, die sich auf dieses Gerät beziehen, werden pro Sekunde zusammengeführt
r/s: Die Anzahl der Leseanfragen, die pro Sekunde an das Gerät gesendet werden
w/s: Die Anzahl der Schreibvorgänge, die pro Sekunde an das Gerät gesendet werden Anzahl der Anfragen
rsec/s: Die Anzahl der pro Sekunde gelesenen Gerätesektoren
wsec/s: Die Anzahl der pro Sekunde geschriebenen Gerätesektoren
avgrq - sz: durchschnittliche Größe des Anforderungssektors
avgqu-sz: durchschnittliche Länge der Anforderungswarteschlange
await: durchschnittliche Verarbeitungszeit (Wartezeit) jeder E/A-Anforderung
r_await: Die Durchschnittliche Verarbeitungszeit jeder Lese-E/A-Anfrage
w_await: Die durchschnittliche Verarbeitungszeit jeder Schreib-E/A-Anfrage
svctm: Gibt die durchschnittliche E/A-Anfrage pro Zeit-/O-Vorgangsdienst an Zeit. Wenn der svctm-Wert und der Wartewert sehr nahe beieinander liegen, bedeutet dies, dass fast keine E/A-Wartezeit besteht. Wenn der Wartewert viel höher als der svctm-Wert ist, bedeutet dies, dass die E/A-Warteschlangenwartezeit zu lang ist 🎜>
%util: in Statistiken Wie viel Zeit wird insgesamt für die Verarbeitung von E/A-Vorgängen aufgewendet, d. h. der Prozentsatz der verbrauchten CPU. Das statistische Zeitintervall beträgt beispielsweise 1 Sekunde, dann verarbeitet das Gerät E/A für 0,65 Sekunden und ist 0,35 Sekunden lang im Leerlauf. Dann ist %util=0,65/1=65 % dieses Geräts. Wenn dieser Parameter 100 % beträgt, bedeutet dies im Allgemeinen, dass das Gerät nahezu voll ausgelastet ist (natürlich, wenn mehrere Festplatten vorhanden sind, auch wenn %util vorhanden ist). 100 %, aufgrund der Parallelitätsfähigkeit der Festplatte, sodass die Festplattennutzung nicht unbedingt den Engpass erreicht) 2. Speicher (frei)
anzuzeigen (wir können sie uns auf Betriebssystemebene vorstellen)
total : Gesamtgröße des physischen Speichers
gemeinsam genutzt: die Größe des gemeinsam genutzten Speichers Speicher, der hauptsächlich für die IPC-Kommunikation verwendet wird
Der Puffer hier speichert tatsächlich die Metadaten unserer Daten (einschließlich Verzeichnisname, Dateigröße, Dateispeicherblock, Änderungszeit, Berechtigungen usw.), während die Der Cache speichert die Dateien, die wir kürzlich gelesen haben.
-buffers/cache = used (erste Zeile)-buffers-cached ist eigentlich der „physische Speicher“, der vom aktuellen Programm „tatsächlich verwendet“ wird
buffers/cache = Puffer zwischengespeichert Bedeutung Es handelt sich um die Größe des Speichers, der dem System vorübergehend als „Puffer“ „verliehen“ wird.
MemTotal: 1020128 kB
MemFree: 670772 kB
Puffer: 97780 kB
Gespeichert: 80 kB
SwapCached: 0 kB
Aktiv: 164988 kB
Inaktiv: 117296 kB
Aktiv (anon): 83536 kB
Inaktiv (anon): 🎜 >
Aktiv (Datei): 81452 kBInaktiv(Datei): 117136 kBUnvermeidbar: 0 kBGesperrt: 0 kBSwapTotal: 0 kBSwapFree: 0 kBDirty: 92 kBWriteback: 0 kBAnonPages: 83504 kBZugeordnet: 17500 kBShmem: 172 kBSlab: 46696 kBSReclaimable: 28652 kBSUnreclaim: 18044 kBKernelStack: 1744 kBPageTables: 2636 kBNFS_Unstable: 0 kBBounce: 0 kBWritebackTmp: 0 kBCommitLimit: 510064 kBCommitted_AS: 304 kBHardwarebeschädigt: 0 kBAnonHugePages: 36864 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0HugePages_Surp: 0Riesige Seitengröße: ) 首先我们使用dstat命令来查看下我们的CPU情况,他能够实时的输出我们的信息,每2秒输出一次,一共输出10次
cpu:hiq、siq分别为硬中断和软中断次数system:int、csw分别为系统的中断次数(interrupt)和上下文切换次数(Kontextwechsel )。-m:表示只显示我们的内存信息
- p:表示只显示我们的进程信息
-n:表示只显示我们的网络信息
%user 在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程 (usr/total)*100
%sys 在internal时间段里,内核时间(%) (System/Gesamt)*100
%iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/gesamt)*100%irq 在internal时间段里,硬中断时间( %) (irq/total)*100
%soft 在internal时间段里,等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (Leerlauf/Gesamt)*100四,TCP连接数(ss,netstat)
. ss是Socket-Statistiken的缩写,顾名思义ss命令就是用来获取sockets的信息,他可以显示和netstat类似的内容,但是他比netstat更快更高效,而且显示更为详细的有关TCP连接信息。当我们的sockets连接数非常大的时候,无论是我们使用netstat命令还是在内核中查看连接数cat /proc/net/tcp的时候都会很缓慢。Der Grund, warum SS schnell ist, liegt darin, dass es tcp_diag im TCP-Protokoll verwendet. Es kann Informationen aus erster Hand im Linux-Kernel abrufen, was die Effizienz von SS gewährleistet.
Wir können einen Vergleich zwischen Netstat und SS anstellen.
Die Zeit der Der Befehl netstat ist offensichtlich viel langsamer als der Befehl ss
Befehl netstat
Wir können die Verbindungsstatusinformationen des Daemon-Prozesses im System sehen und überwachen Portnummer
-t: Zeigt eine TCP-Verbindung an
-u: Zeigt eine UDP-Verbindung an
-n: Zeigt die Anzeige von Informationen in Form von Zahlen an
- p: Zeigt die Anzeige der Überwachungsportnummer an
Zeigen Sie den Überwachungsstatus des Daemon-Prozesses im System an
Wir kann den Statusstatus anzeigen. Anzeigen
ss-Befehl
Die Netzwerkverbindungsstatistik des aktuellen Servers anzeigen: ss -s
Die Verwendung anderer SS ist die gleiche wie die von netstat
5. Netzwerk (iftop)
Verwenden Sie iftop -i eth0
Verwenden Sie Strg c zum Beenden und beenden Sie die Anzeige
Wir können den Parameter -i verwenden, um verschiedene Netzwerke zu überwachen Kartenverkehrsinformationen. In welcher Schnittstelle von iftop wir p drücken können, um die Portverkehrsinformationen anzuzeigen
6. Prozessinformationen (ps/pstree, top, pidstat)
Wir verwenden pstree, um unseren Prozessbaum anzuzeigen. Alle Prozesse sind untergeordnete Prozesse des Init-Prozesses
ps-Befehl
, um bestimmte Prozesse anzuzeigen. Wie den MySQL-Prozess können wir ps aux mysqld oder ps verwenden. Es gibt im Wesentlichen keinen Unterschied zwischen den beiden Methoden von elf mysqld, da Linux einige Ideen von Unix erbt, eine ist der Sys-v-Stil von Unix und die andere ist der BSD-Stil
Wir können seine Informationen im Detail sehen
pidstat-Befehl
Wir können pidstat verwenden, um die PID-Statusinformationen jedes einzelnen anzuzeigen Prozess und die von ihm belegten CPU-Informationen
Umfassende Anzeige (vmstat, top, sar)
Wir sehen Speicher, Tauschen Sie Partition, E/A, CPU und die Anzahl der Prozesskontextwechsel aus
oberer Befehl
In dieser Schnittstelle:
Drücken Sie m, um nach Speichernutzung zu sortieren
Drücken Sie P, um nach CPU-Auslastung zu sortieren
Drücken Sie M, um nach residenter Speichergröße zu sortieren
Drücken Sie k, um einen Prozess abzubrechen
sar-Befehl
Manchmal müssen wir zählen, wie lange unser Linux bereits gestartet ist. Um dies anzuzeigen, können wir den Befehl „uptime“ verwenden Informationen, oben kann auch
Betriebszeitbefehl
oberer Befehl zeigt
an