| MEMINFO(1) | General Commands Manual | MEMINFO(1) |
meminfo — display
physical memory usage breakdown
meminfo |
[--summary] [--zones]
[--raw] [--all]
[--quiet] [--csv
path] [--perfdata
path] [--interval
seconds] [--count
n] [--duration
seconds] |
meminfo displays a breakdown of physical
memory usage by category. By default each category is printed as its own
section: a header line with the category's page count and size, followed by
indented subcategory rows whose percentage bars are relative to that
category's total. Any portion of a category not covered by its subcategories
is shown as an Unaccounted row. A final
Physical Memory summary breaks the total down into the
main categories, and a Swap section follows.
The following options are available:
--summary--zonesmeminfo prints a warning and shows the aggregate
Zones total instead.--rawanonymous_purgeable)
instead of human-readable display names (e.g.
Purgeable).--all--zones, and
so is likewise subject to its root requirement: without privilege,
meminfo prints a warning and shows the aggregate
Zones total instead of the per-zone rows.--quiet--csv
path--interval, a single data row is
written.--interval
seconds0.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.
--count
n--interval to have any effect; without it, only
one sample is taken regardless.--duration
seconds--interval to have any effect.--perfdata
pathcategory=wired) and carveout regions
(category=static_carveouts) are included as
additional metrics. 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 make up the Physical Memory summary.
--zones).The Swap category is displayed below the Physical Memory summary and is not part of the physical memory total.
Each category is printed as a section headed by its page count and size. Indented subcategory rows show a label, page count, size in megabytes, a fixed-width visual bar, and a percentage relative to the enclosing category; they are sorted largest first, and any remainder appears as an Unaccounted row. A trailing Physical Memory section breaks the total down into the main categories, with bars and percentages relative to physical memory.
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 breakdown:
$ meminfoShow only the physical-memory summary and swap:
$ meminfo --summaryExpand wired zones into individual rows:
# meminfo --zonesShow everything, including hidden and overlapping subtotals (per-zone rows require root):
# meminfo --allSample every 2 seconds, stop after 10 samples, output as CSV:
$ meminfo --csv /tmp/mem.csv
--interval 2 --count 10Stream CSV for 60 seconds at half-second intervals:
$ meminfo --csv /tmp/mem.csv
--interval 0.5 --duration 60footprint(1), memory_pressure(1), top(1), vm_stat(1), zprint(1)
| March 13, 2026 | macOS 26 |