Misteri Kipas yang Berputar Kencang: Cara Berburu Proses Pemakan CPU di macOS Pakai Terminal

Mac kamu kepanasan dan kipasnya meraung? Skip Activity Monitor, langsung berburu biang keroknya pakai ps, top, dan lsof — tools bawaan macOS, tanpa install apa-apa.

Misteri Kipas yang Berputar Kencang: Cara Berburu Proses Pemakan CPU di macOS Pakai Terminal

Misteri Kipas yang Berputar Kencang: Cara Berburu Proses Pemakan CPU di macOS Pakai Terminal

Pernah nggak sih lagi asyik kerja di depan Mac, terus tiba-tiba suaranya kayak pesawat mau lepas landas? Chassis aluminiumnya anget, baterai tirisnya cepet banget, dan scroll 120Hz yang tadinya mulus jadi patah-patah.

Insting pertama kita biasanya langsung buka Activity Monitor. Tapi jujur aja, GUI itu sering nutupin gambaran lengkapnya — argumen prosesnya kepotong, sub-proses digabung-gabung jadi satu, dan kalau sistemnya lagi sekarat, butuh beberapa detik cuma buat kebuka.

Sebagai developer, terminal itu senjata andalan kita. Di postingan ini, kita bakal bahas cara nyari proses nakal di background pakai tools bawaan macOS — tanpa download aplikasi tambahan, tanpa ribet.


1. Tersangka Utama: Biang Kerok di macOS

Sebelum masuk ke perintahnya, yuk kenalan dulu sama tersangka biasa pas Mac lagi kepanasan:

  1. Browser Helper & Renderer (* Helper (Renderer) / GPU) Browser modern kayak Brave, Chrome, Arc, sama Safari itu misahin tiap tab dan extension ke proses helper background masing-masing. Satu JavaScript loop yang nakal, canvas WebAssembly yang nggak di-throttle, atau video autoplay bisa diam-diam ngabisin 50–100% satu core CPU.
  2. WindowServer Ini mesin display-nya macOS. Dia yang nyusun setiap piksel di layar kamu. Kalau kamu colok monitor eksternal resolusi tinggi pakai fractional scaling, atau buka puluhan window semi-transparan yang numpuk, CPU WindowServer bisa meledak.
  3. kernel_task Kedengerannya nggak masuk akal emang: pas lihat kernel_task makan 100%+ CPU, itu biasanya bukan biang keroknya — itu gejalanya. macOS sengaja pakai kernel_task buat ngabisin siklus CPU dan ngerem akses pas mesinnya kepanasan, biar hardware-nya nggak rusak. Jadi jangan dilawan; cari dulu apa yang bikin Mac-nya anget.
  4. Daemon & Agent Background yang Kelupaan Supervisor background, CLI agent, server dev lokal, dan agen sinkronisasi (kayak opendirectoryd, mds_stores, atau script Python/Node) bisa nyangkut di loop polling yang nggak ada ujungnya.

2. Toolkit Detektif: Perintah Terminal

Nih perintah-perintah penting buat investigasi apa yang lagi terjadi di balik layar.

Level 1: Snapshot Instan (ps)

Pas Mac-nya lagi ngelag, kamu butuh snapshot yang instan dan ringan, urut dari CPU paling boros:

ps -Ao pid,%cpu,%mem,user,comm -r | head -n 16

Ini maksudnya apa:

  • -A: Ambil semua proses yang jalan, semua user.
  • -o pid,%cpu,%mem,user,comm: Format output biar nunjukin PID (Process ID), Persentase CPU, Persentase Memori, Username, dan Nama Executable.
  • -r: Urutin berdasarkan pemakaian CPU mentah, dari yang paling gede.
  • head -n 16: Ambil header plus 15 proses paling boros.

Level 2: Tampilan Forensik Lengkap (args)

Kadang comm cuma nunjukin nama binary yang generik kayak python, node, atau electron. Biar tau persis script atau tools mana yang lagi jalan, ganti aja comm ke args:

ps -Ao pid,%cpu,%mem,user,args -r | head -n 16
Pro Tip: Ini bakal nunjukin flag command-line, file konfigurasi, dan path script yang nge-spawn proses tersebut. Gini cara kamu nemuin kalau-kalau proses python misterius itu ternyata AirPlay receiver yang nyangkut, atau node kamu lagi jalanin server dev lama yang lupa dimatiin.

Level 3: Radar Langsung (top)

Kalau butuh monitor yang auto-refresh buat nangkep spike yang muncul-muncul:

top -o cpu
  • Nunjukin metrik live CPU, Memory, dan Disk I/O.
  • Update otomatis tiap detik.
  • Tekan q buat keluar.

Level 4: Benchmark Delta 2 Detik

Masalahnya snapshot instan itu bisa kejebak pas proses lagi spike 50ms yang nggak bersalah. Buat ngukur beban yang bener-bener berkelanjutan dalam rentang waktu tertentu, pakai top mode batch non-interaktif:

top -l 2 -s 2 -n 15 -o cpu -stats pid,command,cpu,time,user

Cara kerjanya:

  • -l 2: Jalanin dua sampel logging berurutan.
  • -s 2: Nunggu 2 detik di antara sampel.
  • Sampel kedua nampilin delta CPU exact yang dihitung dalam jendela 2 detik itu.

Kalau satu proses jadi pemakai CPU teratas di dua-duanya snapshot dan di delta 2 detik, itu berarti hog yang beneran — bukan blip random.


3. Investigasi dan Matiin Pelakunya

Begitu kamu nemuin PID (Process ID) yang ngabisin resource, ini langkah-langkahnya.

Intip Detail Lebih Jauh

# Cek hierarki lengkap dan detail proses:
ps -ef | grep <PID>

# Lihat file yang dibuka / port network yang dipakai proses ini:
lsof -p <PID>

lsof ini jagoan banget: proses yang nyangkut di panggilan network biasanya nunjukin socket terbuka ke suatu server remote — petunjuk kuat kalau dia lagi nungguin (atau polling) sesuatu lewat jaringan.

Matiin dengan Sopan vs Paksa

Selalu coba matiin dengan sopan dulu biar prosesnya bisa nyimpen state dan lepas lock dengan bersih:

kill <PID>

Kalau prosesnya macet atau nggak respons, kirim sinyal kill tanpa ampun:

kill -9 <PID>

Dan kalau ternyata dia service launchd yang respawn terus, jangan lupa buru plist-nya:

# Cari tahu apa yang ngelola daemon/agent
launchctl print gui/$(id -u)/<label>

4. Cheat Sheet Cepat / Shell Alias

Biar makin effortless, tambahin alias ini ke ~/.zshrc (atau ~/.bashrc):

# Alias pemakan CPU teratas
alias cpu-hogs="ps -Ao pid,%cpu,%mem,user,args -r | head -n 15"

Setelah source ~/.zshrc, tinggal ketik cpu-hogs setiap kali Mac kamu mulai anget buat langsung nemuin biang keroknya.


Selamat berburu, dan semoga Mac kamu adem dan senyap!