Sunucu yavaşladığında ilk iş, darboğazın CPU, bellek, disk veya ağ kaynaklı olup olmadığını anlamaktır. Aşağıdaki araçlar çoğu Linux dağıtımında hazır gelir.
CPU ve süreçler
uptime
topuptime çıktısındaki üç sayı yük ortalamasıdır (son 1, 5 ve 15 dakika). Yük ortalaması çalışmaya hazır veya disk beklemesindeki süreç sayısını yansıtır; çekirdek sayısıyla karşılaştırmak anlamlıdır. Çekirdek sayısını nproc ile görürsünüz.
top içinde P CPU'ya, M belleğe göre sıralar. htop kuruluysa daha okunabilir bir alternatiftir. Üst satırdaki wa değeri yüksekse CPU diskte bekliyor demektir.
Bellek
free -hLinux boş belleği dosya önbelleği için kullanır; bu yüzden free sütunu düşük görünebilir. Asıl bakılacak değer available sütunudur. Available çok düşükse ve swap kullanımı sürekli artıyorsa bellek yetersizdir.
Bellek bittiğinde çekirdek bir süreci sonlandırabilir (OOM killer). İzini sürmek için:
sudo journalctl -k | grep -i "out of memory"Disk alanı
df -h
df -idf -h dosya sistemlerinin doluluğunu, df -i inode (dosya sayısı) doluluğunu gösterir. Çok sayıda küçük dosya varsa disk boş görünürken inode bitebilir.
Alanı kimin kapladığını bulmak için:
sudo du -xh --max-depth=1 /var | sort -hSık suçlular: günlük dosyaları (/var/log), eski paket önbelleği, Docker imajları ve yedek dosyaları.
Disk G/Ç
iostat -x 2iostat, sysstat paketiyle gelir. Yüksek %util ve uzun bekleme süreleri disk darboğazına işaret edebilir.
Ağ ve portlar
ss -tlnp
ss -sss -tlnp hangi süreçlerin hangi portlarda dinlediğini gösterir.
Günlükler
sudo journalctl -u nginx --since "1 hour ago"
sudo journalctl -p err -bİlki bir servisin son bir saatlik günlüğünü, ikincisi bu açılıştaki hata düzeyli kayıtları listeler.
Sürekli izleme
Elle bakmak anlık sorunlar için iyidir ancak geçmişi göstermez. Kaynak kullanımının zaman içindeki grafiğini ve eşik aşıldığında uyarı almak için bir izleme aracı (örneğin Prometheus ile Node Exporter ya da hafif bir alternatif) kurmayı düşünün. Ne zaman bir sorun başladığını bilmek, nedenini bulmayı çok kolaylaştırır.