全部产品
Search
文档中心

:Pemecahan Masalah Beban Tinggi pada Instans Linux

更新时间:Nov 13, 2025

Gejala

  • Tanggapan lambat: Perintah Protokol Secure Shell (SSH) tertunda. Akses situs web atau API menjadi lambat atau timeout.

  • Metrik tinggi: Metrik CPU, memori, dan I/O disk secara konsisten melebihi 80%.

  • Gangguan layanan: Sistem menghentikan proses penting karena kesalahan kehabisan memori (OOM), dan instans otomatis dimulai ulang.

  • Kegagalan logon: Koneksi SSH ditolak.

Penyebab

  • Masalah aplikasi: Kode aplikasi memiliki bottleneck kinerja atau kebocoran memori.

  • Puncak trafik: Akses konkuren melebihi kapasitas pemrosesan instans.

  • Bottleneck I/O: Operasi baca dan tulis disk jenuh, yang menyebabkan CPU iowait tinggi.

Solusi

Langkah 1: Gunakan htop untuk mengidentifikasi proses abnormal dengan cepat

  1. Login ke instans ECS menggunakan koneksi VNC.

    1. Buka ECS console - Instance. Di bilah navigasi atas, pilih wilayah dan kelompok sumber daya yang dituju.

    2. Buka halaman detail instans yang dituju. Klik Connect dan pilih VNC. Masukkan nama pengguna dan kata sandi untuk login ke instans ECS.

  2. Instal dan jalankan htop.

    sudo yum install -y htop
    htop
  3. Analisis keluaran pada antarmuka htop.

    • Untuk menemukan proses dengan konsumsi CPU tinggi, tekan tombol F6 dan urutkan berdasarkan PERCENT_CPU secara menurun.

    • Untuk menemukan proses dengan konsumsi memori tinggi, tekan tombol F6 dan urutkan berdasarkan PERCENT_MEM secara menurun.

Langkah 2: Gunakan sar untuk mendiagnosis bottleneck sumber daya

Setelah Anda menggunakan htop untuk mengidentifikasi gejala, gunakan sar untuk mendapatkan data kuantitatif dan memastikan apakah bottleneck terjadi pada CPU, memori, atau I/O.

  1. Instal dan aktifkan sysstat.

    sudo yum install -y sysstat
    systemctl start sysstat && systemctl enable sysstat
  2. Jalankan analisis terarah.

    • Analisis penggunaan CPU (sar -u) untuk memastikan di mana waktu CPU dihabiskan.

      # Kumpulkan data sekali per detik sebanyak 5 kali
      sar -u 1 5
      • %user tinggi: Menunjukkan adanya masalah aplikasi.

      • %system tinggi: Menunjukkan panggilan kernel atau I/O yang sering terjadi.

      • %iowait secara konsisten lebih besar dari 20%: Menunjukkan bottleneck I/O disk.

    • Analisis beban sistem (sar -q) untuk mengukur seberapa sibuk sistem tersebut.

      # Kumpulkan data sekali setiap 2 detik sebanyak 5 kali
      sar -q 2 5
      • ldavg-1 lebih besar dari jumlah core CPU: Sistem kelebihan beban.

      • runq-sz tinggi: Banyak proses dalam antrian menunggu CPU.

    • Analisis aktivitas memori dan swap (sar -r dan sar -W) untuk menentukan apakah memori telah habis.

      # Analisis penggunaan memori
      sar -r 1 3
      # Analisis aktivitas swap (Swap)
      sar -W 1 3
      • pswpin/s atau pswpout/s secara konsisten lebih besar dari 0: Memori fisik tidak mencukupi, dan sistem melakukan swapping ke disk. Hal ini menurunkan kinerja.

    • Analisis I/O disk (sar -d) untuk mengidentifikasi bottleneck kinerja disk.

      # Kumpulkan data sekali per detik sebanyak 3 kali untuk menganalisis disk tertentu
      sar -d 1 3
      • %util mendekati 100%: I/O disk jenuh.

      • await lebih besar dari 20 ms: Waktu pemrosesan permintaan I/O terlalu lama.

Langkah 3: Terapkan solusi dan optimasi yang ditargetkan

  • Untuk proses aplikasi dengan konsumsi CPU tinggi:

    • Optimasi kode: Gunakan alat seperti perf (C/C++) dan jstack (Java) untuk mengidentifikasi dan mengoptimalkan kode hot spot.

    • Optimasi logika: Periksa dan perbaiki operasi tidak efisien seperti loop tak terbatas dan kueri SQL yang melakukan pemindaian tabel penuh.

  • Untuk memori tidak mencukupi atau swapping yang sering terjadi:

    • Investigasi kebocoran: Gunakan alat seperti valgrind (C/C++) dan jmap (Java) untuk menganalisis kebocoran memori.

    • Sesuaikan konfigurasi: Konfigurasikan parameter memori aplikasi, seperti parameter -Xms dan -Xmx untuk Java Virtual Machine (JVM).

    • Tingkatkan sumber daya: Tambahkan memori fisik dengan mengubah tipe instans. Untuk informasi selengkapnya, lihat Overview of instance type changes.

  • I/O disk tinggi: Untuk informasi selengkapnya, lihat Troubleshoot high disk I/O load on Linux systems.

Langkah Selanjutnya

  • Configure monitoring and alerts: Tetapkan ambang batas peringatan untuk metrik utama seperti CPU, memori, beban, dan disk untuk menerima peringatan dini.

  • Plan for Auto Scaling: Untuk beban kerja yang fluktuatif, seperti aplikasi web, konfigurasikan kebijakan Auto Scaling untuk secara otomatis menambah atau menghapus instans sebagai respons terhadap perubahan trafik.