Heim >php教程 >PHP开发 >Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

高洛峰
高洛峰Original
2016-11-08 10:25:361650Durchsuche

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.

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linuxps: 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

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linuxrrqm/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)

In Beim Linux-System überprüfen wir die Speichernutzung. Verwenden Sie den kostenlosen Befehl, um die Informationen in der ersten Zeile von

anzuzeigen (wir können sie uns auf Betriebssystemebene vorstellen) Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

total : Gesamtgröße des physischen Speichers

verwendet: die Größe, die zugewiesen wurde

frei: die Größe, die nicht zugewiesen wurde

gemeinsam genutzt: die Größe des gemeinsam genutzten Speichers Speicher, der hauptsächlich für die IPC-Kommunikation verwendet wird

Puffer: wird zum Puffern von Blockgeräten verwendet

gespeichert: wird zum Puffern von Dateiinhalten verwendet, dh zum Zwischenspeichern

„Cache“ bedeutet Teilen Ein Bereich im Speicher zwischen dem Prozess und dem Festplattenpuffer. Der Prozess schreibt Daten in den Cache. Wenn die Daten gelesen werden müssen, werden sie direkt aus dem „Highway“-Cache und nicht aus der „Dirt Road“-Festplatte gelesen Festplatte, was die Leistung erheblich beschleunigt.

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.

Die dritte Informationszeile (wir können sie uns von der Anwendungsebene aus vorstellen)

Der -/buffers/cache ist hier in zwei Teile unterteilt: -buffers/cache und buffers/cache

-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.

used=( buffers/cached) (-buffers/cached)

Also aus der Anwendung Ebene, verfügbarer Speicher = zwischengespeicherte freie Speicherpuffer

Wir können die detaillierten Informationen auf folgende Weise überprüfen.

~ cat /proc/meminfo

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 kB

Inaktiv(Datei):   117136 kB

Unvermeidbar:           0 kB

Gesperrt:               0 kB

SwapTotal:            0 kB

SwapFree:              0 kB

Dirty:              92 kB

Writeback:             0 kB

AnonPages:        83504 kB

Zugeordnet:            17500 kB

Shmem:               172 kB

Slab:              46696 kB

SReclaimable:      28652 kB

SUnreclaim:        18044 kB

KernelStack:        1744 kB

PageTables:         2636 kB

NFS_Unstable:          0 kB

Bounce:                0 kB

WritebackTmp:          0 kB

CommitLimit:      510064 kB

Committed_AS:                  304 kB

Hardwarebeschädigt:     0 kB

AnonHugePages:     36864 kB

HugePages_Total:       0

HugePages_Free:        0

HugePages_Rsvd:        0

HugePages_Surp:        0

Riesige Seitengröße:                                                    )

   首先我们使用dstat命令来查看下我们的CPU情况,他能够实时的输出我们的信息,

每2秒输出一次,一共输出10次

cpu:hiq、siq分别为硬中断和软中断次数

system:int、csw分别为系统的中断次数(interrupt)和上下文切换次数(Kontextwechsel )。


-c:表示只显示我们的CPU信息

-m:表示只显示我们的内存信息

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux- p:表示只显示我们的进程信息

-n:表示只显示我们的网络信息

我们想以什么为什么优先顺序查看,可以在后面加下列参数


mpstat



%user     在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程  (usr/total)*100

%nice    在internal时间段里,nice值为负进的CPU时间(%)   (nice/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)Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

 . 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.

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

Die Zeit der Der Befehl netstat ist offensichtlich viel langsamer als der Befehl ss

Befehl netstat

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

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

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

Wir kann den Statusstatus anzeigen. Anzeigen


ss-Befehl

Die Netzwerkverbindungsstatistik des aktuellen Servers anzeigen: ss -s

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

Die Verwendung anderer SS ist die gleiche wie die von netstat


5. Netzwerk (iftop)

Verwenden Sie iftop -i eth0

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

Verwenden Sie Strg c zum Beenden und beenden Sie die Anzeige

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

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

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

6. Prozessinformationen (ps/pstree, top, pidstat)

Wir verwenden pstree, um unseren Prozessbaum anzuzeigen. Alle Prozesse sind untergeordnete Prozesse des Init-Prozesses

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

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

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

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

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

Umfassende Anzeige (vmstat, top, sar)

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

Wir sehen Speicher, Tauschen Sie Partition, E/A, CPU und die Anzahl der Prozesskontextwechsel aus

oberer Befehl

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

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

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

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

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

oberer Befehl zeigt

Lokalisierung von Leistungsanomalien und Leistungsüberwachung unter Linux

an
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn