Bir VPS'te yüksek yük teşhisi koyma
htop, top ve iotop-c kullanarak suçlu süreci bulma
VPS'iniz gecikmeye başladığında – SSH gecikmeli hissedildiğinde, web siteleri yavaş yanıt verdiğinde veya terminalde yazmak bile yavaşladığında – genellikle bir veya daha fazla sistem kaynağının (CPU, RAM veya disk I/O) sınırlarına kadar zorlandığı anlamına gelir. Bu kılavuz, üç standart Linux aracı olan htop, top ve iotop-c kullanarak neler olduğunu ve hangi sürecin suçlu olduğunu belirlemek için pratik, adım adım bir süreç sunar.
Hedef kitle, komut satırına ve temel Linux kavramlarına aşina olan başlangıç-orta düzey sistem yöneticileri olarak varsayılmaktadır.
Birinci adım: "Yüksek yük"ün ne anlama geldiğini bilmek
Pek çok kişi yüksek bir "yük ortalaması" gördüğünde panikler – ancak tüm yüksek yükler kötü değildir. Bunu netleştirelim.
"Yük ortalaması" nedir?
"Yük ortalaması", belirli bir zamanda CPU'yu bekleyen kaç işlem olduğunu size söyler. Geçmiş 1, 5 ve 15 dakika için üç sayı olarak gösterilir.
Örnek: uptime
Çıktı:
17:41:25 up 2 days, 3:45, 1 user, load average: 2.34, 1.89, 1.42
Yorumlama:
- 2.34 – son dakikadaki ortalama yük
- 1.89 – son 5 dakikada
- 1.42 – son 15 dakikada
Şimdi, bu sayıları CPU çekirdek sayınızla karşılaştırın. Eğer 2 çekirdeğiniz varsa:
- Yaklaşık 2.0 yük, her iki CPU'nun da tam olarak kullanıldığı anlamına gelir – sistem meşgul ama iyi durumda.
- 2.0'dan çok daha yüksek (örneğin 3 veya 4) yük, bir kuyruk olduğu anlamına gelir – çok fazla işlem bekliyor.
Kaç çekirdeğiniz olduğunu kontrol edin:
nproc
Yük ≫ çekirdek sayısı uzun süre boyunca ise, araştırma zamanı gelmiştir.
İkinci adım: htop ile hızlı bir genel bakış alın
htop, VPS'inizin içinde gerçek zamanlı olarak neler olduğunu görselleştirmenin en kolay yoludur.
htop yükleyin
Linux dağıtımınıza uygun komutu kullanarak yükleyin:
- Ubuntu/Debian için
sudo apt install htop - CentOS/RHEL için
sudo yum install htop
Çalıştırın
htop komutunu çalıştırın. Şu şekilde renkli bir arayüz göreceksiniz:

Düzeni anlama
- Üst çubuklar CPU, bellek ve swap kullanımını gerçek zamanlı olarak gösterir.
- Yük ortalaması sağ üst köşede görünür.
- İşlem listesi hangi işlemlerin çalıştığını ve her bir işlemin ne kadar CPU ve RAM kullandığını gösterir.
Gezinme ipuçları
- CPU kullanımına göre sırala: F6 tuşuna basın, ardından "PERCENT_CPU" seçin
- Belleğe göre sırala: F6 tuşuna basın, "PERCENT_MEM" seçin
- Ağaç görünümü (ebeveyn/çocuk işlemleri göster): F5 tuşuna basın
- Bir işlemi sonlandır: vurgulayın – F9 tuşuna basın – sinyal seçin (varsayılan 15, "sonlandır")
- Bir işlemi ara: F3 tuşuna basın, adının bir kısmını yazın (örneğin, "nginx")
Nelere dikkat etmeli
- Yüksek CPU% olan işlemler – bunlar en fazla CPU zamanını tüketiyor.
- Yüksek MEM% olan işlemler – bunlar RAM tüketiyor ve sistemi swap yapmaya zorlayabilir.
- Bir işlem her birkaç saniyede bir en üstte tekrar görünüyorsa, bu bir döngüdeki betik veya yeniden başlatılan hizmet olabilir.
Örnek
htop çalıştırın. Şu gibi bir şey görürseniz:

Açıkça msty-local-studio PID 6346 ile diğer her şeyden daha fazla CPU ve bellek kullanıyor. Şimdi bir sonraki kontrollerinizi nereye odaklayacağınızı biliyorsunuz.
Üçüncü Adım: top ile çapraz kontrol yapın
htop kullanıcı dostu olsa da, top her Linux sisteminde mevcuttur – kurulum gerektirmez. Sadece SSH erişiminiz olan minimal bir ortamda iyi bir yedek seçenektir.
Çalıştırın
top komutunu çalıştırın. Şu şekilde bir arayüz göreceksiniz:

Anahtar noktalar
- %Cpu(s) satırı CPU zamanının nereye gittiğini gösterir:
- us – kullanıcı işlemleri
- sy – sistem/çekirdek görevleri
- wa – I/O (disk) bekleme
- %wa (I/O bekleme) %10–15'in üzerinde genellikle bir disk darboğazı anlamına gelir.
- Yük ortalaması ve görevler özeti sistemin ne kadar meşgul olduğunu söyler.
Faydalı klavye kısayolları
- Shift + P – CPU'ya göre sırala
- Shift + M – belleğe göre sırala
- Shift + T – işlem çalışma süresine göre sırala
- 1 – çekirdek başına CPU kullanımını değiştir
- k – bir işlemi sonlandır (istendiğinde PID girin)
- q –
top'tan çık
top ne zaman kullanılır
top kullanın:
htopyüklü değilse (kurtarma sistemi veya Docker konteyneri gibi).- Gerçek zamanlı olarak CPU ve I/O dengesini gösteren hafif bir araç istiyorsanız.
Dördüncü Adım: CPU ve RAM İyi Görünüyorsa – Disk I/O'yu iotop-c kullanarak kontrol edin
Bazen her şey normal görünür – CPU kullanımı yüksek değildir, bellek iyidir – ancak sistem donmuş gibi hissedilir. ls veya cd gibi komutlar saniyelerce askıda kalır ve yük ortalaması hala yüksektir. Bu, CPU'nun boşta olduğu ancak disk işlemlerinin tamamlanmasını beklediği klasik bir I/O bekleme işaretidir.
iotop-c yükleyin
Linux dağıtımınıza uygun komutu kullanarak yükleyin:
- Ubuntu/Debian için
sudo apt install iotop-c - CentOS/RHEL için
sudo yum install iotop-c
IO izlemeyi etkinleştirmek için komutu kullanın:
sudo sysctl kernel.task_delayacct=1
Çalıştırın
Root kullanıcısı olarak komutu çalıştırın: sudo iotop-c. Şu şekilde bir arayüz göreceksiniz:

Yorumlama
- IO sütunu, her işlemin I/O beklerken ne kadar süreyle engellendiğini gösterir.
- Yüksek IO (örneğin, %90–100) – o işlem diskte yoğun bir şekilde bekliyor.
- Yedekleme, büyük veri içe aktarma veya sıkıştırma işleri çalıştırıp çalıştırmadığınızı kontrol edin.
I/O aşırı yüklenmesinin yaygın nedenleri
- Büyük bir sorgu çalıştıran veritabanı (
mysqld,postgres). - Devasa dosyaları kopyalayan yedekleme betikleri (
rsync,tar,dd). /var/logiçinde kontrolsüz büyüyen günlük dosyaları.- Yanlış yapılandırılmış swap – sistem yoğun bir şekilde swap yapmaya başlarsa, diski hırpalar.
Beşinci Adım: Bulduklarınızı İlişkilendirin
Artık htop, top ve iotop-c kullandığınıza göre, bulmacayı bir araya getirme zamanı.
| Belirti | Muhtemel Sebep | Kontrol Edilecek Araç |
|---|---|---|
| Yüksek CPU kullanımı | Hatalı betik, ağır işlem | htop, top |
| Yüksek bellek kullanımı | Bellek sızıntısı, çok fazla işçi | htop |
| Yüksek I/O bekleme, yavaş yanıt | Disk darboğazı, swap yapma | iotop-c, top |
| Yüksek yük ama CPU boşta | I/O veya bellek tükenmesi | top, iotop-c |
Ayrıca sistem günlüklerini uyarılar için kontrol edin:
journalctl -xe
veya:
tail -n 50 /var/log/syslog
Çekirdek hataları, başarısız montajlar veya OOM (Bellek Dışı) katili tarafından öldürülen işlemler hakkında mesajlar bulabilirsiniz.
Altıncı Adım: Harekete Geçin
Suçluyu belirledikten sonra, bir sonraki adımda ne yapacağınıza karar verin.
İşlemi yeniden başlat veya durdur
sudo systemctl restart <service>
veya gerekirse:
sudo kill -9 <pid>
Disk alanını boşaltın
Disk kullanımı yüksekse, hangi bölümü temizleyeceğinizi belirlemek için df -h kullanın veya hangi günlükleri temizleyeceğinizi belirlemek için sudo du -sh /var/log/* kullanın.
İşlem yükünü azaltın
- Cron işlerini aynı anda çalışmayacak şekilde sınırlayın.
- Veritabanı sorgu limitlerini veya önbelleğe almayı ayarlayın.
- Nginx, Apache veya Gunicorn'da işçi sayısını azaltın.
Eğer hiçbir şey yardımcı olmuyorsa – kaynakları yükseltin
Eğer optimize edilmiş iş yükleriyle bile sürekli sınırları zorluyorsanız, daha fazla CPU, RAM ekleme veya daha hızlı depolamaya geçme (örneğin, SSD'den NVMe'ye) zamanı gelmiştir.
Yedinci Adım: Önleme ve Sürekli İzleme
Her seferinde manuel olarak giriş yapıp yükü kontrol etmeniz gerekmemelidir. Glances, netdata, prometheus gibi araçlarla izleme ve uyarılar kurabilirsiniz.
Hızlı Referans Komutları
| Hedef | Komut |
|---|---|
| Yük ortalamasını göster | uptime |
| CPU/bellek yükünü görsel olarak gör | htop |
| Minimal işlem görünümü | top |
| Disk etkinliğini izle | iotop-c |
| Günlükleri görüntüle | journalctl -xe |
Gerçek Dünya Örneği: Kaçak Yedekleme Betiği
Her şeyi gerçek bir senaryo ile birleştirelim.
Durum
- 2 CPU çekirdeği ve SSD depolama ile VPS
- Aniden çok yavaş hissediliyor – SSH gecikmesi, web sayfaları zaman aşımına uğruyor
uptimegösteriyor: yük ortalaması: 8.5, 7.3, 6.9 – 2 çekirdek için çok yüksek.
Soruşturma
htopçalıştırın: CPU kullanımı düşük – sadece %10–15. Bellek kullanımı iyi. Yani CPU'ya bağlı değil.topçalıştırın: %wa = %40 – sistem disk I/O bekliyor.iotop-cçalıştırın:
Bingo – diskte doğrudan büyük bir dizini sıkıştıran bir yedekleme betiği.
Düzeltme
- Yedeklemeyi durdurun veya gece çalışacak şekilde yeniden planlayın.
- Diske taşımadan önce
/tmp'ye (bellekte) sıkıştırın. - Disk önceliğini azaltmak için
ionicekullanın.
Sonuç
VPS performansı anında normale döner.
Son Düşünceler
Yüksek yükü teşhis etmek sihir değildir – bu, CPU, bellek ve diski birer birer sistematik olarak kontrol etmek ile ilgilidir. Araçlarınızı bir dedektif gibi kullanın:
- CPU maksimumda mı? –
htop,top - Bellek dolu mu veya swap yapıyor mu? –
htop,top - Disk aşırı yüklü mü? –
iotop-c - Günlükler bunu doğruluyor mu? –
journalctl
Suçlu süreci belirledikten sonra, karar verin: ayarlayın, sonlandırın veya daha iyi planlayın. Zamanla, kalıpları tanımaya başlayacaksınız – ağır yük işlemi, çok fazla cron işi veya yanlış yapılandırılmış bir web uygulaması. İşte o zaman yangın söndürmeyi bırakıp gerçek bir sistem yöneticisi gibi yönetmeye başlarsınız.