MEMINFO(1) General Commands Manual MEMINFO(1)

meminfodisplay physical memory usage breakdown

meminfo [--wired] [--carveouts] [--raw] [--all] [--quiet] [--csv path] [--perfdata path] [--interval seconds] [--count n] [--duration seconds]

meminfo displays a summary of physical memory usage, broken down by category. By default, a human-readable table is printed with page counts, megabyte values, percentage bars, and percentages for each category.

The following options are available:

Show a breakdown of wired memory by kernel allocation site. Only sites using at least 1 MB are shown in the formatted output. The --wired option requires root privileges or the com.apple.private.memoryinfo entitlement; without them, the wired breakdown is omitted and a diagnostic is printed to standard error.
Show a breakdown of static carveouts from the device tree. Individual carveout regions are listed as indented subcategories under . Regions that fall within the Kernel carveout are excluded.
Show raw metric names (e.g. anonymous_purgeable) instead of human-readable display names (e.g. Purgeable).
Show all metrics, including those that are normally hidden when their value is zero (e.g. Secluded) or below 1 MB (wired sites). MTE-related metrics are also included regardless of hardware capability. Implies --wired and --carveouts.
Suppress summary output to stdout. Useful when only CSV or perfdata output is desired.
path
Write CSV output to path. The first line is a header row; subsequent lines are data rows. All memory values are in bytes. Without --interval, a single data row is written.
seconds
Sample repeatedly, sleeping seconds between samples. Fractional values are accepted (e.g. 0.5).

In the default formatted mode, the screen is cleared before each sample. In CSV mode, each sample is emitted as an additional data row after a single header.

n
Stop after n samples. Requires --interval to have any effect; without it, only one sample is taken regardless.
seconds
Stop after seconds have elapsed. Requires --interval to have any effect.
path
Write output to a perfdata file at path. Each memory category is recorded as a separate metric in bytes. When combined with --wired, individual wired sites are included as additional metrics with a category=wired variable. When combined with --carveouts, individual carveout regions are included with a category=static_carveouts variable. When combined with --interval, each sample is written as a separate group in the same perfdata file.

When --interval is active, meminfo installs signal handlers for SIGINT and SIGTERM. Both --count and --duration may be specified together; sampling stops when either limit is reached.

The following categories are displayed in the formatted output. Together they sum to the row.

Anonymous
Pageable memory allocated by applications that are not backed by a file.

Active
The subset of anonymous pages on the active queue.
Inactive
The subset of anonymous pages on the inactive queue.
Purgeable
The subset of anonymous pages that the system may reclaim without preserving contents (i.e. VM_PURGABLE_VOLATILE).
Cached files
Pageable memory backed by files on disk (e.g. mapped files, shared libraries, caches).

Active
The subset of file-backed pages on the active queue.
Inactive
The subset of file-backed pages on the inactive queue.
Speculative
Pages read speculatively from disk that have not yet been referenced.
Secluded
File-backed pages that are secluded. Only shown when non-zero.
Shared cache
Pages used by the shared cache (dyld shared region).
Executable
Pages containing executable code from mapped binaries.
Compressor
Memory consumed by the in-memory compressor to store compressed data and, on MTE-capable systems, compressed tags.

Compressed data
The subset of compressor pages holding compressed page data (excluding tag storage).
Uncompressed data
The uncompressed size of data held in the compressor.
Compressed tags
The bytes consumed by compressed tag storage in the compressor. Only shown on MTE-capable systems.
Uncompressed tags
The uncompressed size of tags held in the compressor (derived from compressed tagged pages divided by 32). Only shown on MTE-capable systems.
Free
Memory not currently in use.

Tag storage
Tag storage pages that are not currently in use. Only shown on MTE-capable systems.
Wired
Memory that cannot be paged out or compressed (kernel data structures, IOSurfaces, etc.). With --wired, individual kernel allocation sites are listed as indented subcategories, sorted alphabetically.
Static carveouts
Memory reserved at boot time by the kernel. With --carveouts, individual carveout regions from the device tree are listed as indented subcategories, sorted by base address. Overlapping regions are shown individually but do not double-count in the parent total.

The category is displayed below Total and is not part of the physical memory total.

Swap
Compressor pages currently stored in the on-disk swapfile.

Swapped data
The subset of swap pages holding compressed page data.
Uncompressed swapped data
The uncompressed size of data held in swap.

Each row shows a label, page count, size in megabytes, a fixed-width visual bar, and a percentage of total physical memory. Detail rows (e.g. Uncompressed data) omit the bar and percentage and are displayed in dim text.

A header row followed by one data row per sample. The first two columns are datetime (ISO 8601) and abstime (Unix epoch with millisecond precision). All memory values are in bytes.

A perfdata file containing one metric per memory category. With --interval, each sample is written as a separate group. All values are in bytes.

The meminfo utility exits 0 on success, and >0 if an error occurs.

Display a one-shot summary:

$ meminfo

Include wired memory breakdown (requires root):

# meminfo --wired

Include static carveout breakdown:

$ meminfo --carveouts

Show everything (implies --wired and --carveouts):

# meminfo --all

Sample every 2 seconds, stop after 10 samples, output as CSV:

$ meminfo --csv /tmp/mem.csv --interval 2 --count 10

Stream CSV for 60 seconds at half-second intervals:

$ meminfo --csv /tmp/mem.csv --interval 0.5 --duration 60

memory_pressure(1), top(1), vm_stat(1), zprint(1)

March 13, 2026 macOS 26