Knowledge Base

Mac performance guides

Honest command-line answers to what your Mac is doing, each checked on a real Mac, and where GaugeMon makes it easier.

kernel_task using high CPU on Mac

kernel_task using lots of CPU is usually macOS cooling your Mac: it takes CPU time away from other processes so the chip produces less heat. You cannot and should not kill it; reduce the heat and the load that cause it.

WindowServer high CPU on Mac

WindowServer draws every window on every display. High CPU comes from many or high-resolution displays, high refresh rates, transparency effects and apps that redraw constantly. Find the app with top, then reduce displays, transparency or redraws.

mds_stores and Spotlight using high CPU on Mac

mds, mds_stores and mdworker_shared are Spotlight indexing your files. They get busy after a macOS update, a migration, a new disk or lots of changed files, and settle once caught up. If they never do, exclude busy folders or rebuild the index.

Check CPU temperature on a Mac (without sudo)

Without sudo, macOS has no built-in command that prints CPU temperature. pmset -g therm shows thermal warnings; on Apple Silicon even sudo powermetrics shows only a thermal pressure level. Degrees need an app that reads the temperature sensors.

Check if your Mac is thermal throttling

Run pmset -g therm: if it reports no thermal or performance warning level, macOS has not slowed the Mac for heat. On Apple Silicon, also read macOS’s thermal state without sudo, or the pressure level from sudo powermetrics.

Check CPU clock speed on an Apple Silicon Mac

On Apple Silicon, sysctl hw.cpufrequency prints nothing because each CPU cluster changes speed with the load. Read the core layout with sysctl, the live frequency with sudo powermetrics, and check Low Power Mode and heat with pmset.

Mac memory pressure yellow/red: what it means

Memory pressure is how hard macOS is working to find memory: green is fine, yellow means it is compressing and swapping heavily, red means it needs more memory than you have. Free memory near zero is normal; check memory_pressure and swap instead.

High swap usage on Mac: when it matters

Swap is memory macOS has written out to disk. A large swap used number on its own is mostly history; it matters when the Mac keeps swapping while you work and memory pressure is yellow or red. Check it with sysctl vm.swapusage and vm_stat.

Check memory usage per process from the Mac terminal

top -o mem lists processes by physical footprint, the number Activity Monitor shows. ps RSS counts shared pages and skips compressed memory, so it reads high or low. footprint breaks one process down; vm_stat and memory_pressure cover the whole Mac.

Find which process is writing to disk on a Mac

iostat shows whether the disk is busy; sudo fs_usage -w -f diskio shows which process is reading and writing right now. Activity Monitor's Disk tab counts bytes since each process started, and iotop no longer works with SIP on.

htop on Mac shows 0% CPU for some processes

macOS only lets a process read CPU and memory counters for processes owned by the same user, so htop without sudo shows 0% for root and system processes like WindowServer. Run sudo htop, or use top or ps, which are installed setuid root.

Why a Mac process shows more than 100% CPU

% CPU in top, ps and Activity Monitor is per core: 100% is one core fully busy, so a multithreaded process can show 400% or more. The ceiling is 100% times the core count from sysctl hw.ncpu.

Check GPU usage on a Mac

Open Activity Monitor and choose Window > GPU History, or read the GPU's Device Utilization % from the terminal with ioreg -rc IOAccelerator. sudo powermetrics --samplers gpu_power adds GPU frequency and power.

Find what is draining your MacBook battery

Run pmset -g batt for the charge and time remaining, top -o power to rank processes by energy use, and pmset -g assertions to see what is keeping the Mac awake. Quit or fix the top offenders.

Check fan speed on a Mac

macOS has no built-in way to show fan speed on Apple Silicon Macs. On Intel Macs, sudo powermetrics --samplers smc reports fan speed. Otherwise you need an app that reads the SMC, such as GaugeMon.

Mac fans loud but Activity Monitor shows nothing

Fans follow heat, and heat lags load: the process that caused it has usually finished, or the work is on the GPU, which the CPU tab does not show. Check pmset -g therm and the thermal state, sample top twice, read GPU utilization, then the external display, charger and vents.

Mac System Data taking hundreds of GB: find what it is from the terminal

System Data is everything Storage settings could not file elsewhere: caches, logs, swap, snapshots, containers and developer tools. df and diskutil show what is really used, tmutil lists snapshots, and du -xsh on ~/Library finds the folders that are actually big.