Bir VPS'te yüksek yük teşhisi koyma | INTROSERV
EUR
european

EUR

usa

USD

Turkish Tr
Ex. VAT Ex. VAT 0%

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.

Info

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:

CPU çubukları, bellek çubukları ve işlem listesi gösteren htop arayüzü

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:

htop, en üstte yüksek CPU ve bellek tüketen msty-local-studio işlemini gösteriyor

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:

sistem özeti ve işlem listesi gösteren top komut arayüzü

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)
  • qtop'tan çık

top ne zaman kullanılır

top kullanın:

  • htop yü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:

işlem başına disk I/O etkinliğini gösteren iotop-c arayüzü

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/log iç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
  • uptime gösteriyor: yük ortalaması: 8.5, 7.3, 6.9 – 2 çekirdek için çok yüksek.

Soruşturma

  1. htop çalıştırın: CPU kullanımı düşük – sadece %10–15. Bellek kullanımı iyi. Yani CPU'ya bağlı değil.
  2. top çalıştırın: %wa = %40 – sistem disk I/O bekliyor.
  3. iotop-c çalıştırın:
    iotop-c, yüksek I/O kullanımı ile en üstte bir yedekleme betiği gösteriyor

    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 ionice kullanı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:

  1. CPU maksimumda mı?htop, top
  2. Bellek dolu mu veya swap yapıyor mu?htop, top
  3. Disk aşırı yüklü mü?iotop-c
  4. 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.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA