Monitorowanie zasobów: free, vmstat, iostat, sara
Monitorowanie dostępnej pamięci jest kluczowe dla stabilności systemu. Przy administracji serwerami, maszyn wirtualnych czy serwerów ważne jest zrozumienie jak Linux alokuje i zarządza pamięcią.
Komenda free – stan pamięci teraz
free
Wyświetla podsumowanie zużycia RAM i swap. Domyślnie w kilobajtach (KB).
free -h
Format czytelny (B, KB, MB, GB). Najczęściej stosowana opcja.
free -m
Wynik w megabajtach.
free -g
Wynik w gigabajtach (przydatne na dużych serwerach).
free -w
Rozszerzony format z osobną kolumną na bufory i cache.
Interpretacja wyniku free -h:
total used free shared buff/cache available Mem: 15.6G 8.2G 2.1G 0.5G 5.3G 7.4G Swap: 4.0G 0.5G 3.5G
total– całkowita pamięć RAMused– faktycznie używana pamięćfree– zupełnie wolna (często mała, bo Linux używa cache)buff/cache– bufory i cache (mogą być zwolnione, jeśli trzeba)available– pamięć dostępna do użytku dla aplikacji (ważna liczba!)
Monitorowanie pamięci w czasie rzeczywistym
free -h -s 2
Wyświetla stan pamięci co 2 sekundy.
free -h -s 2 -c 10
Monitoruje co 2 sekundy, 10 razy.
watch -n 1 'free -h'
Monitorowanie pamięci co sekundę w atrakcyjnym formacie (wymaga pakietu watch).
Komenda vmstat – Virtual Memory Statistics
Wprowadzenie do vmstat:
Bardziej zaawansowana niż free, pokazuje statystyki pamięci wirtualnej, I/O i swap activity.
vmstat
Jednorazowy raport.
vmstat 2 5
Raport co 2 sekundy, 5 razy.
Interpretacja wyniku:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 2048000 51200 5242880 0 0 2 1 50 30 25 5 70 0 0
r– procesy czekające na CPUb– procesy w I/O waitswpd– swap w użyciu (MB)free– wolna pamięćsi/so– swap in/out (jeśli > 0, system ma problemy z pamięcią)id– % czasu CPU bezczynny (wysoki = dobry, niski = CPU obciążony)wa– % czasu czekania na I/O (wysokie wartości = problemy z dyskiem)
Komenda iostat – I/O Statistics
iostat monitoruje aktywność dysków i procesorów. Wymaga pakietu sysstat.
iostat
Ogólne statystyki od ostatniego restartu systemu.
iostat -x 2 5
Rozszerzone statystyki dysku, co 2 sekundy, 5 razy.
Interpretacja wyniku:
Device r/s w/s rMB/s wMB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz %util sda 10.5 5.2 0.50 0.25 0.5 1.2 5% 10% 2.5ms 5.0ms 0.08 8.5%
r/s– read operations per secondw/s– write operations per secondrMB/s / wMB/s– megabajty czytane/zapisywane na sekundę%util– procent wykorzystania dysku (>80% = problem)r_await / w_await– średni czas oczekiwania operacji (wysoki = wolny dysk)
Komenda sar – System Activity Reporter
sar z pakietu sysstat to kompleksowe narzędzie do monitorowania systemu. Może zbierać dane historyczne.
sar -u 2 5
Statystyki CPU co 2 sekundy, 5 razy.
sar -r 2 5
Statystyki pamięci.
sar -d 2 5
Statystyki dysków (podobnie jak iostat).
sar -b 2 5
I/O i przełączenia stron (page faults).
Monitorowanie swap activity – problem w systemach
vmstat 1 | grep -v procs | awk '$7 > 0 || $8 > 0 { print "SWAP AKTYWNY!", $0 }'
Ostrzeżenie gdy system zaczyna pisać do swap (si/so > 0 to problem!).
watch -n 1 'vmstat 1 2 | tail -1'
Ciągłe monitorowanie najnowszych danych vmstat.
Praktyczne problemy z pamięcią i jak je diagnozować
Problem: System powolny, dużo swap activity
# 1. Sprawdź dostępną pamięć free -h
2. Sprawdź swap
vmstat 1 5 | grep -E 'si|so'
3. Szukaj procesów zużywających pamięć
ps aux --sort=-%mem | head -20
4. Sprawdź I/O wait
iostat -x 1 5
Problem: Serwer Metin2 (MT2SRV) zajmuje za dużo pamięci
# Monitoruj samo server gry watch -n 1 'ps aux | grep -E "game|db|auth" | awk "{print \$2, \$4, \$11}"'
Jeśli pamięć rośnie bezustannie (memory leak)
ps aux | grep game | awk '{print $2}' # Uzyskaj PID
cat /proc/[PID]/status | grep VmRSS # Aktualna pamięć tego procesu
Wyzwalanie alertów przy braku pamięci
#!/bin/bash AVAILABLE=$(free -h | awk '/^Mem:/ {print $7}' | tr -d 'G') if (( $(echo "$AVAILABLE < 1" | bc -l) )); then echo "ALARM: Pamięć poniżej 1GB!" fi


















