Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So überprüfen Sie die Systemlast unter Linux

So überprüfen Sie die Systemlast unter Linux

藏色散人
藏色散人nach vorne
2019-08-02 17:27:296243Durchsuche

So überprüfen Sie die Systemlast unter Linux

Der Auslastungsstatus des Betriebssystems spiegelt die Ressourcennutzung der Anwendung wider, anhand derer die Engpässe der Anwendungsoptimierung ermittelt werden können.

Die durchschnittliche Systemlast bezieht sich auf die durchschnittliche Anzahl laufender oder nicht unterbrechbarer Prozesse.

läuft, was bedeutet, dass es sich um einen laufenden Zustand handelt, die CPU belegt, oder um einen Bereitschaftszustand, der auf die CPU-Planung wartet.

Nicht stören, Blockierung anzeigen, auf E/A warten

Empfohlen: [Linux-Video-Tutorial]

Im Linux-System müssen Sie dies tun Überprüfen Sie die Auslastung. Verwenden Sie im Allgemeinen den Uptime-Befehl (w-Befehl und Top-Befehl sind ebenfalls akzeptabel) *

1. Uptime-Befehl

$ uptime\
16:33:56 up 69 days,  5:10,  1 user,  load average: 0.14, 0.24, 0.29

Die obigen Informationen werden wie folgt analysiert:

16:33:56: Aktuelle Uhrzeit

bis 69 Tage, 5:10: Das System läuft seit 69 Tagen, 5 Stunden und 10 Minuten

1 Benutzer: Derzeit gibt es 1 am System angemeldeter Benutzer. Auslastungsdurchschnitt: 0,14, 0,24, 0,29: Die durchschnittliche Auslastung des Systems in den letzten 1 Minute, 5 Minuten und 15 Minuten.

Auslastungsdurchschnitt: 0,14, 0,24, 0,29: Der Durchschnitt Auslastung des Systems in den letzten 1 Minute, 5 Minuten und 15 Minuten

Durchschnittliche Auslastungsanalyse

Anzahl der logischen CPU-Kerne anzeigen:

$ grep 'model name' /proc/cpuinfo | wc -l\
1\

Das laufende Ergebnis wird angezeigt dass es 1 logischen CPU-Kern gibt. Nehmen wir als Beispiel 1 CPU-Kern und gehen davon aus, dass die CPU bis zu 100 Prozesse pro Minute verarbeitet –

load=0, kein Prozess erfordert CPU

load=0,5, die CPU verarbeitet 50 Prozesse

load=1, die CPU hat 100 Prozesse verarbeitet. Zu diesem Zeitpunkt ist die CPU voll, aber das System kann immer noch reibungslos arbeiten

load=1,5, die CPU hat 100 Prozesse verarbeitet. und es sind noch 50 Prozesse übrig, die auf die CPU-Verarbeitung warten.

Damit das System reibungslos läuft, sollte der Lastwert 1,0 nicht überschreiten dass kein Prozess warten muss und alle Prozesse zum ersten Mal in kürzester Zeit verarbeitet werden können.

Offensichtlich ist 1,0 ein Schlüsselwert. Wenn dieser Wert überschritten wird, ist das System nicht in optimalem Zustand. Im Allgemeinen ist 0,7 ein idealer Wert.

Darüber hinaus hängt der Gesundheitszustand des Lastwerts auch von der Anzahl der CPU-Kerne im System ab. Wenn die Anzahl der CPU-Kerne 2 beträgt, sollte der Gesundheitszustand des Lastwerts 2 sein. und so weiter.

Der durchschnittliche Belastungswert innerhalb von 15 Minuten wird im Allgemeinen zur Bewertung der Belastung des Systems verwendet.

2. w-Befehl

$ w\
 17:47:40 up 69 days,  6:24,  1 user,  load average: 0.46, 0.26, 0.25\
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT\
lvinkim  pts/0    14.18.144.2      15:55    0.00s  0.02s  0.00s w

Zeile 1: Wie Uptime eins.

Unter Zeile 2 die Liste der aktuell angemeldeten Benutzer.

3. Top-Befehl

$ top\
top - 17:51:23 up 69 days,  6:28,  1 user,  load average: 0.31, 0.30, 0.26\
Tasks:  99 total,   1 running,  98 sleeping,   0 stopped,   0 zombie\
Cpu(s):  2.3%us,  0.2%sy,  0.0%ni, 97.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st\
Mem:   1922244k total,  1737480k used,   184764k free,   208576k buffers\
Swap:        0k total,        0k used,        0k free,   466732k cached\
\
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                \
    1 root      20   0 19232 1004  708 S  0.0  0.1   0:01.17 init                                                                    \
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd                                                                \
...

Zeile 1: Wie Uptime eins.

Zeile 2: Informationen zur Prozessnummer.

Aufgaben: 99 insgesamt: Es gibt insgesamt 99 Prozesse

1 läuft: 1 Prozess belegt die CPU

98 schlafend: 98 ruhende Prozesse

0 gestoppt: 0 gestoppte Prozesse

0 Zombie: 0 Zombie-Prozesse

Zeile 3: CPU-Auslastung

uns (Benutzer): belegt durch nicht nette Benutzerprozesse CPU-Verhältnis

sy (System): Das Verhältnis des Kernels und der Kernelprozesse, die die CPU belegen

ni (nice): Das Verhältnis der CPU, die von Prozessen belegt wird, deren Prioritäten im Benutzerprozessraum geändert wurden

id (idle): CPU-Leerlaufverhältnis. Wenn das System langsam ist und dieser Wert hoch ist, bedeutet dies, dass der Grund für das langsame System nicht in einer hohen CPU-Auslastung liegt

