Monitoring Memory

Memory: Introduction

System Monitor can monitor the current usage of memory (RAM, Random Access Memory) and memory contents which had been swapped out to hard disk due to lack of free memory (Swap Space). The total usage of main memory is displayed in the menu bar.

If you like to monitor main memory of the system, perform the following steps:

  1. Ensure the control window of System Monitor is open.
  2. Select the item Information Sources > Memory in the sidebar.
  3. Make sure the check mark Monitor this item is set at the right side of the window.
  4. Use the pop-up button Terminology to select one of the presentation styles that should be used to compute and to name the different usage types of memory.
Options for monitoring memory
Options for monitoring memory

System Monitor is capable of supporting at least seven different generations of the operating systems Mac OS X, OS X, and macOS. Because Apple has modernized virtual memory technology and the designations to describe memory usage multiple times during the history of these systems, System Monitor can be set to match the OS version you are currently running.

When you use System Monitor for the first time, it will automatically choose the memory terminology of your current operating system version. When you upgrade the operating system later, System Monitor intentionally keeps the previous setting, so you may need to review this choice.

It is recommended that your preferred terminology setting matches that of the running system, but this is not a requirement. If your preference does not match the system version, the memory readings won’t be comparable with Apple’s utilities, like Activity Monitor, however. In that case, there could also be inaccuracies in the values, in particular when you select a style that doesn’t consider compressed virtual memory on an operating system which uses compression technology.

The data shown is calculated live and updated about once per second. The different display styles will be explained in the following sections:

Classic designations (OS versions up to 10.8.5)

In all older versions of Mac OS X and OS X, the use of memory is divided into the following categories:

As a result of the definition of inactive memory, this is memory available on one hand, but it contains usable, recyclable contents on the other hand. So it can be considered free or being used at the same time. If you like inactive memory to be seen as free memory, set a check mark at Show inactive memory as free memory.

Mavericks designations (OS X 10.9 to OS X 10.10.2)

With OS X Mavericks, Apple introduced virtual memory compression. In addition to swapping out memory pages to the system’s disk drive, the latest versions of OS X are capable of using another location to hold pages which no longer fit into standard memory: Because a hard drive is so significantly slower than RAM, the operating system can decide to sacrifice a small part of its RAM and use this part to store swapped-out pages after using data compression on their contents. This is called compressed memory. Instead of writing a memory page to disk, the system compresses the page and writes it to a specific RAM area reserved for that purpose. Reducing the amount of memory available to applications even further by reserving parts of it for memory compression, is a critical step of course. The system has to consider very carefully whether the gain of compressing/decompressing data in RAM instead of reading/writing to swap space outweighs the effect of losing some amount of available RAM.

In OS X Mavericks and the first three versions of OS X Yosemite, Apple switched to the following terms for referring to memory use:

Modern designations (OS X 10.10.3 or later, all versions of macOS)

In OS X Yosemite as of version 10.10.3, Apple has modernized the memory terminology once more. The new presentation style makes clear that the file cache is not in direct use by applications (so it can be seen as free), and compressed pages contain contents of applications (so they are considered used RAM) although they cannot be accessed immediately. The following designations are used:

Memory: Menu Bar

The box Menu Bar controls in which form usage of memory should be displayed. System Monitor offers a variety of icons and functions that you can combine in any order. The following elements can be used:

Within the box, the upper bar simulates as a sample how this monitor section should be presented in the menu bar. You can grab the individual items by mouse and move them into a different order. You can remove an element by pulling it out of the bar. The lower bar contains the stock of items available. If you like to add a certain item to the menu bar, use the mouse to drag it from the lower to the upper bar. Pressing the button Default causes your current settings to be deleted, replacing it by a default suggestion for the menu bar.

Spacers are shown with dotted rectangles to make it easier for you to recognize and to move them. In the actual display, the rectangle will become invisible, so the spacer does its job providing a blank area within the menu bar.

If you mistakenly have removed all items of this monitoring section from the menu bar, a three-star-icon (⁂, asterism) will appear as a placeholder. This ensures that you still can open the associated menu.

You cannot drag items directly into the real menu bar.

Memory: Menu Items

At least the following items will be shown as part of the menu associated with this monitor section:

You can additionally make the following choices for the menu:

Show top 5 memory consuming processes: When setting a check mark here, System Monitor additionally collects information which currently running processes are responsible for the major part of memory usage. The process names will be listed in one section of the menu, sorted by their contributions to the total memory consumption. The corresponding percentages will be listed as well.

It is optionally possible to replace the display of percentage values by readings for absolute consumption of real memory. You can select between one of the items with percentage values and with resident memory sizes (real memory).

Retrieving the process list is a costly operation for technical reasons. The load caused by System Monitor itself will slightly increase when you enable this feature.

If you let processes display with their readings for real memory, you’ll have to consider that the shown values also include shared memory areas used by multiple processes. If certain processes are using the macOS technology “Cocoa” for example, the system library for Cocoa is resident only once in RAM memory, although it is being used by all these processes simultaneously. The affected memory is part of each of the processes memory areas, so it will be counted multiple times although it was allocated only once. Apple’s security policy for Apps does not allow that System Monitor can distinguish between private real memory and shared real memory.

Show history graph: After enabling this item, the history of memory usage within the last 30 seconds will be added to the menu.

Using history graphs to visualize memory usage typically does not make much sense. The objective of a good operating system is to utilize available main memory almost completely (slightly below 100%) in order not to let valuable RAM be unexploited. After the system has reached its typical workload after start, the usage of memory should stop varying greatly, if possible. The size of memory of your computer is optimal if memory is being used almost at 100% and no swap space is being used.

Show paging operations as number of swapped bytes: In case this option is selected, the readings for page-ins and page-outs will not be shown as counters in the menu, but as total amounts of transferred memory sizes.

Show GPU memory usage for supported graphics chips: This function allows you to add a section for the memory currently in use by the GPUs to the menu. In everyday language, GPUs are called “graphics chips” or “graphics cards”. They mainly compute the current images and 3D sceneries shown by your computer on screen, but can also be used to help the main processor cores, in particular by offloading jobs with vector and matrix operations, machine learning, or Neural Engine processing. If you enable this option, the absolute value for current memory consumption and a percentage value will be shown for each supported chip.

Memory usage of GPUs can be very complex. Some GPUs have their own private memory chips, some reserve a fixed part of the normal system RAM, some use a dynamically changing part of RAM, and some reserve an additional “GART memory area” (Graphics Address Remapping Table) used to quickly transfer contents between GPU and CPU memory. System Monitor tries to show a representative reading which is characteristic for GPU behavior.

The values for GPU memory usage are provided by the drivers of the respective chips, and there is no standardized way to do that. For this reason, this feature may not work correctly or not at all for specific graphics chips. System Monitor cannot influence this.