Zrozum średnie obciążenia Linux i monitorowanie wydajności Linux

Zrozum średnie obciążenia Linux i monitorowanie wydajności Linux

W tym artykule wyjaśnimy jedno z krytycznych zadań administracyjnych systemu Linux - monitorowanie wydajności w odniesieniu do średnich obciążenia systemowego/procesora.

Zanim przeprowadzimy się dalej, zrozummy te dwa ważne frazy we wszystkich systemach podobnych do UNIX:

  • Obciążenie systemowe/obciążenie procesora - jest pomiarem procesora w stosunku do lub niedostatecznego wykorzystania w systemie Linux; liczba procesów, które są wykonywane przez procesor lub w stanie oczekiwania.
  • Średnie obciążenie - to średnie obciążenie systemowe obliczone w danym okresie 1, 5 i 15 minut.

W Linuksie technicznie uważa się, że średnia obciążenia jest średnią uruchamiającą procesy w kolejce wykonania (jądro) oznaczona jako działająca lub nieprzerwana.

Zauważ, że:

  • Wszystkie, jeśli nie większość systemów zasilanych przez Linux lub inne systemy podobne do UNIX, prawdopodobnie wyświetli średnie wartości obciążenia gdzieś dla użytkownika.
  • Wręcz jałowy system Linux może mieć średnią obciążenia zerową, z wyłączeniem procesu biegu jałowego.
  • Prawie wszystkie systemy podobne do UNIX liczą tylko procesy w stanie działającym lub oczekiwanym. Ale tak nie jest w przypadku Linuksa, obejmuje procesy w nieprzerwanych stanach snu; Osoby czekające na inne zasoby systemowe, takie jak I/O dysku itp.

Jak monitorować średnią obciążenia systemu Linux

Istnieje wiele sposobów monitorowania średniej obciążenia systemu, w tym czas pracy, który pokazuje, jak długo działa system, liczba użytkowników wraz ze średnimi obciążenia:

$ Uptime 07:13:53 w górę 8 dni, 19 min, 1 użytkownik, średnia obciążenia: 1.98, 2.15, 2.21 

Liczby są odczytywane od lewej do prawej, a powyższe wyjście oznacza, że:

  • Załaduj średnią w ciągu ostatniego 1 minuta jest 1.98
  • Załaduj średnią w ciągu ostatniego 5 minuty są 2.15
  • Załaduj średnią w ciągu ostatniego 15 minuty są 2.21

Średnie wysokiego obciążenia sugerują, że system jest przeciążony; Wiele procesów czeka na czas procesora.

Odkrymy to w następnej sekcji w odniesieniu do liczby rdzeni procesora. Ponadto możemy również używać innych dobrze znanych narzędzi, takich jak top i spojrzenia, które wyświetlają stan działającego systemu Linux w czasie rzeczywistym oraz wiele innych narzędzi:

Najlepsze polecenie

$ top 
Wyświetlanie procesów Linux
TOP - 12:51:42 w górę 2:11, 1 Użytkownik, średnia obciążenia: 1.22, 1.12, 1.26 zadań: 243 ogółem, 1 bieganie, 242 spanie, 0 zatrzymane, 0 zombie %CPU: 17.4 US, 2.9 SY, 0.3 Ni, 74.8 id, 4.6 wa, 0.0 Cześć, 0.0 Si, 0.0 ST KIB MEM: 8069036 Razem, 388060 DARMOWY, 4381184 Używany, 3299792 Buff/Cache KIB Swap: 3906556 Razem, 3901876 Bezpłatnie, 4680 Użyte. 2807464 Dostępność MEM PID Użytkownik Pr ni virt res sh %CPU %mem czas+ polecenie 6265 TecMint 20 0 1244348 170680 83616 S 13.3 2.1 6:47.72 Zestaw słuchawkowy 2301 Tecmint 9-11 640332 13344 9932 S 6.7 0.2 2:18.96 PulseAudio 2459 Tecmint 20 0 1707692 315628 62992 S 6.7 3.9 6:55.45 Cynamon 2957 Tecmint 20 0 2644644 ​​1.035G 137968 s 6.7 13.5 50:11.13 Firefox 3208 Tecmint 20 0 507060 52136 33152 S 6.7 0.6 0:04.34 GNOM-AMinal- 3272 TecMint 20 0 1521380 391324 178348 S 6.7 4.8 6:21.01 Chrome 6220 Tecmint 20 0 1595392 106964 76836 S 6.7 1.3 3:31.94 zestaw słuchawkowy 1 root 20 0 120056 6204 3964 s 0.0 0.1 0:01.83 Systemd 2 root 20 0 0 0 0 s 0.0 0.0 0:00.00 KTHREADD 3 root 20 0 0 0 0 s 0.0 0.0 0:00.10 Ksoftirqd/0 5 root 0 -20 0 0 0 s 0.0 0.0 0:00.00 Kworker/0: 0h… 

Narzędzie do spojrzeń

$ Spojrzenie 
Rzuty - narzędzie do monitorowania systemu Linux
Tecmint (LinuxMint 18 64bit / Linux 4.4.0-21-generalny) czas pracy: 2:16:06 CPU 16.4% Nice: 0.1% obciążenie 4-rdzeniowe MEM 60.5% aktywne: 4.90G Swap 0.1% Użytkownik: 10.2% IRQ: 0.0% 1 min: 1.20 ogółem: 7.70G nieaktywne: 2.07G Ogółem: 3.73G System: 3.4% Iowait: 2.7% 5 min: 1.16 używane: 4.66 g buforów: 242 m Użyto: 4.57m Idle: 83.6% kradzież: 0.0% 15 min: 1.24 Darmowe: 3.04G buforowany: 2.58G za darmo: 3.72G Network Rx/S Tx/S Zadania 253 (883 THR), 1 Uruchom, 252 SLP, 0 OTH Automatycznie posortowane według CPU_PERCENT, Flat View ENP1S0 525KB 31KB LO 2KB 2KB CPU% MEP% Virt PID User User Time+ Ior/S/S/S. Polecenie IOW/s WLP2S0 0B 0B 14.6 13.3 2.53G 1.03G 2957 TecMint 0 S 51:49.10 0 40K/USR/Lib/Firefox/Firefox 7.4 2.2 1.16G 176m 6265 Tecmint 0 S 7:08.18 0 0/usr/lib/zestaw słuchawkowy/zestaw słuchawkowy-Type = renderer-no-sandbox --Primordial-pipe-token = 879B36514C6BEDB183D3E4142774D1DF-LAN DYSK I/O R/S W/S 4.9 3.9 1.63G 310m 2459 Tecmint 0 R 7:12.18 0 0 Cynamon -Wprowadź Ram0 0 0 4.2 0.2 625m 13.0m 2301 Tecmint -11 S 2:29.72 0 0/usr/bin/pulsaudio --start--log-cel = syslog RAM1 0 0 4.2 1.3 1.52G 105m 6220 Tecmint 0 S 3:42.64 0 0/usr/lib/zestaw słuchawkowy/zestaw słuchawkowy RAM10 0 0 2.9 0.8 409m 66.7m 6240 Tecmint 0 S 2:40.44 0 0/usr/lib/zestaw słuchawkowy/zestaw słuchawkowy --Type = GPU-Process-No-Sandbox--Supports-Dual-Gpus = False--Gpu-Driver-Bug-Workarounds = 7,2 RAM11 0 0 2.9 1.8 531m 142m 1690 root 0 S 6:03.79 0 0/usr/lib/xorg/xorg: 0 -Audit 0 -Auth/var/lib/mdm/: 0.Xauth -Nolisten TCP VT8 RAM12 0 0 2.6 0.3 79.3m 23.8m 9651 TecMint 0 R 0:00.71 0 0/usr/bin/Python3/usr/bin/Grances RAM13 0 0 1.6 4.8 1.45G 382M 3272 Tecmint 0 S 6:25.30 0 4K/opt/Google/Chrome/Chrome… 

Średnie obciążenia pokazane przez te narzędzia są odczytane /proc/loadavg Plik, który możesz wyświetlić za pomocą polecenia CAT, jak poniżej:

$ cat /proc /loadavg 2.48 1.69 1.42 5/889 10570 

Aby monitorować średnie obciążenia w formacie wykresu, sprawdź: Ttyload - pokazuje kodowane kolorystyczne wykres średniej ładunku Linux w terminalu

Na komputerach stacjonarnych istnieją graficzne narzędzia interfejsu użytkownika, których możemy użyć do wyświetlania średnich obciążenia systemu.

Zrozumienie średniego obciążenia systemu w relacji liczba procesorów

Nie możemy wyjaśnić obciążenia systemowego lub wydajności systemu bez rzucania światła na wpływ liczby rdzeni procesora na wydajność.

Wieloprocesor vs Multi-Core

  • Wieloprocesor - W miejscu, w którym dwa lub więcej fizycznych procesorów jest zintegrowane z jednym systemem komputerowym.
  • Procesor wielordzeniowy - jest pojedynczym procesorem fizycznym, który ma co najmniej dwa lub więcej osobnych rdzeni (lub co możemy również nazywać jednostkami przetwarzania), które działają równolegle. Co oznacza, że ​​dwurdzeniowy ma 2 dwie jednostki przetwarzania, czterordzeniowy ma 4 jednostki przetwarzania i tak dalej.

Ponadto istnieje również technologia procesora, która została po raz pierwszy wprowadzona przez Intel w celu poprawy obliczeń równoległych, zwanej hiper wątkiem.

W Hyper Gwinting pojedynczy fizyczny rdzeń procesora pojawia się jako dwa logiczne rdzeń procesora do systemu operacyjnego (ale w rzeczywistości istnieje jeden fizyczny komponent sprzętowy).

Należy zauważyć, że pojedynczy rdzeń procesora może przeprowadzić tylko jedno zadanie na raz, dlatego technologie takie jak wiele procesorów/procesorów, wielordzeniowe procesory i hiper-threading zostały ożywione.

Z więcej niż jednym procesorem można wykonywać jednocześnie kilka programów. Współczesne procesory Intel używają kombinacji zarówno wielu rdzeni, jak i technologii hiper-tonfreading.

Aby znaleźć liczbę jednostek przetwarzania dostępnych w systemie, możemy użyć poleceń NPROC lub LSCPU w następujący sposób:

$ nproc 4 lub LSCPU 

Inny sposób znalezienia liczby jednostek przetwarzania za pomocą polecenia GREP, jak pokazano.

$ grep „nazwa modelu” /proc /cpuinfo | WC -L 4 

Teraz, aby dalej zrozumieć obciążenie systemu, weźmiemy kilka założeń. Powiedzmy, że poniżej mamy średnie obciążenia:

23:16:49 w górę 10:49, 5 użytkowników, średnia ładowanie: 1.00, 0.40, 3.35 
W jednym rdzeniowym systemie oznaczałoby to:
  • CPU był w pełni (100%) wykorzystywany średnio; 1 procesy działały na procesorze (1.00) w ciągu ostatnich 1 minuty.
  • CPU był bezczynny średnio o 60%; Żadne procesy nie czekały na czas procesora (0.40) W ciągu ostatnich 5 minut.
  • CPU został przeciążony średnio o 235%; 2.35 procesów czekało na czas procesora (3.35) w ciągu ostatnich 15 minut.
W systemie dwurdzeniowym oznaczałoby to:
  • Jeden procesor był średnio w 100% bezczynny, zastosowano jeden procesor; Żadne procesy nie czekały na czas procesora (1.00) w ciągu ostatnich 1 minuty.
  • Procesy były bezczynne średnio o 160%; Żadne procesy nie czekały na czas procesora. (0.40) W ciągu ostatnich 5 minut.
  • Procesy zostały przeciążone średnio o 135%; 1.35 procesów czekało na czas procesora. (3.35) w ciągu ostatnich 15 minut.

Może ci się spodobać również:

  1. 20 Narzędzia wiersza poleceń do monitorowania wydajności Linux - Część 1
  2. 13 Narzędzia do monitorowania wydajności Linux - część 2
  3. Narzędzie do monitorowania i analizy wydajności dla Linux
  4. NMON: Analizuj i monitoruj wydajność systemu Linux

Podsumowując, jeśli jesteś administratorem systemu, należy się martwić o wysokie średnie obciążenia. Gdy są wysokie, powyżej liczby rdzeni procesora, oznacza to wysokie zapotrzebowanie na procesory, a średnie niskie obciążenia poniżej liczby rdzeni procesora mówi nam, że procesory są niewykorzystane.