5

What exactly does Activity Monitor's Memory column mean?

How come in the example situation below (from a macOS High Sierra system) the Real Mem column is greater than the Memory column?

According to a previous question How is the "Memory" column calculated in Activity Monitor?, one might expect that Real Mem should always be less than or equal to Memory, which apparently is not always true.

Activity Monitor

Edit: This behavior is not only applicable for the kernel task but also to other processes. For example, in the screenshot below we see a couple Google Chrome Helpers experiencing the same behavior, where Real Mem > Memory. The same can be seen with Dock, Notes, Spotlight, Facetime.

enter image description here

2
  • Wow - Chrome must be leaking memory extensively. Can you make that happen in a reproducible case or do you need lots of browsing over hours to get that memory condition for the numerous helper apps?
    – bmike
    Mar 25, 2018 at 21:37
  • Yes very reproducible. And it not only happens to Chrome, but many other programs, such as Dock, Notes, Spotlight, Activity monitor itself. See updated screenshot above. So unless this is an issue of the given system, I suspect we are missing something on Apple's definition of Real mem. Mar 27, 2018 at 5:36

1 Answer 1

2

The kernel is special - it's the micro system that actually allocates memory and runs the virtual memory. You can just assume 3.60 GB is what your kernel has claimed and that 1.86 GB of that corresponds to what the task itself needs and the rest is the overhead / allocations to support all the demands made on the Mach kernel.

Every other line in Activity monitor behaves as one might expect, adding up fairly clearly once you ignore the kernel numbers:

  • Total virtual memory allocation is always the largest. Most of that is unallocated / not mapped physically and not in any category listed.
  • Real Mem is the non-shared and non-compressed allocation to that task.
  • Compressed Memory is the part of the total memory that has been compressed before being actively stored.
  • Private and Shared are both real memory usage but indicate if other processes might also need or be responsible for that allocation against the total.

For a larger discussion of the kernel_task, this question has some great links and discussion of how kernel_task is so very different than the rest of the processes you see on macOS.

2
  • This description about the kernel's special functionality makes sense. How come other processes experience the same behavior though? (See updated question description with additional screenshot). Thanks. Mar 25, 2018 at 21:11
  • The description is unfortunately not correct. That is not how the kernel tracks memory usage for itself - there's not 1.86 GB of "overhead" in this case.
    – jksoegaard
    Apr 20 at 6:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .