When I recently decided to install the macOS 26 Tahoe beta, I remembered that previous beta versions had the side-effect of causing high CPU load by certain macOS tasks. And usually it’s already a bit late when you notice this only once the Fans kick in, then check the «Activity Monitor.app» to find the culprit.
After searching the web a bit, I found exactly the solution that I wished for: proactive Notification center alerts, if either an App, Process, or the overall System CPU usage reaches critical limits.
Set up a CPU process watcher running in the background of macOS
This simple yet powerful script was originally developed and published by vladzima on GitHub – but after trying it for a bit, I felt it needs some improvements, which I added to my Fork of the project:
Link to GitHub where the setup_cpu_monitor.sh
bash-script can be downloaded
Launch and configure the Mac CPU Monitor script 🚨
Once the ZIP or setup_cpu_monitor.sh
was downloaded, launch the «Terminal.app»:
chmod +x /path/to/setup_cpu_monitor.sh
./setup_cpu_monitor.sh
Then follow the instructions in the Terminal window, and configure your preferred thresholds:
ps
CLI program, are SINGLE-CORE values. Hence a multiplication based on your Mac’s # of CPU cores is strongly recommended!- The %-threshold to alert for a single App/Process CPU usage
- The %-threshold to alert for the overall System CPU usage
- The interval in Seconds the monitor checks the CPU usage
You can find some ideas for their proposed values below.
Good thresholds to use for CPU monitoring of your Mac ⚙️
Generally I prefer the following thresholds, following a bit common “rule of thumb” I’d say.
- Per-process threshold: remember that multi-threaded apps can easily exceed 100%
→0.25 x (#cores x 100)
- Overall system threshold: about 75–85% of max #cores
→0.85 × (#cores × 100)
- Check interval: focus on long-running high CPU, ignoring short-term spikes (“false-positives”)
→300 seconds (5 minutes)
Example: 💻 Apple iMac M3 (8-core)
Monitor | Threshold |
---|---|
Single App CPU usage threshold | 150 |
Overall System CPU threshold | 680 |
Check interval in seconds | 120 |
Example: 💻 Apple MacBook Pro M4 (10-core)
Monitor | Threshold |
---|---|
Single App CPU usage threshold | 250 |
Overall System CPU threshold | 840 |
Check interval in seconds | 300 |
Example: 💻 Apple MacBook Pro – M2 Max (12-core)
Monitor | Threshold |
---|---|
Single App CPU usage threshold | 300 |
Overall System CPU threshold | 1020 |
Check interval in seconds | 300 |
Example: 🖥️ Apple Mac Mini M4 Ultra (24-core CPU)
Monitor | Threshold |
---|---|
Single App CPU usage threshold | 600 |
Overall System CPU threshold | 2040 |
Check interval in seconds | 480 |
Dummy CPU Stress Test for macOS 🧪
Naturally you want to test if the CPU monitor alerts work properly. There’s a free tool from the Mac App Store that is easily configurable for that: