macOS acting slow? Got the dreaded spinning pinwheel of death? A limited combination of hardware and software generally keeps Mac problems to a minimum.
There’s one issue that never seems to go away.
You’re not alone if you’re noticing an errant process called kernel_task eating much of your available CPU. So what is this process, and how can you free up precious resources? Read on to find out.
If you’re a Windows user and are looking for a similar guide, be sure to check out how to fix high CPU usage in Windows.
Diagnosing a Slow Mac
If your Mac appears to be running slowly, is generating a lot of heat, or sounds like it’s about to take off due to high fan speeds then you’ll want to open Activity Monitor and find out why. This is essentially Apple’s equivalent to the Windows Task Manager — a “Ctrl Alt Delete” of sorts for managing resources and processes.
You can open Activity Monitor using Spotlight: just hit Cmd + Space then start typing “activity” and it should pop up. You can also find it under Applications > Utilities, and you might want to pin it to your Dock for even quicker access when things start to go wrong.
The reason for your slow computer should be evident on the CPU tab. Just click the %CPU column header to organise running processes by share of their processor usage. Anything using a high amount of processing power will appear at the top, and things will move around as your computer performs various tasks in the background.
High CPU usage is generally only a problem when you’re not expecting it. It’s reasonable to expect your machine to chew up resources if you’re running a game, watching a video in your browser, or editing a video. If a single Safari tab or Mac process is using more than its fair share, that generally means something’s gone wrong.
You can kill any such processes by clicking on them, then clicking on the “X” in the top left corner of the screen. Unfortunately you can’t do this for one particular process: kernel_task. The reason for this is that kernel_task is actually your operating system.
It’s not so much a single process, but a series of processes under one label. macOS does all sorts of things in the background, like sending and receiving data over the network, writing and reading data, and indexing new folders or disks for Spotlight search.
This process will often use a lot of your available RAM on the Memory tab, but that’s much less of a worry. The amount of RAM in use will rise and fall as required. High CPU usage however can bring your whole system to a grinding halt, and even result in the occasional complete system crash.
So how do you stop kernel_task from negatively affecting your computer’s performance?
Quick Short-Term Fixes
Because kernel_task is basically your operating system, and killing processes is the best way to free up resources, a simple restart of your Mac will clear the problem up right away. This isn’t a permanent long term solution if you’ve been having this issue for a while. But it’s a short term fix that should provide immediate results.
Whatever is causing the spike in CPU usage may return. So, if you’ve been having repeat incidents you might want to try resetting your system management controller (SMC) too. This is easy to do while restarting your computer.
Instructions for resetting the SMC vary slightly depending on whether you have an old MacBook, new MacBook, or desktop computer like the iMac. Check out how to reset your Mac’s SMC here.
Another common cause of an out-of-control kernel_task process is Flash. Speaking from experience I’ve seen everyone’s least favorite browser extension do this with Safari in particular. For a quick fix, try killing any unresponsive or thirsty tabs, or quitting the browser entirely.
Other Things You Can Try
Perhaps the most obvious fix for any OS-related issues is to update to the latest version of macOS. Simply launch the Mac App Store, head to the Updates tab, and run any outstanding Apple software updates.
Flash seems to be another cause of kernel_task issues. Update to the latest version of Flash player if you’re using a browser like Safari where Flash is not included (as it is with Chrome). While Safari is probably the best browser for Mac users, Flash doesn’t play particularly nicely with it.
You may also have success by locking down Flash, or even removing it entirely if you’re not really using it. The browser extensions ClickToFlash and ClickToPlugin block Flash by default, with the ability to toggle it off or on.
If you want to remove Flash altogether, run the Adobe Flash Player Install Manager and click Uninstall.
Digging a Little Deeper
Others have had success in removing kernel extensions, modules of code which are able to perform low-level tasks. Also known as “kexts,” the vast majority of extensions are installed by Apple as part of the core macOS environment. Some software will install third party extensions as drivers, or for controlling hardware.
One quick way to check if a third party kext is causing your kernel_task issues is to reboot your machine into safe mode. Restart your machine and hold the Shift key as it boots. Safe mode loads only the required kernel extensions, so if the problem doesn’t occur here it points to an issue with a third party kext.
Reboot your system as normal and launch Terminal. Then, run the
kextstat command to see what kernel extensions are currently loaded. All Apple extensions will look like
com.apple.etc while third party drivers will have the developer name in them, like
ch.tripmode.TripModeNKE to name a few.
The best way to remove these is to remove the associated software. For some applications that will simply mean moving the application file to the Trash then inputting your administrator to make advanced changes. Others may include a PKG uninstaller file you need to run. For the rest, head to System Preferences and look for any third party preference panes — Paragon’s NTFS driver hides the Uninstall option next to its settings.
With OS X El Capitan, Apple introduced a new security feature which broke a number of third party modifications. System Integrity Protection, or SIP for short, stops applications from injecting code into Apple’s own apps, and writing to certain parts of the drive that Apple deems important to system security.
When All Else Fails
The final solution here is a bit of a risky one: removing Apple’s own kernel extensions. Doing this is not recommended. But if you’re at the end of your tether and you’ve tried everything else then it’s another option for you to try.
The solution stems from a blog post written by Rhys Oxenham way back in 2012. And though you’ll need to circumvent SIP, the fix still involves the same process. Rhys’ issue was related to heat management, his Mac shifting CPU focus to kernel_task in order to run low-level processes. This in turn would “cool” the system by limiting available processing power.
— Viktor Petersson ? (@vpetersson) September 12, 2010
Another blogger by the name of Viktor Petersson wrote about his success using this method to solve his kernel_task woes. In his case, it was likely caused by a dodgy sound card. He later followed it up with updates for El Capitan and Sierra, noting the only difference now is the requirement to disable SIP.
I’ve not personally tested this fix. If you’re interested in giving it a go, here’s what you’ll need to do:
- Create a backup of your Mac using Time Machine or another backup solution.
- Turn off system integrity protection by booting into Recovery mode and running the
- Follow Viktor’s method. Start by finding your Mac’s model using the
system_profiler -detailLevel mini | grep "Model Identifier:"command.
- Move and backup the file relevant to your model, as described.
- Reboot into Recovery mode and enable system integrity protection using the
Be careful! This is a last resort fix. Attempt it f you’re struggling to get anything done due to the problem. And it persists even after reinstalling your operating system. But you have been warned. You’ll also need to repeat the process after every major software update or operating system upgrade as Apple will restore the file you moved.
Have you managed to fix kernel_task related problems using any of these methods? Tell us what caused your issues, and what you did to fix it in the comments below.
Image Credit: Mark H. Evans via Flickr