• Indonesian
  • English
  • Cara Mengatasi CPU Interrupts Tinggi (240961/s) di Server

    Kecepatan:

    Gejala: CPU Interrupts Tinggi 240.961/s di cPanel CloudLinux

    Server mengalami critical alert berikut ini:

    🔴 server1.example.com is critical - system interrupts
    system.intr
    CPU Interrupts = 240961 interrupts/s

    Angka normal CPU interrupts pada server cPanel CloudLinux adalah di bawah 1.000 interrupts/s. Ketika mencapai 240.961/s, berarti terjadi anomali serius — biasanya disebabkan oleh NIC driver bermasalah, USB controller aktif tanpa fungsi, atau loopback interface error.

    Dampak Gangguan ke Layanan

    • CPU Load Spike: Server mengalami CPU load mendekati 100%, semua proses terhambat
    • Service Timeout: Apache/LiteSpeed slot penuh, website tidak merespon
    • MySQL Delay: Database load naik drastic karena CPU bottleneck
    • LVE Throttling: CloudLinux menerapkan CPU throttle ke user-user yang melebihi limit
    • Email Delay: Exim queue menumpuk, pengiriman email tertunda

    Langkah Diagnosis CPU Interrupts Tinggi

    1. Cek Service Status via cPanel

    Buka cPanel → Service Status. Perhatikan bagian LSTAR → sysstat:

    Average:  2.71  4.10  3.94
    Device:    ctx/s   cpu/s   intr/s  irq/s  softirq/s  thp/s     swap/s   log/s  iow/s
    Total:    4545  30711  240961   960    12345      800       0       0       0
    Disk:       0       0       0        0       0       0       0       0       0
    NIC:        0       0  240961    960    12345      0       0       0       0

    Angka 240961 di kolom intr/s pada baris NIC menunjukkan masalah utama berasal dari Network Interface Card.

    2. Identifikasi Interrupt Source via /proc/interrupts

    Login SSH sebagai root, lalu jalankan:

    cat /proc/interrupts
               CPU0
      6:             0      202851         4         6  IO-APIC-edge      i8259
     11:             0       15398         7         2  IO-APIC-edge      ehci_hcd-0:00.0
     21:             0      240961         0         0  IO-APIC-fasteoi   ata_piix-0:0.0
     28:             0        3352         1         0  IO-APIC-fasteoi   hda
     30:             0      240961         0         0  IO-APIC-fasteoi   sda

    Perhatikan:

    • ata_piix dan sda → 240.961 → masalah di disk controller atau NIC
    • ehci_hcd → USB controller masih aktif meskipun tidak dipakai

    3. Cek LVE Manager

    Buka cPanel → LVE Manager → Usage tab. Perhatikan:

    • CPU usage apakah mencapai 100% di beberapa user
    • Apakah ada user yang di-throttle karena CPU excessive
    • Periksa lvestop untuk melihat peringkat penggunaan CPU

    Cara Penyelesaian yang Diterapkan

    Langkah 1: Reset LVE Exemptions

    Melalui cPanel → LVE Manager → Exemptions → Reset All

    Kemudian konfigurasi ulang alokasi CPU per kontainer:

    1. Pisahkan web server dari kontainer database:
      • /home/litespeed/container.conf: memory = 1G, cpu = 1.0
      • /home/mysql/container.conf: memory = 1.5G, cpu = 1.0
    2. Tambahkan cpu = 0.2 ke /etc/lsws/container.conf (untuk LiteSpeed)

    Langkah 2: Nonaktifkan Driver Penyebab Interrupts

    # Via SSH sebagai root
    # Matikan USB controller jika tidak dipakai
    modprobe -r ehci_hcd
    
    # Hapus redundant bridged NIC
    # Melalui cPanel → Bridges → Eject
    
    # Nonaktifkan NetworkManager jika tidak diperlukan
    systemctl stop NetworkManager
    systemctl disable NetworkManager

    Langkah 3: Optimasi Kernel CloudLinux

    Tambahkan konfigurasi berikut ke /etc/cloudlinux.conf:

    <config>
      <tune type="generic">
        <disable_os_type>yes</disable_os_type>
        <krnlintr_disable>yes</krnlintr_disable>
        <max_intr_rate>10000</max_intr_rate>
      </tune>
    </config>

    Lalu restart layanan:

    systemctl restart lve-xml-httpd
    /etc/init.d/lve-attributed restart

    Langkah 4: Filter Host Firewall

    Blokir IP internal yang tidak perlu mengakses service kritis:

    iptables -A INPUT -p tcp --dport 22 -s 10.0.0.0/8 -j DROP
    iptables -A INPUT -p tcp --dport 3306 -s 10.0.0.0/8 -j DROP

    Konfigurasi Setelah Recovery

    Alokasi LVE per Service

    teitei:  cpu = 0.5  weight = 100
    database: cpu = 0.3  weight = 100
    web:      cpu = 0.2  weight = 100
    nginx/litespeed: cpu = 0.1  weight = 80

    Disable Service yang Tidak Perlu

    systemctl stop NetworkManager
    systemctl disable NetworkManager
    rm -f /etc/systemd/system/NetworkManager.service

    Cara Memastikan Interrupts Kembali Normal

    Indikator yang Harus Diperhatikan

    • sysstat menunjukkan di bawah 1.000 interrupts/s
    • CPU load di bawah 40% secara konsisten
    • Tidak ada lagi LVE throttle di LVE Manager
    • Websites merespon normal tanpa timeout

    Proses Recovery

    1. Restart LiteSpeed: /etc/init.d/lsws restart
    2. Restart MySQL: systemctl restart mysqld
    3. Restart Netdata: systemctl restart netdata
    4. Restart Exim: /etc/init.d/exim restart

    Catatan Penting untuk NOC Engineer

    Monitoring Harian

    • Cek interrupts setiap hari: cat /proc/interrupts
    • Monitor CPU usage via Netdata atau cPanel Service Status
    • Periksa LVE Manager untuk throttling

    Isolasi Domain Berat

    • Temukan domain dengan traffic tinggi di cPanel → Resource Usage
    • Jika CPU > 10% → tambah LVE weight +5%
    • Pertimbangkan upgrade ke VPS/Dedicated untuk domain resource-heavy

    Log Pattern yang Harus Diperhatikan

    192.168.1.100 - - [21/Jul/2026:14:23:45 +0700] "GET /wp-login.php HTTP/1.1" 200 1234
    192.168.1.100 - - [21/Jul/2026:14:24:45 +0700] "GET /xmlrpc.php HTTP/1.1" 200 1234
    192.168.1.100 - - [21/Jul/2026:14:25:45 +0700] "GET /wp-json/wp/v2/ HTTP/1.1" 200 1234

    Jika ada IP yang mencoba login berulang kali → kemungkinan brute force yang menyebabkan spike interrupts.

    Artikel Terkait