Blog

ops

Polecenia diagnostyczne Linux, do czego służą i jak czytać wynik

Opselis

Grafana, katalog dashboardów i źródeł danych

lscpu, vmstat, iostat, free, ss i journalctl. Co pokazuje każde polecenie, po co je odpalasz i jak odczytać CPU, steal time, dysk i nasłuchujące porty.

Diagnostyka hosta to zestaw poleceń, które pokazują CPU, pamięć, dysk, sieć i log usługi. Służą do odpowiedzi: czy aplikacja jest wolna przez procesor, swap, await dysku, steal hiperwizora, czy przez zapełniony worker PHP. Bez tego obrazu dokładasz RAM i zostajesz z tym samym objawem. Narzędzia są w GNU/Linux (procps, util-linux, iproute2, systemd). `iostat` jest w pakiecie sysstat.

Do czego służy każde polecenie

`lscpu` i `cat /proc/cpuinfo`: model, liczba rdzeni, zegar, flagi (szukasz `aes`). Po to, żeby wiedzieć, czy to EPYC / Xeon Gold, czy E5 z 2013 sprzedany jako 16 vCPU. `uptime`: load. Czytaj razem z liczbą CPU. Load 16 na 4 rdzeniach to kolejka. `vmstat 1 10`: kolumny r (run queue), b (blocked), si/so (swap), wa (iowait), st (steal). Steal powyżej kilku procent na VPS znaczy, że hiperwizor zabiera kwant. `free -h`: total, used, buff/cache, swap. Cache to nie brak RAM. Swap rosnący pod Magento w szczycie to sygnał do większej pamięci albo innego hosta. `iostat -x 1`: util i await per dysk. Util 100% i await w dziesiątkach ms kładzie bazę i indexer. `df -hT` i `df -i`: miejsce i inode. `ss -tulpn`: co nasłuchuje i na którym adresie. `journalctl -u php-fpm -S today`: restarty, OOM, timeout. `dmesg -T`: błędy dysku i NIC.

Jak działa odczyt

Większość liczb bierze się z `/proc`: stat, meminfo, diskstats. `vmstat` i `iostat` w trybie z interwałem 1 s pomijają średnią od bootu w pierwszej linijce. Patrz od drugiej. `ss` czyta tablicę gniazd jądra. Publiczny bind MySQL (0.0.0.0:3306) widać od razu. `top -o %CPU` pokazuje, czy CPU zjada php-fpm, mysqld, czy boty w workerach.

Jak ustawić i odpalić

Na Debianie i Ubuntu: `apt install sysstat procps iproute2`. Jednorazowy zrzut przy zgłoszeniu „wolno”: `lscpu`, `free -h`, `vmstat 1 10`, `iostat -x 1` (zatrzymaj po 10 liniach), `ss -tulpn`, `df -hT`, `journalctl -u php-fpm -S today`. Zapisz output do ticketa. Alert w Grafanie (CPU, disk await, steal jeśli node-exporter) nie zastępuje tego zrzutu przy incydencie, tylko woła cię wcześniej.

Na VPS kolumna st w `vmstat` jest ważniejsza niż wykres CPU w panelu sprzedawcy. Interpretacja starego CPU: tani VPS i procesor. Utrzymanie hostów: administracja IT.