Cara Monitoring CPU, RAM, Disk, dan Load Average di Ubuntu Server

Monitoring server merupakan bagian penting dalam mengelola aplikasi yang berjalan di Ubuntu Server. Server yang terlihat normal dari sisi aplikasi belum tentu memiliki resource yang sehat. CPU mungkin terus bekerja mendekati kapasitas maksimum, RAM dapat hampir habis, disk bisa penuh, atau load average dapat meningkat akibat terlalu banyak proses yang berjalan.

Karena itu, administrator perlu mengetahui cara memeriksa kondisi CPU, RAM, disk, dan load average secara langsung dari terminal.

Ubuntu Server menyediakan berbagai command bawaan Linux yang dapat digunakan untuk melakukan monitoring tanpa harus memasang aplikasi monitoring yang kompleks. Beberapa command yang paling berguna antara lain top, htop, free, df, du, dan uptime.

Artikel ini membahas cara monitoring resource Ubuntu Server, cara membaca penggunaan CPU dan RAM, mengecek kapasitas disk, memahami load average, mencari proses yang menggunakan resource besar, serta beberapa command tambahan untuk troubleshooting performa server.

Mengapa Monitoring Ubuntu Server Penting?

Server membutuhkan resource seperti CPU, RAM, storage, dan proses worker untuk menjalankan aplikasi.

Ketika salah satu resource mengalami tekanan tinggi, performa aplikasi dapat ikut terdampak.

Contohnya:

  • CPU terlalu tinggi dapat menyebabkan proses membutuhkan waktu lebih lama.
  • RAM hampir habis dapat menyebabkan aplikasi mengalami tekanan memory atau menggunakan swap.
  • Disk hampir penuh dapat menyebabkan aplikasi gagal menulis file.
  • Load average tinggi dapat menunjukkan banyak pekerjaan sedang menunggu CPU atau resource lain.

Monitoring membantu administrator mengetahui apakah masalah berasal dari aplikasi, database, proses tertentu, atau keterbatasan resource server.

Monitoring Server dengan top

Salah satu command Linux paling penting untuk monitoring server adalah top.

Jalankan:

top

Command tersebut menampilkan informasi resource server dan daftar proses yang sedang berjalan secara realtime.

Bagian atas output biasanya menampilkan informasi seperti:

load average
CPU usage
memory usage
swap usage

Di bagian bawah terdapat daftar proses yang sedang berjalan beserta penggunaan CPU dan memory.

Untuk keluar dari top, tekan:

q

Cara Membaca CPU Usage pada top

Informasi CPU pada top dapat terlihat seperti:

%Cpu(s):  5.2 us,  1.4 sy,  0.0 ni, 92.8 id,  0.3 wa,  0.0 hi,  0.3 si,  0.0 st

Beberapa nilai penting:

  • us — waktu CPU yang digunakan proses user.
  • sy — waktu CPU yang digunakan kernel/system.
  • ni — waktu untuk proses dengan modified scheduling priority.
  • id — CPU dalam kondisi idle.
  • wa — waktu menunggu operasi I/O.
  • hi — hardware interrupt.
  • si — software interrupt.
  • st — waktu CPU yang dicuri oleh hypervisor pada lingkungan virtual.

Jangan hanya melihat satu angka CPU secara terpisah. Jika penggunaan CPU tinggi, cari proses yang menjadi penyebabnya dan periksa apakah kondisi tersebut memang normal untuk workload server.

Melihat Proses yang Menggunakan CPU Tinggi

Pada top, proses dapat diurutkan berdasarkan penggunaan CPU.

Ketika top sedang berjalan, tekan:

P

Biasanya daftar proses akan diurutkan berdasarkan penggunaan CPU.

Anda dapat mencari proses dengan penggunaan CPU terbesar pada kolom %CPU.

Misalnya proses seperti:

php
php-fpm
mysql
nginx
node
java

dapat terlihat menggunakan CPU tinggi tergantung aplikasi yang berjalan pada server.

Monitoring CPU dengan htop

htop merupakan alternatif yang lebih interaktif dibandingkan top.

Jika belum tersedia, install dengan:

sudo apt update
sudo apt install htop

Kemudian jalankan:

htop

htop menampilkan CPU, memory, swap, load, dan daftar proses dalam tampilan yang lebih mudah dinavigasi.

Untuk keluar, tekan:

F10

atau:

q

Untuk kebutuhan troubleshooting sehari-hari, top sudah cukup. htop lebih nyaman ketika administrator ingin melakukan inspeksi proses secara interaktif.

Mengetahui Jumlah CPU Core

Jumlah CPU atau logical processor dapat diperiksa menggunakan:

nproc

Misalnya hasilnya:

4

Artinya sistem menyediakan empat logical CPU menurut informasi yang dilaporkan oleh nproc.

Informasi CPU yang lebih lengkap dapat diperiksa dengan:

lscpu

Command tersebut menampilkan informasi seperti arsitektur, CPU model, jumlah core, thread, dan informasi topology lainnya.

Apa Itu Load Average?

Load average merupakan salah satu indikator penting dalam monitoring Linux.

Nilainya dapat dilihat melalui:

uptime

Contoh:

 01:20:10 up 15 days,  4:32,  2 users,  load average: 0.42, 0.35, 0.28

Tiga angka tersebut secara umum menunjukkan rata-rata load dalam periode:

  • 1 menit;
  • 5 menit;
  • 15 menit.

Load average bukan persentase CPU usage. Nilai tersebut menunjukkan rata-rata jumlah pekerjaan yang sedang aktif atau menunggu untuk mendapatkan resource CPU maupun kondisi tertentu seperti uninterruptible I/O.

Cara Membaca Load Average

Misalnya server memiliki:

4 CPU

dan load average:

0.50, 0.60, 0.55

Nilai tersebut relatif rendah dibandingkan kapasitas empat logical CPU.

Sebaliknya, jika server empat CPU memiliki:

8.00, 7.50, 6.80

maka perlu dilakukan investigasi karena load secara signifikan lebih tinggi daripada jumlah CPU.

Namun, load average tidak boleh dibaca hanya berdasarkan angka absolut. Load tinggi perlu dikaitkan dengan jumlah CPU, CPU utilization, I/O wait, jenis workload, dan kondisi proses yang sedang berjalan.

Load Average Tidak Sama dengan CPU Usage

Ini merupakan salah satu konsep yang sering membingungkan ketika melakukan monitoring Linux.

Server dapat memiliki CPU usage yang tidak terlalu tinggi tetapi load average tetap tinggi jika banyak proses sedang menunggu I/O.

Karena itu, ketika menemukan load tinggi, periksa juga:

  • CPU usage;
  • I/O wait;
  • proses yang sedang berjalan;
  • aktivitas disk;
  • database;
  • network atau service eksternal.

Monitoring RAM dengan free

Untuk memeriksa penggunaan RAM, command yang paling praktis adalah free.

free -h

Opsi -h membuat ukuran memory lebih mudah dibaca manusia.

Contoh output:

               total        used        free      shared  buff/cache   available
Mem:           7.7Gi       2.1Gi       1.2Gi       120Mi       4.4Gi       5.1Gi
Swap:          2.0Gi       128Mi       1.9Gi

Kolom yang penting untuk diperhatikan adalah available.

Memahami Kolom free -h

Beberapa kolom utama pada output free -h adalah:

  • total — total memory yang tersedia untuk sistem.
  • used — memory yang sedang digunakan berdasarkan perhitungan tool tersebut.
  • free — memory yang benar-benar tidak digunakan.
  • shared — memory yang digunakan untuk shared memory tertentu.
  • buff/cache — memory yang digunakan untuk buffer dan filesystem cache.
  • available — perkiraan memory yang tersedia untuk menjalankan aplikasi baru tanpa melakukan swap secara signifikan.

Jangan langsung menyimpulkan server kehabisan RAM hanya karena angka free terlihat kecil. Linux memang memanfaatkan RAM yang tidak digunakan untuk cache agar akses data dapat lebih efisien.

Untuk penilaian kondisi memory, available, swap activity, dan perilaku aplikasi biasanya lebih informatif daripada hanya melihat free.

Monitoring Swap

Swap merupakan ruang pada storage yang dapat digunakan sistem ketika memory fisik menghadapi tekanan memory.

Untuk melihat swap:

free -h

Contoh:

Swap:
total        used        free
2.0Gi        128Mi       1.9Gi

Penggunaan swap tidak selalu berarti server bermasalah. Namun, penggunaan swap yang aktif dan terus meningkat bersama tekanan RAM dapat menjadi tanda bahwa server membutuhkan perhatian.

Melihat Detail Memory dengan /proc/meminfo

Linux menyediakan informasi memory yang lebih detail melalui:

cat /proc/meminfo

Untuk melihat beberapa informasi awal:

head -n 20 /proc/meminfo

Informasi tersebut berguna ketika membutuhkan detail memory yang lebih rendah level dibandingkan output free.

Monitoring Disk dengan df

Untuk melihat kapasitas filesystem, gunakan:

df -h

Contoh:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        80G   52G   25G  68% /
tmpfs           3.9G     0  3.9G   0% /dev/shm

Kolom yang penting:

  • Size — kapasitas filesystem.
  • Used — ruang yang sudah digunakan.
  • Avail — ruang yang tersedia.
  • Use% — persentase penggunaan.
  • Mounted on — lokasi filesystem dipasang.

Jika filesystem root mendekati penuh, lakukan investigasi sebelum aplikasi mulai mengalami error.

Mengapa Disk Penuh Bisa Menjadi Masalah?

Disk yang penuh dapat menyebabkan berbagai masalah, misalnya:

  • aplikasi tidak dapat membuat file baru;
  • log tidak dapat ditulis;
  • database mengalami masalah ketika membutuhkan ruang tambahan;
  • upload file gagal;
  • temporary file tidak dapat dibuat;
  • deployment gagal.

Karena itu, disk usage perlu dimonitor secara berkala, terutama pada server yang menghasilkan banyak log, backup, upload, atau file temporary.

Mencari Direktori yang Menghabiskan Disk dengan du

Jika df -h menunjukkan disk hampir penuh, langkah berikutnya adalah mencari direktori yang menggunakan banyak ruang.

Gunakan:

sudo du -sh /* 2>/dev/null

Untuk memeriksa direktori tertentu:

du -sh /var/* 2>/dev/null

Contohnya, direktori /var sering menjadi tempat yang perlu diperiksa karena dapat berisi log, cache, database, dan data service lainnya.

Mencari File Berukuran Besar

Jika ingin menemukan file besar, gunakan find.

Contoh mencari file lebih besar dari 1 GB:

sudo find / -type f -size +1G -exec ls -lh {} \; 2>/dev/null

Gunakan command tersebut dengan hati-hati karena pencarian pada seluruh filesystem dapat membutuhkan waktu dan menghasilkan banyak output.

Setelah menemukan file besar, jangan langsung menghapusnya. Pastikan terlebih dahulu file tersebut memang aman untuk dihapus.

Monitoring Direktori /var/log

Log merupakan salah satu sumber penggunaan disk yang sering berkembang seiring waktu.

Periksa ukuran direktori log:

sudo du -sh /var/log

Untuk melihat direktori terbesar:

sudo du -h /var/log | sort -h | tail -n 20

Jangan menghapus file log secara manual tanpa memahami mekanisme logging dan log rotation yang digunakan sistem atau aplikasi.

Monitoring Disk I/O dengan iostat

Disk capacity dan disk performance merupakan dua hal yang berbeda.

df -h menunjukkan kapasitas filesystem, tetapi tidak menunjukkan secara detail seberapa sibuk perangkat storage.

Untuk monitoring I/O, salah satu tool yang berguna adalah iostat.

Tool tersebut biasanya tersedia melalui package sysstat.

sudo apt update
sudo apt install sysstat

Kemudian jalankan:

iostat -xz 1

Command tersebut dapat membantu melihat statistik CPU dan device I/O secara berkala.

Beberapa kolom yang dapat diperhatikan antara lain:

  • r/s — jumlah operasi read per second;
  • w/s — jumlah operasi write per second;
  • rkB/s — throughput read;
  • wkB/s — throughput write;
  • await — waktu tunggu rata-rata operasi I/O;
  • %util — tingkat pemanfaatan device.

Interpretasi statistik I/O sebaiknya dilakukan bersama workload dan karakteristik storage. Satu angka tinggi tidak selalu berarti perangkat mengalami masalah.

Monitoring Proses dengan ps

Command ps dapat digunakan untuk melihat proses yang sedang berjalan.

Contoh:

ps aux

Untuk mencari proses dengan penggunaan CPU terbesar:

ps aux --sort=-%cpu | head -n 10

Untuk melihat proses berdasarkan penggunaan memory:

ps aux --sort=-%mem | head -n 10

Command tersebut sangat berguna ketika ingin mengetahui proses mana yang paling banyak menggunakan resource.

Monitoring Uptime Server

Gunakan:

uptime

Output biasanya berisi:

  • waktu saat ini;
  • berapa lama server telah berjalan;
  • jumlah user yang sedang login;
  • load average.

Contoh:

01:30:15 up 15 days, 4:42, 2 users, load average: 0.30, 0.25, 0.20

uptime merupakan command sederhana tetapi sangat berguna sebagai pemeriksaan awal kondisi server.

Melihat Informasi Resource dengan vmstat

vmstat dapat memberikan gambaran mengenai proses, memory, paging, block I/O, dan CPU.

Contoh:

vmstat 1

Angka 1 berarti statistik diperbarui setiap satu detik.

Tool ini berguna untuk melihat apakah server mengalami tekanan CPU, memory, atau I/O secara keseluruhan.

Monitoring Network Secara Sederhana

Meskipun fokus utama artikel ini adalah CPU, RAM, disk, dan load average, network juga penting ketika melakukan troubleshooting performa server.

Untuk melihat interface jaringan:

ip -s link

Output dapat memberikan statistik RX dan TX pada masing-masing network interface.

Untuk melihat socket yang sedang digunakan, salah satu command yang dapat digunakan adalah:

ss -tulpn

Command tersebut berguna untuk mengetahui service yang sedang listen pada port tertentu.

Membuat Checklist Monitoring Ubuntu Server

Ketika server terasa lambat, jangan hanya menjalankan satu command. Gunakan checklist sederhana.

1. Periksa Load Average

uptime

2. Periksa CPU

top

3. Periksa RAM dan Swap

free -h

4. Periksa Disk

df -h

5. Cari Direktori Besar

sudo du -sh /var/* 2>/dev/null

6. Cari Proses dengan CPU Tinggi

ps aux --sort=-%cpu | head -n 10

7. Cari Proses dengan RAM Tinggi

ps aux --sort=-%mem | head -n 10

Dengan tujuh pemeriksaan tersebut, administrator sudah dapat memperoleh gambaran awal mengenai kondisi server.

Contoh Analisis Server Lambat

Misalnya pengguna melaporkan bahwa website terasa lambat.

Langkah pertama adalah memeriksa load:

uptime

Jika load tinggi, lanjutkan dengan:

top

Perhatikan apakah CPU sedang penuh atau terdapat proses tertentu yang menggunakan resource secara tidak normal.

Kemudian periksa memory:

free -h

Jika RAM sangat tertekan atau swap aktif secara signifikan, periksa proses menggunakan:

ps aux --sort=-%mem | head -n 10

Selanjutnya periksa disk:

df -h

Jika disk hampir penuh, cari direktori besar:

sudo du -sh /var/* 2>/dev/null

Dengan pendekatan tersebut, troubleshooting menjadi lebih terarah daripada langsung melakukan restart server.

CPU Tinggi Belum Tentu Masalah

CPU usage tinggi tidak selalu berarti server mengalami masalah.

Misalnya server memang sedang menjalankan:

  • proses video encoding;
  • backup;
  • build aplikasi;
  • data processing;
  • batch job.

Dalam kondisi tersebut, penggunaan CPU tinggi mungkin memang sesuai dengan workload.

Yang perlu diperhatikan adalah apakah penggunaan tersebut menyebabkan latency meningkat, request gagal, proses menumpuk, atau resource lain ikut mengalami tekanan.

RAM Tinggi Belum Tentu Masalah

Sama seperti CPU, penggunaan RAM yang tinggi tidak otomatis berarti server bermasalah.

Linux menggunakan memory untuk cache dan buffer agar sistem dapat bekerja lebih efisien.

Karena itu, ketika memeriksa RAM, jangan hanya melihat persentase memory yang digunakan. Perhatikan juga:

  • available memory;
  • swap usage;
  • swap activity;
  • proses yang menggunakan RAM besar;
  • apakah aplikasi mengalami out-of-memory.

Disk Usage dan Disk Performance Berbeda

Server dapat memiliki disk dengan kapasitas masih banyak tetapi tetap mengalami masalah performa disk.

Contohnya:

Disk capacity: 30% used
Disk I/O: sangat tinggi

Sebaliknya, disk dapat memiliki penggunaan kapasitas tinggi tetapi performanya masih normal.

Karena itu, gunakan:

df -h

untuk kapasitas filesystem dan tool seperti:

iostat -xz 1

untuk membantu menganalisis aktivitas I/O.

Monitoring Secara Berkala dengan Script

Jika ingin melakukan pemeriksaan sederhana secara otomatis, Anda dapat membuat Bash script.

#!/bin/bash

echo "===== SERVER MONITORING ====="
echo

echo "Hostname:"
hostname

echo
echo "Uptime:"
uptime

echo
echo "Memory:"
free -h

echo
echo "Disk:"
df -h /

echo
echo "Top CPU Processes:"
ps aux --sort=-%cpu | head -n 6

echo
echo "Top Memory Processes:"
ps aux --sort=-%mem | head -n 6

Simpan misalnya sebagai:

/home/ubuntu/scripts/server-monitor.sh

Kemudian buat executable:

chmod +x /home/ubuntu/scripts/server-monitor.sh

Jalankan:

/home/ubuntu/scripts/server-monitor.sh

Script sederhana seperti ini dapat dikembangkan menjadi monitoring yang lebih lengkap atau dijalankan menggunakan Cron sesuai kebutuhan.

Monitoring Manual vs Monitoring Otomatis

Command seperti top, free, dan df sangat berguna untuk manual troubleshooting.

Namun, jika server production harus dipantau secara terus-menerus, monitoring manual tidak cukup.

Sistem monitoring otomatis dapat membantu menyimpan metric dari waktu ke waktu dan memberikan alert ketika kondisi tertentu terjadi.

Contohnya:

  • CPU berada pada level tinggi dalam periode tertentu;
  • disk usage melewati threshold;
  • memory pressure meningkat;
  • service berhenti;
  • load average tidak normal;
  • server tidak dapat diakses.

Dengan monitoring historis, administrator juga dapat melihat pola penggunaan resource dan melakukan capacity planning.

Jangan Hanya Mengandalkan Satu Metric

Kesalahan umum dalam monitoring server adalah mengambil keputusan hanya berdasarkan satu angka.

Contohnya:

CPU = 90%

Angka tersebut belum menjelaskan seluruh kondisi server.

Periksa juga:

Load Average
RAM
Swap
Disk I/O
Processes
Network
Application logs

Dengan menggabungkan beberapa metric, penyebab masalah dapat dianalisis dengan lebih akurat.

Perintah Penting untuk Monitoring Ubuntu Server

KebutuhanCommand
Monitoring CPU dan prosestop
Monitoring interaktifhtop
Monitoring RAMfree -h
Monitoring disk capacitydf -h
Mencari direktori besardu -sh
Load averageuptime
Daftar prosesps aux
CPU dan memory process rankingps aux --sort
CPU dan I/O statistikvmstat
Disk I/Oiostat
Network interfaceip -s link

Kesimpulan

Monitoring CPU, RAM, disk, dan load average merupakan kemampuan dasar yang penting ketika mengelola Ubuntu Server.

Untuk pemeriksaan cepat, beberapa command yang paling penting untuk diingat adalah:

top
free -h
df -h
du -sh
uptime
ps aux

Gunakan top atau htop untuk melihat proses dan penggunaan CPU, free -h untuk memeriksa RAM dan swap, df -h untuk mengetahui kapasitas filesystem, serta du untuk mencari direktori yang menghabiskan ruang.

Untuk memahami load average, gunakan:

uptime

Sementara itu, ketika membutuhkan analisis disk I/O yang lebih detail, iostat dapat digunakan bersama package sysstat.

Hal terpenting dalam monitoring bukan mencari satu angka yang terlihat tinggi, tetapi memahami hubungan antara CPU, RAM, disk, load average, proses, dan workload aplikasi.

Dengan pemeriksaan yang sistematis, administrator dapat lebih cepat menentukan apakah server benar-benar mengalami bottleneck dan resource mana yang menjadi penyebabnya.