Yüksek işlemci kullanımı değilse hangi işlemlerin yüksek yüklere neden olduğunu nasıl anlayabilirim?


12

Bazen sunucularım "en iyi" programda yüksek bir yük ortalaması gösterecektir (örneğin 4 çekirdekli bir makinede yük ~ 10'dur), ancak gerçek CPU kullanımı özellikle yüksek değildir.

Mesele şu ki, çalışmakta olan çok sayıda G / Ç yoğun iş var. Üstteki "% CPU" değerleri o kadar yüksek değilse, yüke neden olan bu işleri tanımlamanın kolay bir yolu var mı?


topKomutu çalıştırdığınızda gördüğünüz özet alanını yapıştırabilir misiniz ?
mfriedman

Yanıtlar:


7

iostatbunun gibi istatistikleri rapor edebilir. Genellikle sysstat paketindeki dağıtımınıza dahil edilir.

dstat da bir göz atmaya değer, modern bir yedek.


1 çünkü iostatolacaktı benim cevap.
Ernie

4

Eğer varsa IO muhasebe Kernel'deki, o zaman kullanabileceğiniz iotopböyle bilgi vermek. Ayrıca, colld gibi izleme araçları verileri kaydedip raporlayabilir.


4

Yüksek yüke neyin sebep olduğunu bulmak için birkaç şeyi kontrol edebilirsiniz.

  • vmstat -w size ovierwiem gösterecektir (işlemler, takas, mem, cpu, io, sistem)
  • pmstat -P ALL işlemci çekirdeği başına istatistik (% iowait ile) sağlayacak
  • iostat -x yüksek% util veya uzun süre beklemek veya büyük ortalama kuyruk boyutu aramak
    • daha derine inmek iotop
  • ps -ax kesintisiz uyku (genellikle IO) olan D durumunu arayın, hala D durumunda olup olmadıklarını kontrol etmek için bir kez daha çalıştırın
    • strace ile daha derine kaz
    • lsof ve netstat ile bu süreçlerin dosya ve bağlantılarını kontrol edin
  • sar / sysstat - bu araçla sadece "şimdi" istatistiklerini araştırmakla kalmaz, aynı zamanda gece yarısında evet olanları da kontrol edebilirsiniz
    • sar -b - genel faaliyetler
    • sar -d - bireysel blok cihaz faaliyetleri
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.