wa (iowait): Das Zeitverhältnis der CPU, die auf die Ausführung von E/A-Vorgängen wartet. Dieser Indikator kann zur Behebung von Festplatten-E/A-Problemen verwendet werden, normalerweise in Kombination mit wa und id, um

hi (Hardware-IRQ) zu bestimmen: das Verhältnis von die Zeit, die die CPU für die Verarbeitung von Hardware-Interrupts benötigt

si (Software-Interrupts): Das Verhältnis der Zeit, die die CPU für die Verarbeitung von Software-Interrupts benötigt

st (steal): Die verstrichene Zeit, das Verhältnis von CPU-Zeit, die von anderen Aufgaben in der virtuellen Maschine belegt wird

Einige Situationen, die Aufmerksamkeit erfordern:

Der Benutzerprozess hat einen hohen Anteil und der E/A-Vorgang ist niedrig: Dies bedeutet, dass der Grund dafür ist Das langsame System ist, dass der Prozess viel CPU beansprucht. Dies geht normalerweise mit einer niedrigen Leerlaufquote einher, was bedeutet, dass die CPU nur sehr wenig Leerlaufzeit hat.

I/O operation wa ist niedrig und Leerlaufverhältnis id ist hoch: Die Möglichkeit eines CPU-Ressourcenengpasses kann ausgeschlossen werden.

I/O-Vorgang war hoch: Das bedeutet, dass I/O viel CPU-Zeit in Anspruch nimmt. Sie müssen die Nutzung des Swap-Speicherplatzes auf der Festplatte überprüfen Wenn der Speicher erschöpft ist, wird die Verwendung von Swap-Speicher erheblich beeinträchtigt. Bei Servern mit höheren Leistungsanforderungen wird daher generell empfohlen, den Swap-Speicherplatz zu deaktivieren. Wenn andererseits genügend Speicher vorhanden ist, wa jedoch hoch ist, müssen Sie prüfen, welcher Prozess viele E/A-Ressourcen beansprucht.

Weitere Belastungssituationen können in der Praxis flexibel beurteilt werden.

4. iostat-Befehl

Der iostat-Befehl kann die IO-Nutzung der Systempartition überprüfen

$ iostat \
Linux 2.6.32-573.22.1.el6.x86_64 (sgs02)   01/20/2017     _x86_64_   (1 CPU)\
\
avg-cpu:  %user   %nice %system %iowait  %steal   %idle\
           2.29    0.00    0.25    0.04    0.00   97.41\
\
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn\
vda               1.15         3.48        21.88   21016084  131997520

Einige bemerkenswerte IO-Indikatoren:

Gerät: Festplattenname

tps: E/A-Übertragungsanfragen pro Sekunde

Blk_read/s: Wie viele Blöcke pro Sekunde gelesen werden, finden Sie im Befehl tune2fs

Blk_wrtn/s: Wie viele Blöcke werden pro Sekunde geschrieben

Blk_read: Wie viele Blöcke werden insgesamt gelesen

–Blk_wrtn: Wie viele Blöcke werden insgesamt geschrieben

5. iotop-Befehl

iotop Der Befehl ähnelt dem top-Befehl, zeigt jedoch den E/A-Status jedes Prozesses an, was zum Auffinden von Prozessen mit umfangreichen E/A-Vorgängen nützlich ist.

# iotop\
Total DISK READ: 0.00 B/s | Total DISK WRITE: 774.52 K/s\
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                \
  272 be/3 root        0.00 B/s    0.00 B/s  0.00 %  4.86 % [jbd2/vda1-8]\
 9072 be/4 mysql       0.00 B/s  268.71 K/s  0.00 %  0.00 % mysqld\
 5058 be/4 lvinkim     0.00 B/s    3.95 K/s  0.00 %  0.00 % php-fpm: pool www\
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init

Sie können die Lese- und Schreibintensität verschiedener Aufgaben sehen.

6. Sysstat-Tool

很多时候当检测到或者知道历史的高负载状况时,可能需要回放历史监控数据,这时 sar 命令就派上用场了,sar 命令同样来自 sysstat 工具包,可以记录系统的 CPU 负载、I/O 状况和内存使用记录,便于历史数据的回放。

sysstat 的配置文件在 /etc/sysconfig/sysstat 文件,历史日志的存放位置为 /var/log/sa\

统计信息都是每 10 分钟记录一次,每天的 23:59 会分割统计文件,这些操作的频率都在 /etc/cron.d/sysstat 文件配置。\

七、sar 命令

使用 sar 命令查看当天 CPU 使用:

$ sar\
Linux 2.6.32-431.23.3.el6.x86_64 (szs01)   01/20/2017     _x86_64_   (1 CPU)\
\
10:50:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle\
11:00:01 AM     all      0.45      0.00      0.22      0.40      0.00     98.93\
Average:        all      0.45      0.00      0.22      0.40      0.00     98.93

使用 sar 命令查看当天内存使用:

$ sar -r\
Linux 2.6.32-431.23.3.el6.x86_64 (szs01)   01/20/2017     _x86_64_   (1 CPU)\
\
10:50:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit\
11:00:01 AM     41292    459180     91.75     44072    164620    822392    164.32\
Average:        41292    459180     91.75     44072    164620    822392    164.32

使用 sar 命令查看当天 IO 统计记录:

$ sar -b\
Linux 2.6.32-431.23.3.el6.x86_64 (szs01)   01/20/2017     _x86_64_   (1 CPU)\
\
10:50:01 AM       tps      rtps      wtps   bread/s   bwrtn/s\
11:00:01 AM      3.31      2.14      1.17     37.18     16.84\
Average:         3.31      2.14      1.17     37.18     16.84

更多 sar 用法,请 man sar 。

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie die Systemlast unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen