Saat sebuah server terasa lambat, refleks pertama hampir selalu sama: masuk lewat SSH, lalu menjalankan top atau htop. Kedua alat itu menjawab dengan cepat — proses mana yang paling banyak memakan CPU, berapa memori yang masih bebas, seberapa berat beban rata-rata sistem.

Masalahnya muncul ketika keluhan datang terlambat. Pengunjung melaporkan website tidak bisa dibuka pukul tiga dini hari, dan Anda baru membaca laporan itu pukul delapan pagi. Begitu top dijalankan, semua angka sudah kembali tenang. Pertanyaan "apa yang sebenarnya terjadi lima jam lalu?" menggantung tanpa jawaban.

Di sinilah perintah sar mengambil peran yang tidak bisa diisi alat lain. SAR adalah singkatan dari System Activity Reporter, sebuah perintah di Linux yang bukan hanya menampilkan kondisi sistem saat ini, tetapi juga merekam dan menyimpan riwayatnya. Dengan sar, pertanyaan tentang pukul tiga dini hari bisa dijawab pukul delapan pagi.

SAR Adalah: Kepanjangan dan Arti Sebenarnya

Secara harfiah, SAR artinya pelapor aktivitas sistem. Ia mengambil angka-angka penghitung (counter) yang dipelihara kernel Linux — pemakaian CPU, memori, aktivitas disk, lalu lintas jaringan, antrian proses — lalu menyajikannya dalam bentuk tabel per satuan waktu. Bagian terpentingnya: angka itu juga ditulis ke berkas harian, sehingga tetap bisa dibaca berhari-hari kemudian.

Perintah ini bukan program yang berdiri sendiri. sar datang bersama paket sysstat, kumpulan alat pemantau performa untuk Linux yang dikembangkan Sébastien Godard di bawah lisensi GPL versi 2, dengan hak cipta yang membentang sejak 1999. Versi terbarunya saat artikel ini ditulis adalah sysstat 12.7.9, dirilis 7 Desember 2025.

Dalam satu paket yang sama, Anda juga mendapatkan beberapa alat pendamping:

  1. sadc: pengumpul data yang bekerja di belakang layar dan menulis angka mentah ke berkas.
  2. sadf: pengubah format, memindahkan data dari berkas biner ke CSV, XML, JSON, atau grafik SVG.
  3. iostat: laporan CPU dan aktivitas baca-tulis perangkat penyimpanan.
  4. mpstat: statistik per inti prosesor.
  5. pidstat: statistik per proses, termasuk pemakaian CPU, memori, dan I/O tiap proses.

Satu catatan sebelum melanjutkan. Pertanyaan apa itu SAR tidak selalu bermuara ke Linux, karena singkatan yang sama dipakai di banyak bidang lain. Di antaranya pencarian dan penyelamatan (search and rescue), laju serap radiasi perangkat elektronik (specific absorption rate), serta laporan transaksi mencurigakan di sektor keuangan (suspicious activity report). Artikel ini khusus membahas SAR dalam arti System Activity Reporter di Linux.

Beda sar dengan top, htop, dan vmstat

Perbedaan mendasarnya bukan soal kelengkapan angka, melainkan soal waktu. top, htop, dan vmstat adalah alat pemantau langsung: mereka menampilkan keadaan detik ini, memperbaruinya setiap beberapa detik, dan tidak menyimpan apa pun setelah Anda menutupnya. Begitu terminal ditutup, informasinya hilang.

sar bekerja dari sisi berlawanan. Ia memang bisa dipakai untuk memantau langsung, tetapi nilai utamanya ada pada berkas riwayat yang diisi terus-menerus di latar belakang. Anda tidak perlu sedang menonton layar saat masalah terjadi — cukup membaca catatannya setelahnya.

Keduanya bukan pesaing, dan sebaiknya tidak dipilih salah satu saja. Pembagian peran yang masuk akal seperti ini:

Diagram dua panel: Sekarang berisi terminal dan meteran, Riwayat berisi grafik sepanjang garis waktu.Diagram dua panel: Sekarang berisi terminal dan meteran, Riwayat berisi grafik sepanjang garis waktu.

  1. Masalah sedang berlangsung sekarang: pakai htop atau top. Anda butuh nama proses, PID, dan kemampuan mematikan proses saat itu juga.
  2. Masalah sudah lewat: pakai sar. Hanya alat ini yang bisa menunjukkan bahwa pukul 03.10 pemakaian CPU melonjak ke 90 persen selama dua puluh menit.
  3. Mencari pola berulang: pakai sar. Lonjakan yang muncul tiap hari pada jam yang sama biasanya baru terlihat setelah membandingkan data beberapa hari.

Bagaimana sar Menyimpan Riwayat: sadc dan Berkas Harian

Yang benar-benar mengumpulkan data bukan sar, melainkan sadc (system activity data collector). Program inilah yang membaca penghitung kernel dan menuliskannya ke berkas. sadc sendiri tidak berjalan terus-menerus; ia dipanggil secara berkala oleh skrip pembungkus bernama sa1, yang dijadwalkan lewat cron atau systemd timer. Bawaan jadwalnya adalah setiap 10 menit.

Hasilnya disimpan sebagai satu berkas per hari, dinamai saDD (dengan DD sebagai tanggal) atau saYYYYMMDD. Lokasinya berbeda antar keluarga distribusi, dan ini sering menjadi sumber kebingungan:

  • RHEL, CentOS, Rocky, AlmaLinux: /var/log/sa/
  • Debian dan Ubuntu: /var/log/sysstat/

Alur lengkapnya bisa digambarkan seperti berikut:

Diagram empat tahap: systemd timer atau cron memanggil sadc, sadc menulis berkas harian saDD, lalu sar membacanya.Diagram empat tahap: systemd timer atau cron memanggil sadc, sadc menulis berkas harian saDD, lalu sar membacanya.

Karena berkasnya berumur satu hari, sar yang dijalankan tanpa argumen apa pun akan membaca data hari ini saja. Untuk melihat hari lain, Anda perlu menunjuk berkasnya secara eksplisit — dibahas di bagian selanjutnya.

Memasang sysstat dan Menyalakan Pengumpulan Data

Bagian ini yang paling sering membuat orang salah menyimpulkan. Memasang sysstat tidak otomatis berarti riwayat mulai terkumpul, khususnya di Debian dan Ubuntu. Ikuti keempat langkah di bawah sampai selesai.

Langkah #1: Pasang paket sysstat

Untuk Debian dan Ubuntu, perbarui daftar paket lalu pasang sysstat:

Bash
sudo apt update
sudo apt install sysstat

Untuk RHEL, CentOS Stream, Rocky Linux, dan AlmaLinux:

Bash
sudo dnf install sysstat

Langkah #2: Nyalakan pengumpulan data

Di Debian dan Ubuntu, pengumpulan data tidak aktif secara bawaan. Buka berkas konfigurasinya:

Bash
sudo nano /etc/default/sysstat

Ubah baris ENABLED="false" menjadi:

Bash
ENABLED="true"

Langkah ini yang paling sering terlewat. Gejalanya khas: perintah sar berjalan tanpa keluhan, tetapi membalas Cannot open /var/log/sysstat/sa30: No such file or directory. Artinya sar ada, sementara berkas riwayat yang hendak dibacanya tidak pernah dibuat.

Langkah #3: Aktifkan dan jalankan service

Setelah konfigurasi diubah, aktifkan service agar ikut hidup setiap kali server dinyalakan ulang:

Bash
sudo systemctl enable --now sysstat

Pada sistem modern, perintah ini mengaktifkan dua timer: sysstat-collect.timer yang memanggil pengumpul data secara berkala, dan sysstat-summary.timer yang merangkum data harian.

Langkah #4: Pastikan datanya benar-benar masuk

Tunggu sekitar sepuluh menit, lalu periksa isi direktori datanya:

Bash
ls -lh /var/log/sysstat/

Kalau sudah muncul berkas bernama sa diikuti tanggal hari ini, pengumpulan berjalan. Sebagai konfirmasi terakhir, jalankan sar -u dan pastikan ada baris data, bukan pesan kesalahan.

Kalau Anda hanya memasang sysstat saat masalah sedang berlangsung, berkas riwayatnya masih kosong dan sar tidak bisa menolong untuk kejadian itu. Alat ini bekerja seperti kamera pengawas: berguna karena sudah dipasang sebelum peristiwanya terjadi. Menjadikannya bagian dari penyiapan awal server adalah kebiasaan yang murah dan terbayar di kemudian hari.

Membaca Laporan CPU dengan sar -u

Laporan yang paling sering dibuka adalah pemakaian CPU, lewat opsi -u. Jalankan tanpa argumen tambahan untuk membaca seluruh data hari ini:

Bash
sar -u

Keluarannya berbentuk tabel dengan satu baris per interval pengumpulan:

Code
Linux 5.15.0-119-generic (web-01)   30/07/2026   _x86_64_   (2 CPU)

00:00:01     CPU     %user     %nice   %system   %iowait    %steal     %idle
00:10:01     all      4.12      0.00      1.87      0.35      0.21     93.45
00:20:01     all      3.98      0.00      1.75      0.28      0.19     93.80
00:30:01     all     41.06      0.00     12.44     18.72      0.24     27.54
Average:     all     16.39      0.00      5.35      6.45      0.21     71.60

Enam kolom itu punya arti operasional yang berbeda, dan salah membacanya berarti salah menyimpulkan penyebab masalah:

  1. %user: porsi waktu CPU yang dipakai program Anda sendiri — PHP, MySQL, Node.js, dan sebagainya. Angka tinggi di kolom ini berarti aplikasi memang sedang bekerja keras, bukan berarti ada kerusakan.
  2. %nice: sama dengan %user, tetapi khusus proses yang prioritasnya sudah direndahkan. Biasanya kecil atau nol.
  3. %system: waktu yang dipakai kernel, misalnya untuk menangani jaringan atau baca-tulis berkas. Kalau nilainya menyaingi %user, beban kerjanya cenderung banyak berurusan dengan sistem, bukan dengan perhitungan aplikasi.
  4. %iowait: waktu ketika CPU menganggur karena masih menunggu permintaan baca-tulis disk selesai. Ini penanda paling jelas bahwa penyimpanan menjadi penghambat, bukan prosesor.
  5. %steal: waktu ketika CPU virtual Anda dipaksa menunggu karena hypervisor sedang melayani mesin virtual lain. Kolom ini dibahas tersendiri di bawah.
  6. %idle: sisa waktu ketika CPU tidak melakukan apa-apa.

Pada contoh di atas, dua interval pertama tenang dan interval ketiga bermasalah. Yang menarik bukan %user yang naik ke 41 persen, melainkan %iowait yang melompat ke 18,72 persen. Artinya hampir seperlima waktu CPU terbuang menunggu disk. Kalau CPU yang Anda tambah kapasitasnya sementara penyebabnya ada di penyimpanan, masalahnya tidak akan hilang.

Untuk melihat beban tiap inti prosesor secara terpisah — berguna saat satu inti jenuh sementara sisanya santai — tambahkan opsi -P:

Bash
sar -u -P ALL

Perlu diperhatikan bahwa sar tidak terbatas pada data yang sudah tersimpan. Dua angka di belakang perintah berarti interval dan jumlah pengulangan, sehingga sar juga bisa dipakai memantau langsung. Perintah berikut menampilkan pemakaian CPU setiap 1 detik sebanyak 5 kali:

Bash
sar -u 1 5

Kalau jumlah pengulangannya tidak diisi, laporan berjalan terus sampai Anda menghentikannya. Ada satu nilai khusus yang berguna: interval 0 menampilkan rata-rata sejak server terakhir dinyalakan, bukan data per satuan waktu.

Satu lagi yang memudahkan mata, opsi -h menyetel keluaran menjadi lebih ringkas sekaligus mengubah satuan besar menjadi bentuk yang mudah dibaca seperti 1.0k atau 1.2M:

Bash
sar -r -h

%steal: Membuktikan VPS Anda Berbagi CPU Terlalu Banyak

Dari semua kolom sar -u, %steal adalah yang paling sering diabaikan padahal paling berguna bagi pengguna server virtual. Definisinya: persentase waktu ketika CPU virtual Anda menunggu secara terpaksa, karena hypervisor sedang mengalihkan prosesor fisik untuk melayani mesin virtual lain.

Angka ini hanya muncul di mesin virtual. Pada server fisik tanpa tetangga, %steal selalu nol karena tidak ada pihak lain yang perlu dilayani. Begitu nilainya konsisten besar di sebuah VPS, maknanya jelas: prosesor fisik di baliknya diperebutkan lebih banyak pengguna daripada yang bisa dilayani dengan nyaman.

Diagram satu CPU fisik dipakai bersama tiga mesin virtual; satu VM bergaris putus-putus bertanda Menunggu.Diagram satu CPU fisik dipakai bersama tiga mesin virtual; satu VM bergaris putus-putus bertanda Menunggu.

Cara membaca angkanya secara praktis:

  1. Di bawah 2 persen: normal. Sedikit perebutan resource adalah harga wajar dari virtualisasi.
  2. Sekitar 5 persen dan berulang: mulai layak dicatat. Pola yang muncul pada jam-jam sibuk yang sama patut ditanyakan ke penyedia.
  3. 10 persen atau lebih, berkelanjutan berjam-jam: sepersepuluh waktu CPU yang Anda bayar tidak Anda terima. Beban kerja yang sensitif terhadap waktu respons akan terasa tersendat.

Di sinilah sar memberi sesuatu yang tidak bisa diberikan top: bukti berbentuk riwayat. Keluhan "VPS saya terasa lambat" mudah dibalas dengan permintaan data. Keluhan yang disertai dua jam data %steal di atas 20 persen adalah percakapan yang berbeda:

Bash
sar -u -s 02:00:00 -e 04:00:00
Code
00:00:01     CPU     %user     %nice   %system   %iowait    %steal     %idle
02:10:01     all     18.44      0.00      6.12      1.03     23.87     50.54

Baris itu menunjukkan CPU menganggur setengah waktu, tetapi hampir seperempat waktunya dirampas hypervisor. Beban kerja Anda sendiri hanya memakai sekitar 18 persen. Menaikkan spesifikasi tidak akan memperbaiki keadaan seperti ini, karena batasannya bukan pada porsi Anda.

Kalau pola tersebut menetap dan penyedia tidak memberi penjelasan memadai, pilihannya ada dua. Pertama, berpindah ke VPS Indonesia yang alokasi resource-nya dinyatakan terang. Kedua, untuk beban kerja yang benar-benar tidak boleh terganggu tetangga, memakai dedicated server — di mesin tanpa tetangga, %steal hilang dari perbincangan.

Laporan Memori, Disk, dan Jaringan yang Paling Sering Dipakai

CPU hanya satu sisi. Berikut opsi lain yang paling sering terpakai sehari-hari, masing-masing dengan kolom kuncinya.

Memori, dengan sar -r. Menampilkan pemakaian memori beserta buffer dan cache:

Code
00:00:01    kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
00:10:01       142380    823440   1795320     92.66     38124    712608   2410336     59.74

Kolom kbmemfree yang kecil sering disalahartikan sebagai memori habis. Perhatikan kbavail: angka ini jauh lebih besar karena memperhitungkan cache yang bisa direbut kembali kapan saja saat aplikasi membutuhkannya. Linux memang sengaja memakai memori kosong sebagai cache, dan itu bukan pemborosan. Bacalah kbavail, bukan kbmemfree, saat menilai apakah RAM benar-benar kurang. Kolom %commit menunjukkan total memori yang dibutuhkan beban kerja saat ini dibandingkan RAM ditambah swap; nilai di atas 100 persen berarti sistem menjanjikan lebih dari yang dimilikinya.

Aktivitas disk, dengan sar -d -p. Opsi -p membuat nama perangkat ditampilkan apa adanya, bukan berupa nomor. Kolom yang perlu diperhatikan: await (rata-rata waktu tunggu tiap permintaan dalam milidetik), aqu-sz (panjang antrian rata-rata), dan %util (persentase waktu perangkat sibuk). Kombinasi %util mendekati 100 dengan await puluhan milidetik adalah gambaran penyimpanan yang sudah tidak sanggup mengejar. Ambang wajarnya bergantung pada jenis penyimpanan: pada hard disk mekanik, await belasan milidetik masih tergolong normal karena kepala baca perlu bergerak, sementara pada SSD angka dua digit sudah termasuk lambat.

Ringkasan baca-tulis, dengan sar -b. Lebih sederhana daripada -d: tps adalah jumlah transaksi per detik, dipecah menjadi rtps untuk baca dan wtps untuk tulis, sementara bread/s dan bwrtn/s menunjukkan jumlah blok per detik.

Jaringan, dengan sar -n DEV. Menampilkan rxpck/s dan txpck/s (paket masuk dan keluar per detik), serta rxkB/s dan txkB/s (kilobyte per detik). Angka kilobyte inilah yang sebanding dengan throughput nyata koneksi Anda — berbeda dari bandwidth, yang merupakan kapasitas maksimum di atas kertas. Kolom %ifutil memperkirakan seberapa penuh kapasitas antarmuka terpakai.

Kesalahan jaringan, dengan sar -n EDEV. Kata kunci DEV melaporkan lalu lintas yang berhasil, sementara EDEV melaporkan yang gagal. Kolom rxdrop/s dan txdrop/s menunjukkan paket yang dijatuhkan, rxerr/s dan txerr/s paket yang bermasalah, dan coll/s tabrakan pengiriman. Laporan ini sering terlewat padahal penting: website yang terasa tersendat tanpa CPU maupun disk yang sibuk kadang penyebabnya paket yang berjatuhan di antarmuka jaringan. Selain DEV dan EDEV, opsi -n juga menerima kata kunci lain seperti TCP, ETCP, SOCK, IP, dan UDP.

Beban dan antrian, dengan sar -q. Kolom runq-sz menunjukkan jumlah proses yang siap jalan tetapi masih menunggu jatah CPU, sementara plist-sz adalah total proses dan thread di sistem. Tiga kolom berikutnya, ldavg-1, ldavg-5, dan ldavg-15, adalah beban rata-rata satu, lima, dan lima belas menit.

Tekanan resource, dengan sar -q PSI. Versi sysstat yang lebih baru menambahkan laporan pressure stall information (informasi kemacetan resource), sebuah mekanisme kernel Linux yang mengukur berapa persen waktu pekerjaan tertunda karena menunggu CPU, disk, atau memori. Angkanya disajikan dalam jendela pengamatan 10, 60, dan 300 detik — misalnya %scpu-10, %sio-60, dan %smem-300. Ini jawaban atas kelemahan lama beban rata-rata, yang menunjukkan ada antrian tetapi tidak menunjukkan seberapa besar dampaknya. Kolom berawalan %f seperti %fio dan %fmem menandai kemacetan total, yaitu saat semua pekerjaan berhenti menunggu, dan nilainya yang tidak nol selalu lebih serius daripada kolom %s yang sepadan.

Swapping, dengan sar -W. Hanya dua kolom, pswpin/s dan pswpout/s, yaitu jumlah halaman memori yang dipindahkan masuk dan keluar swap per detik. Nilai yang terus-menerus di atas nol adalah tanda memori fisik kurang, dan biasanya diikuti melambatnya keseluruhan sistem.

Kalau ingin melihat semuanya sekaligus, opsi -A menampilkan seluruh statistik yang tersedia. Keluarannya sangat panjang, jadi salurkan ke less atau ke sebuah berkas.

Ringkasan Opsi sar yang Perlu Diingat

Opsi sar cukup banyak, tetapi yang benar-benar dipakai sehari-hari hanya segenggam. Tabel berikut bisa dijadikan acuan cepat, lengkap dengan kolom yang paling menentukan di tiap laporan.

PerintahMenampilkanKolom paling menentukan
sar -uPemakaian CPU%iowait, %steal
sar -u -P ALLPemakaian CPU tiap inti%idle per inti
sar -rMemorikbavail, %commit
sar -WPerpindahan halaman ke swappswpin/s, pswpout/s
sar -d -pAktivitas tiap perangkat diskawait, %util
sar -bRingkasan baca-tulis disktps
sar -n DEVLalu lintas jaringanrxkB/s, txkB/s
sar -n EDEVKesalahan dan paket jatuhrxdrop/s, txdrop/s
sar -qBeban dan panjang antrianrunq-sz, ldavg-5
sar -q PSIKemacetan resource%scpu-60, %fio-60
sar -ASeluruh statistik sekaligus

Empat opsi lain bersifat pelengkap dan bisa digabungkan dengan semua perintah di atas. Gunakan -f untuk menunjuk berkas hari lain, -s dan -e untuk mempersempit rentang jam, serta -h untuk keluaran yang lebih mudah dibaca.

Membaca Data Hari-Hari Sebelumnya

Inilah kemampuan yang membuat sysstat layak dipasang sejak awal. Untuk membaca berkas hari lain, tunjuk berkasnya dengan opsi -f. Contoh berikut membaca data tanggal 28 di server Debian atau Ubuntu:

Bash
sar -u -f /var/log/sysstat/sa28

Membaca seluruh hari biasanya berlebihan. Persempit ke jam kejadian dengan -s (waktu mulai) dan -e (waktu akhir):

