Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I'd just like to know what it is that kernel_task is responsible for. Also, what's an acceptable maximum RAM and CPU use for it?

share|improve this question
    
Best to measure your RAM and CPU use after a safe boot to get a measure of what your system runs at when idle. –  bmike Jan 18 '12 at 0:47
    
According to Tyler, it is a "representation of the microkernel itself." If you want a more specific answer, he goes on to say that "it seems to be the basic (virtual/)memory manager for Mac OS X on top of Mach." You'll be hard pressed to find a definitive answer unless you speak to a high-level Apple engineer. The public has only pieced together this process. Source: bleepsoft.com/tyler/index.php?itemid=43 –  cksum Jan 18 '12 at 2:46

2 Answers 2

up vote 8 down vote accepted

It accumulates all the CPU time for input/output (i/o) processing delays and calculations as well as scheduling of processes and threads.

If you watch it after a reboot you will see it starts with minimal RAM and CPU needs and instead grows only when other programs run and need the system services.

To slim it down, shut off unneeded ports (WiFi, bluetooth, etc... ) as well as idle / unused programs. If things don't settle down, consider rebooting to ensure no task is stuck or leaking memory. If you have programs doing real work, they will cause the kernel to use both memory and processor time - just watch as you start things to see which other programs are causing this behavior. It's rarely an issue with the kernel - even with badly performing programs - that can't be solved by logging out and back in again. The kernel_task cleans up well and generally takes care to only use the resources needed by the workload.

share|improve this answer
    
Thanks! Would you say 700-750 MB of RAM is acceptable for it? I have plenty free, but I'd like to know if there's anything I should do anyway. –  timothymh Jan 18 '12 at 0:48
    
Not necessarily. On my main MacBook Pro, it can swell to 2 GB at times when I'm really running a lot of involved programs. Even then, I don't often have to reboot but once a month or so. (2.66 Core 2 Duo / 8 GB RAM) –  bmike Jan 18 '12 at 2:15

Mac OS X Internals: A Systems Approach - Amit Singh - Google Books:

the kernel uses the task and thread abstractions to divide its functionality into various execution flows. The kernel uses a single task—the kernel task—with multiple threads that perform kernel operations such as scheduling, thread reaping, callout management, paging, and Unix exception handling. Thus, xnu is a monolithic kernel containing markedly different components such as Mach, BSD, and the I/O Kit, all running as groups of threads in a single task in the same address space.

http://lists.apple.com/archives/darwin-kernel/2010/Sep/msg00014.html:

The kernel task is not a real task. It represents the kernel, which is the core of the operating system. The bulk of what it does occurs at the direct request of an application. Every time you allocate a large block of memory, open or close a file, read or write a file, pull data over the network, create a new process or thread, etc., your application performs a system call. These calls cause the kernel to do work for your application. Much of that work is billed to the kernel task, but it really is being done by your application, albeit indirectly.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.