mpstat to narzędzie z pakietu sysstat, które pokazuje wykorzystanie procesora z rozbiciem na poszczególne rdzenie. Zamiast jednej uśrednionej liczby (jak w uptime) dostajesz tabelę: ile czasu każdy rdzeń spędza w trybie użytkownika, systemowym, w oczekiwaniu na dysk (iowait) czy na obsłudze przerwań. To pierwsze narzędzie po które sięgasz, gdy serwer „się dławi”, a chcesz wiedzieć, czy obciążenie rozkłada się równo, czy jeden rdzeń haruje, a reszta się nudzi.
Składnia i najważniejsze opcje
Podstawowa składnia: mpstat [opcje] [interwał [liczba]]
-P { lista | ALL }— wybór rdzeni;-P ALLpokazuje każdy rdzeń osobno (np.-P 0,2tylko rdzeń 0 i 2).-u— raport wykorzystania CPU (tryb domyślny, kolumny %usr, %sys, %iowait, %idle).-I { SUM | CPU | SCPU | ALL }— statystyki przerwań na sekundę, z podziałem na rdzenie.-N { lista | ALL }— statystyki w rozbiciu na węzły NUMA.-A— wszystko naraz, równoważne-n -u -I ALLoraz-N ALL -P ALL.-o JSON— wynik w formacie JSON (wygodne do skryptów i parsowania).-V— wersja narzędzia.
Przykłady użycia
mpstat— jednorazowy, uśredniony raport dla wszystkich CPU od startu systemu. Szybki rzut oka.mpstat -P ALL 2 5— co 2 sekundy, 5 razy, osobno dla każdego rdzenia. Klasyk do łapania nierównomiernego obciążenia.mpstat -P ALL 1— odświeżanie co sekundę bez końca (przerywaszCtrl+C). Dobre do obserwacji na żywo podczas testu.mpstat -I CPU 1 3— pokazuje, ile przerwań na sekundę dostaje każdy rdzeń; przydatne przy podejrzeniu, że karta sieciowa „bombarduje” jeden CPU.mpstat -P ALL -o JSON 1 3— ten sam pomiar, ale w JSON-ie do dalszej obróbki w skrypcie.
Częste błędy i pułapki
Brak komendy? Na czystym systemie mpstat nie jest zainstalowany — doinstaluj pakiet sysstat (Debian/Ubuntu: apt install sysstat, RHEL/Fedora: dnf install sysstat).
Pierwszy pomiar kłamie. Wywołanie bez interwału pokazuje średnią od bootu, a nie stan „teraz”. Jeśli chcesz aktualne dane, podaj interwał (np. mpstat 2 3) i patrz na kolejne odczyty, nie na pierwszy.
To głównie Linux. mpstat czyta z /proc, więc na macOS czy BSD go nie znajdziesz — tam masz top albo iostat.
Wysoki %iowait to nie problem CPU. Procesor czeka na dysk lub sieć, nie liczy — szukaj winowajcy w I/O, nie w obciążeniu rdzeni.
Powiązane komendy: top, htop, vmstat, iostat, pidstat, sar.