Bash
sar -u -f /var/log/sysstat/sa28 -s 02:30:00 -e 04:00:00

Alur penyelidikan yang praktis untuk insiden dini hari kira-kira begini. Mulai dari sar -u pada rentang jam kejadian untuk melihat apakah CPU yang jenuh, atau justru %iowait dan %steal yang melonjak. Kalau CPU ternyata santai, lanjutkan ke sar -r untuk memeriksa memori dan sar -W untuk melihat apakah sistem sampai melakukan swapping. Kalau %iowait yang tinggi, pindah ke sar -d -p pada rentang yang sama untuk menemukan perangkat penyimpanan mana yang tersendat. Rangkaian ini biasanya sudah cukup memisahkan mana yang gejala dan mana yang penyebab.

Diagram alur diagnosis dari sar -u: cabang iowait ke sar -d -p, steal ke bukti penyedia, user ke sar -r.Diagram alur diagnosis dari sar -u: cabang iowait ke sar -d -p, steal ke bukti penyedia, user ke sar -r.

Umur simpan datanya tidak selamanya. Berapa hari berkas disimpan diatur variabel HISTORY di /etc/sysstat/sysstat untuk Debian dan Ubuntu, atau /etc/sysconfig/sysstat untuk keluarga RHEL. Nilai bawaannya 28 hari, dan berkas yang lebih tua dihapus skrip sa2. Untuk menyimpan riwayat satu tahun, ubah nilainya:

Bash
HISTORY=365

Ada juga variabel COMPRESSAFTER yang menentukan setelah berapa hari berkas lama dikompresi, sehingga riwayat panjang tidak memakan ruang disk berlebihan.

Interval pengumpulan sepuluh menit juga bisa dipadatkan kalau Anda memerlukan resolusi lebih halus:

Bash
sudo systemctl edit sysstat-collect.timer

Lalu isi berkas penimpa (override) dengan jadwal setiap lima menit:

Code
[Timer]
OnCalendar=
OnCalendar=*:00/5

Baris OnCalendar= yang kosong diperlukan untuk mengosongkan jadwal bawaan sebelum jadwal baru diberlakukan. Pada sistem yang masih memakai cron, aturlah /etc/cron.d/sysstat.

Mengekspor Laporan ke Grafik, CSV, dan JSON

Membaca tabel angka di terminal ada batasnya, terutama saat Anda perlu menunjukkan temuan kepada orang lain. Untuk itu tersedia sadf, yang membaca berkas biner yang sama lalu mengeluarkannya dalam format lain.

Untuk membuat grafik SVG pemakaian CPU sepanjang hari ini:

Bash
sadf -g /var/log/sysstat/sa$(date +%d) -- -u > cpu-hari-ini.svg

Perhatikan dua tanda hubung di tengah perintah. Opsi sebelum -- ditujukan untuk sadf, sementara opsi sesudahnya diteruskan ke sar. Berkas SVG hasilnya bisa langsung dibuka di browser.

Untuk mengolah data lebih lanjut di spreadsheet atau skrip, gantilah format keluarannya. Opsi -d menghasilkan keluaran berpemisah yang mudah diubah menjadi CSV, sedangkan -j menghasilkan JSON:

Bash
sadf -j /var/log/sysstat/sa28 -- -r > memori-28.json

Keluaran JSON ini yang biasanya dipakai kalau Anda ingin memasukkan data historis ke sistem pemantauan atau papan pantau sendiri.

Kelemahan sar dan Hal yang Perlu Anda Pertimbangkan

