Tüm Ürünler
Search
Belge Merkezi

:Troubleshooting high load on Linux instances

Son Güncelleme:Sep 30, 2026

Belirtiler

  • Yavaş yanıt: Secure Shell Protocol (SSH) komutları gecikmeli çalışır. Web sitesi veya API erişimi yavaştır ya da zaman aşımına uğrar.

  • Yüksek ölçümler: CPU, bellek ve disk G/Ç ölçümleri tutarlı bir şekilde %80'in üzerindedir.

  • Hizmet kesintisi: Sistem, yetersiz bellek (OOM) hatası nedeniyle kritik işlemleri sonlandırır ve örnek otomatik olarak yeniden başlar.

  • Oturum açma hatası: SSH bağlantıları reddedilir.

Nedenler

  • Uygulama sorunları: Uygulama kodunda performans darboğazları veya bellek sızıntıları bulunur.

  • Trafik artışları: Eşzamanlı erişim, örneğin işleme kapasitesini aşar.

  • G/Ç darboğazı: Disk okuma ve yazma işlemleri doygunluğa ulaşır; bu durum yüksek CPU iowait değerine neden olur.

Çözümler

1. Adım: Anormal işlemleri hızlıca belirlemek için htop kullanın

  1. Bir ECS örneğine VNC bağlantısı kullanarak oturum açın.

    1. ECS konsolu - Örnekler sayfasına gidin. Sol üst köşede hedef örnek için bölgeyi ve kaynak grubunu seçin.

    2. Hedef örneğin ayrıntılar sayfasına gidin. Connect seçeneğine tıklayın ve VNC seçeneğini belirleyin. ECS örneğinde oturum açmak için kimlik bilgilerinizi girin.

  2. htop uygulamasını yükleyin ve çalıştırın.

    sudo yum install -y htop
    htop
  3. htop arayüzündeki çıktıyı analiz edin.

    • Yüksek CPU tüketen işlemleri bulmak için F6 tuşuna basın ve PERCENT_CPU değerine göre azalan sırada sıralayın.

    • Yüksek bellek tüketen işlemleri bulmak için F6 tuşuna basın ve PERCENT_MEM değerine göre azalan sırada sıralayın.

2. Adım: Kaynak darboğazlarını teşhis etmek için sar kullanın

htop kullanarak bir belirti belirledikten sonra, nicel veriler elde etmek ve darboğazın CPU, bellek mi yoksa G/Ç mı olduğunu doğrulamak için sar aracını kullanın.

  1. sysstat paketini yükleyin ve etkinleştirin.

    sudo yum install -y sysstat
    systemctl start sysstat && systemctl enable sysstat
  2. Hedeflenen bir analiz çalıştırın.

    • CPU kullanımını analiz edin (sar -u) ve CPU zamanının nerede harcandığını doğrulayın.

      # Collect data once per second for a total of 5 times
      sar -u 1 5
      • Yüksek %user değeri: Bir uygulama sorununa işaret eder.

      • Yüksek %system değeri: Sık çekirdek veya G/Ç çağrılarına işaret eder.

      • %iowait değeri tutarlı bir şekilde %20'den büyükse: Disk G/Ç darboğazına işaret eder.

    • Sistem yükünü analiz edin (sar -q) ve sistemin ne kadar meşgul olduğunu ölçün.

      # Collect data once every 2 seconds for a total of 5 times
      sar -q 2 5
      • ldavg-1 değeri CPU çekirdek sayısından büyükse: Sistem aşırı yüklenmiş demektir.

      • Yüksek runq-sz değeri: CPU'yu bekleyen kuyrukta çok sayıda işlem vardır.

    • Bellek ve takas (swap) etkinliğini analiz edin (sar -r ve sar -W) ve belleğin tükenip tükenmediğini belirleyin.

      # Analyze memory usage
      sar -r 1 3
      # Analyze swap activity (Swap)
      sar -W 1 3
      • pswpin/s veya pswpout/s değeri tutarlı bir şekilde 0'dan büyükse: Fiziksel bellek yetersizdir ve sistem diske takas yapmaktadır. Bu durum performansı düşürür.

    • Disk G/Ç'sini analiz edin (sar -d) ve disk performans darboğazlarını belirleyin.

      # Collect data once per second for a total of 3 times to analyze a specific disk
      sar -d 1 3
      • %util değeri %100'e yakınsa: Disk G/Ç'si doygunluğa ulaşmıştır.

      • await değeri 20 ms'den büyükse: G/Ç isteği işleme süresi çok uzundur.

3. Adım: Hedeflenen çözümleri ve optimizasyonları uygulayın

  • Yüksek CPU tüketen uygulama işlemleri için:

    • Kod optimizasyonu: perf (C/C++) ve jstack (Java) gibi araçları kullanarak yoğun kullanılan kod bölgelerini belirleyin ve optimize edin.

    • Mantık optimizasyonu: Sonsuz döngüler ve tam tablo taraması yapan SQL sorguları gibi verimsiz işlemleri kontrol edin ve düzeltin.

  • Yetersiz bellek veya sık takas (swap) durumu için:

    • Sızıntıları araştırın: valgrind (C/C++) ve jmap (Java) gibi araçları kullanarak bellek sızıntılarını analiz edin.

    • Yapılandırmaları ayarlayın: Java Sanal Makinesi (JVM) için -Xms ve -Xmx parametreleri gibi uygulama bellek parametrelerini yapılandırın.

    • Kaynakları yükseltin: Örnek türünü değiştirerek fiziksel belleği artırın. Daha fazla bilgi için bkz. Örnek türü değişikliklerine genel bakış.

  • Yüksek disk G/Ç'si: Daha fazla bilgi için bkz. Linux sistemlerinde yüksek disk G/Ç yükü sorunlarını giderme.

Sonraki adımlar

  • İzleme ve uyarıları yapılandırma: CPU, bellek, yük ve disk gibi temel ölçümler için uyarı eşiklerini ayarlayarak erken uyarı alın.

  • Auto Scaling planlama: Web uygulamaları gibi dalgalanma gösteren iş yükleri için, trafik değişikliklerine yanıt olarak örnekleri otomatik olarak ekleyen veya kaldıran Auto Scaling ilkelerini yapılandırın.