Terminal pogryzł człowieka: procinfo
Gdyby tylko ludzkość wiedziała, jakie ciekawe rzeczy można znaleźć w katalogu /proc… Powstałyby na jego temat z pewnością niejeden poemat. Ale na razie powstają takie programy jak procinfo, które w zgrabny sposób przedstawiają nam niektóre informacje zapisane w wymienionym miejscu.
Wokół /proc wyrosła już niejedna legenda. To najprawdopodobniej najciekawszy katalog w Linuksie. Za jego pośrednictwem przemawia do nas kernel, który zapisuje do znajdujących się tam plików informacje na temat parametrów pracy systemu oraz uruchomionych procesów. Katalog /proc przechowywany jest w pamięci a nie na dysku.
Niemniej wydobywanie tych danych za pomocą poleceń cat, ls i podobnych jest w pewnych momentach nieco uciążliwe. Szczególnie jeżeli zamierzamy monitorować na bieżąco co w kernelu piszczy. Oczywiście dla chcącego nic trudnego, ale mamy przecież XXI wiek.
Procinfo to program znajdujący się w podstawowych repozytoriach większości dystrybucji. Wszystko co potrafi, to przedstawić nam zbiorcze informacje o pamięci, obciążeniu systemu, czasie pracy, dyskach, przerwaniach, interfejsach sieciowych. Nie obca jest mu też kwestia ile czasu kernel i na poświecił.
Dla przeciętnego użytkownika powyższe informacje mogą się wydać bardzo enigmatyczne i hermetyczne w swojej treści. Niemniej sprawniejsze diagnozowanie problemów lub zachowań naszego systemu z pewnością będzie łatwiejsze z wykorzystaniem odpowiedniego narzędzia.
#$ procinfo -Hr Memory: Total Used Free Buffers RAM: 7.78GiB 6.52GiB 1.25GiB 259.75MiB -/+ buffers/cache 3.01GiB 4.26GiB Swap: 4.10GiB 0.00B 4.10GiB Bootup: Sun Jun 3 23:09:32 2018 Load average: 0.10 0.11 0.20 1/740 9821 user : 11:56:30.41 24.4% page in : 1854133 nice : 00:00:28.71 0.0% page out: 11241660 system: 04:14:16.19 8.7% page act: 15825446 IOwait: 00:03:06.65 0.1% page dea: 0 hw irq: 00:00:00.00 0.0% page flt: 149205284 sw irq: 00:21:01.94 0.7% swap in : 0 idle : 1d 08:19:36.52 66.1% swap out: 0 uptime: 1d 13:36:55.05 context : 520384653 irq 0: 17157435 2-edge timer irq 24: 9308628 2-edge hpet2 irq 1: 56439 1-edge i8042 irq 25: 9855846 3-edge hpet3 irq 8: 1 8-edge rtc0 irq 26: 9184715 4-edge hpet4 irq 9: 18693 9-fasteoi acpi irq 27: 9108507 5-edge hpet5 irq 10: 1659669 10-edge ite-cir irq 28: 8957167 6-edge hpet6 irq 12: 72433 12-edge i8042 irq 29: 528096 512000-edge ahci[ irq 16: 423 16-fasteoi ehci_h irq 30: 4701551 1048576-edge rade irq 17: 9009301 17-fasteoi brcmsm irq 31: 128 442368-edge snd_h irq 19: 11 19-fasteoi firewi irq 32: 9 1050624-edge snd_ irq 23: 835888 23-fasteoi ehci_h irq 33: 3 5767168-edge enp1 sda 51329r 314810w enp11s0 TX 0.00B RX 0.00B wlp5s0b1 TX 361.95MiB RX 6.36GiB lo TX 2.44MiB RX 2.44MiB
Rzut oka wystarczy by na podstawie powyższego określić, jak stoimy z pamięcią (z uwzględnieniem wolnej pamięci przekazanej dla pamięci podręcznej i buforów).
Kolejno mamy czas pracy całego systemu, średnie obciążenie i PID ostatnio aktywnego procesu.
Następne kolumny pozwolą rozeznać się ile czasu pracy procesora zajęły procesy użytkownika a ile systemowe. Ile tego czasu „poszło” na obsługę przerwać sw/hw. Lub ile też czasu procesor się nudził.
Poniżej widnieje tabela przerwań i ilości ich wywołań.
Następne są informacje o ilości operacji IO (odczyt, zapis) na dyskach.
Pakiety wysłane i odebrane na poszczególnych interfejsach nie wymagają raczej komentarza.
Program posiada kilka przełączników które mogą poprawić czytelność całości. Parametr -nNumer uruchomi program w trybie podglądu na żywo. Podanie -d włączy wyświetlanie zużycia zasobów w podanej jednostce czasu (-n), -D zrobi to samo z wyłączeniem pamięci dla której wyświetlone zostaną wartości zbiorcze. Jeżeli chcemy wartości mieć zaprezentowane w MiB/GiB to należy pamiętać o -H. Sekundowe zliczanie zapewnie -S (niezależnie od odświeżania ustawionego przez -n).
Aby zainstalować program wystarczy (Ubuntu/Mint/Debian):
sudo apt-get install procinfo
W Arch Linuksie i Manjaro:
sudo pacman -Suy procinfo-ng