antond.net

0 %
Anton Darmawanto
Front-end Developer
Ui/UX Designer
  • Residence:
    Indonesia
  • City:
    Jakarta Selatan
  • Age:
    40
Indonesian
English
Jawa
html
CSS
Js
PHP
WordPress
Proxmox
Laravel
Linux server (ubuntu, debian, fedora)
Alibaba Cloud
  • Proxmox, Vm Ware
  • Stylus, Sass, Less
  • Gulp, Webpack, Grunt
  • GIT knowledge
0

No products in the cart.

Return To Shop

Cara Mencari Proses Pemakan Disk I/O di VPS Linux: Panduan iotop dan iostat

08/11/2026

Sebagai pengelola VPS Linux untuk klien bisnis, satu hal yang sering saya temukan adalah: server berjalan lambat tanpa alasan jelas. CPU tidak tinggi, RAM masih lega — tapi website lemot.

Jawabannya hampir selalu ada di disk I/O. Dan penyebab tersering? Proses yang menulis ke disk tanpa Anda sadari.

Panduan ini mengajarkan cara mencari proses pemakan disk I/O di VPS Linux, menggunakan tool bawaan yang sudah tersedia tanpa install tambahan.

Menemukan proses pemakan I/O read write menggunakan iotop
Menemukan proses pemakan I/O read write menggunakan iotop

Kenapa I/O Disk Bisa Jadi Bottleneck?

VPS hosting berbagi sumber daya fisik. Meski CPU dan RAM milik Anda mencukupi, disk (terutama HDD shared atau VPS murah dengan SSD terbatas) bisa menjadi hambatan tersendiri ketika:

  • Plugin WordPress menulis log terlalu agresif
  • MySQL melakukan full table scan berulang-ulang
  • Proses backup berjalan bersamaan dengan jam sibuk
  • File session PHP tidak dibersihkan dan menumpuk ribuan file

Tool 1: iostat — Statistik I/O Disk Real-Time

iostat adalah cara paling cepat melihat beban disk secara keseluruhan:

iostat -x 2 5

-x = tampilkan statistik extended, 2 = refresh tiap 2 detik, 5 = tampilkan 5 kali

Kolom yang paling penting: – %util → persentase waktu disk sibuk (di atas 80% = bottleneck) – await → waktu tunggu rata-rata per request (ms), idealnya di bawah 20ms – r/s, w/s → jumlah baca/tulis per detik

# Jika iostat belum terinstall:
apt install sysstat -y    # Debian/Ubuntu
yum install sysstat -y    # CentOS/AlmaLinux
Analisis throughput input output storage disk via iostat
Analisis throughput input output storage disk via iostat

Tool 2: iotop — Siapa yang Paling Banyak Menulis ke Disk?

iotop mirip top tapi untuk I/O disk — menampilkan proses mana yang paling agresif membaca/menulis:

iotop -ao

-a = tampilkan akumulatif (bukan hanya saat ini), -o = tampilkan hanya proses yang aktif I/O

Output: “ Total DISK READ: 2.34 M/s | Total DISK WRITE: 15.67 M/s PID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 1842 be/4 mysql 0.00 B 12.45 M/s 0.00 % 89.12 % mysqld 891 be/4 www-data 0.00 B 2.11 M/s 0.00 % 8.33 % php-fpm: pool “

Contoh di atas: mysqld adalah penyebab utama I/O tinggi.

# Install iotop jika belum ada:
apt install iotop -y

Tool 3: lsof +D — Cari File yang Paling Sering Diakses

Jika sudah tahu proses yang biang kerok (misal MySQL), cari file apa yang sedang ia buka:

lsof -p $(pidof mysqld) | grep -v "mem\|cwd\|txt" | head -20

Atau cari file terbesar yang sedang dibaca/ditulis:

lsof +D /var/lib/mysql | head -20

Tool 4: vmstat — Lihat Swap dan I/O Sekaligus

vmstat 2 10

Kolom penting: – si/so = swap in/out (jika > 0 terus-menerus = RAM kurang) – bi/bo = blok yang dibaca/ditulis ke disk per detik

Optimasi query database dan swap agar server kembali cepat
Optimasi query database dan swap agar server kembali cepat

Checklist Optimasi I/O Disk VPS Linux

MasalahPenyebab UmumSolusi
MySQL I/O tinggiFull table scan tanpa indeksAktifkan slow query log, tambah indeks
PHP I/O tinggiTerlalu banyak file sessionAktifkan session garbage collection, pakai Redis
Disk terus menulis malam hariCron backup berjalanJadwalkan backup di luar jam sibuk (03:00-05:00 WIB)
I/O tinggi tapi tidak tahu siapaLog bertumpukfind /var/log -name "*.log" -size +100M
%util selalu >80%VPS I/O throttle dari hostUpgrade paket atau pindah ke SSD NVMe

Cara Cepat Mengurangi I/O dari WordPress

Tanpa ganti hosting, beberapa langkah ini langsung terasa hasilnya:

# Nonaktifkan heartbeat WordPress (penyebab banyak request DB)
wp cron event unschedule --all 2>/dev/null

# Bersihkan sesi PHP yang menumpuk
find /tmp -name "sess_*" -mtime +1 -delete

# Cek slow query MySQL (jalankan di MySQL prompt)
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1;
Posted in Tutorial