sar bukan alat serba bisa, dan mengetahui batasnya mencegah kesimpulan yang salah.

  1. Interval sepuluh menit melewatkan lonjakan pendek. Beban yang menjenuhkan CPU selama tiga puluh detik akan terlarut dalam rata-rata sepuluh menit dan tampak hampir tidak berbekas. Kalau masalah yang Anda kejar berdurasi detik, padatkan interval pengumpulan atau pakai alat lain yang memantau lebih rapat.
  2. sar tahu apa yang terjadi, bukan siapa penyebabnya. Laporannya bersifat sistem, bukan per proses. Ia bisa menunjukkan CPU jenuh pukul 03.10, tetapi tidak menyebut MySQL atau cron job mana yang melakukannya. Untuk itu diperlukan pidstat dari paket yang sama, dan pengumpulan datanya perlu diatur terpisah.
  3. Berkas datanya biner dan terikat versi. Berkas sa tidak bisa dibaca sysstat versi yang berbeda jauh. Setelah upgrade distribusi, sar -f pada berkas lama bisa membalas Invalid system activity file atau menyatakan versi sysstat saat ini tidak mengenali formatnya. Periksa versi pembuat berkas dengan sadf -H berkas | grep sysstat, dan gunakan sadf untuk mengonversi berkas lama ke format terkini.
  4. Riwayat panjang memakan ruang disk. Menyetel HISTORY ke satu tahun pada server dengan banyak perangkat dan antarmuka jaringan akan terasa. Manfaatkan COMPRESSAFTER dan sesuaikan angkanya dengan kapasitas yang ada.
  5. Tidak ada peringatan otomatis. sar mencatat, tidak menegur. Ia tidak akan mengirim notifikasi saat CPU melewati ambang tertentu. Untuk itu Anda tetap membutuhkan sistem pemantauan yang punya mekanisme alarm; sar melengkapinya dengan kedalaman data lokal, bukan menggantikannya.

Selain itu, sar hanya melihat dari dalam sistem operasi. Ia tidak bisa memastikan apakah website benar-benar dapat diakses dari luar, atau apakah masalahnya terletak di jaringan penyedia. Untuk gambaran utuh, catatannya perlu dibaca bersama log aplikasi dan web server pada rentang waktu yang sama.

Pertanyaan Seputar sar

Kenapa muncul pesan sar: command not found? Paket sysstat belum terpasang. Pasang dengan sudo apt install sysstat di Debian dan Ubuntu, atau sudo dnf install sysstat di keluarga RHEL.

Kenapa muncul Cannot open /var/log/sysstat/sa30? Perintahnya sudah ada, tetapi berkas riwayatnya belum pernah dibuat. Di Debian dan Ubuntu, penyebab paling umum adalah ENABLED="false" di /etc/default/sysstat yang belum diubah menjadi "true". Setelah diubah, aktifkan service lalu tunggu satu interval pengumpulan.

Apakah sysstat membebani server? Sangat ringan. sadc hanya berjalan sesaat setiap sepuluh menit untuk membaca penghitung yang sudah dipelihara kernel, lalu berhenti. Biaya sesungguhnya ada pada ruang disk untuk berkas riwayat, bukan pada CPU.

Bisakah sar memantau beberapa server sekaligus? Tidak secara langsung — sar selalu membaca data dari mesin tempat ia dijalankan. Yang bisa dilakukan adalah mengumpulkan berkas dari beberapa server ke satu tempat, lalu membacanya dengan -f, atau mengekspornya ke JSON lewat sadf untuk diolah terpusat.

Apa bedanya dengan iostat dan mpstat yang satu paket? Ketiganya membaca sumber angka yang sama, tetapi cakupannya berbeda. iostat fokus pada perangkat penyimpanan dan mpstat pada tiap inti prosesor, dan keduanya bekerja pada data langsung. sar mencakup semua kategori sekaligus dan menambahkan kemampuan yang tidak dimiliki keduanya, yaitu membaca riwayat.

Kesimpulan

SAR adalah System Activity Reporter, perintah dari paket sysstat yang menjawab pertanyaan berbeda dari top maupun htop. Bukan "apa yang sedang terjadi", melainkan "apa yang terjadi kemarin dini hari". Kemampuan itu bersumber dari sadc yang menulis penghitung kernel ke berkas harian. Berkas itulah yang kemudian dibaca dengan -f, -s, dan -e saat sebuah insiden perlu ditelusuri.

Nilainya sepenuhnya bergantung pada satu syarat: pengumpulan data sudah dinyalakan sebelum masalah datang. Karena itu memasang sysstat dan mengubah ENABLED menjadi "true" layak masuk daftar penyiapan awal setiap server Linux, bersama pengaturan HISTORY sesuai kebutuhan. Untuk server tunggal yang Anda kelola sendiri, sar sudah memadai sebagai alat penelusuran. Begitu jumlah servernya bertambah dan Anda membutuhkan peringatan otomatis, gabungkan sar dengan sistem pemantauan terpusat. Yang satu memberi alarm, yang lain menyediakan kedalaman data saat alarmnya berbunyi.

Semoga artikel ini membantu.