vmstat(8) on Solnix vs Linux and the BSDs
On Solnix, vmstat is the illumos vmstat at /usr/bin/vmstat. It takes positional interval and count arguments, as Linux does, rather than the -w/-c flags of the BSDs. Most Linux and BSD options are absent or mean something else: -p is detailed paging activity, and -S is swap rather than a unit.
The manual pages
What Solnix runs
A default Solnix system runs the illumos vmstat at /usr/bin/vmstat. /usr/ucb/vmstat is also shipped, but the bundle does not describe it. The Solnix page is published by pkgs.solnix.illumos-world-man.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux | -S meaning | Solnix vmstat -S reports swapping (si/so) instead of paging (re/mf) in the paging display. On Linux, -S char switches the display unit between 1000, 1024, 1000000 and 1048576 bytes. Linux scripts using -S for units will get swap columns on Solnix.Source: Solnix vmstat(8) -S; Linux vmstat(8) -S, --unit |
| Linux, FreeBSD | -p meaning | Solnix vmstat -p takes no argument and prints detailed paging columns (epi, epo, epf, api, apo, apf, fpi, fpo, fpf). Linux -p takes a partition device. FreeBSD -p takes device types for filtering disks.Source: Solnix vmstat(8) -p; Linux vmstat(8) -p, --partition; FreeBSD vmstat(8) -p |
| FreeBSD, OpenBSD, NetBSD | interval and count syntax | Solnix takes interval and count as trailing operands only, with no -w or -c flags. FreeBSD, OpenBSD and NetBSD use -w wait and -c count. FreeBSD also accepts the trailing form for backwards compatibility. OpenBSD and NetBSD list no such operands.Source: Solnix vmstat(8) SYNOPSIS, OPERANDS; FreeBSD vmstat(8) -c, -w; OpenBSD vmstat(8) -c, -w; NetBSD vmstat(8) -c, -w |
| FreeBSD, OpenBSD, NetBSD | -s output | Solnix -s shows the total number of various system events since boot and ignores interval and count. FreeBSD documents it as the sum structure, OpenBSD and NetBSD as the uvmexp structure. The bundle does not compare the output formats.Source: Solnix vmstat(8) -s; FreeBSD vmstat(8) -s; OpenBSD vmstat(8) -s; NetBSD vmstat(8) -s |
| Linux | -s repeat and -i | Solnix -s and -i ignore interval and count. Linux -s also does not repeat. Linux has no -i, and its -a means active/inactive memory. Solnix has no -a.Source: Solnix vmstat(8) -i, -s, OPERANDS; Linux vmstat(8) -s, -a |
| all four | missing options | Solnix vmstat has no fork count (-f), no slab or kernel memory report (Linux -m, FreeBSD/OpenBSD/NetBSD -m), no core/system file options (-M, -N) and no wide mode (Linux -w). Use sar, iostat or mpstat as the page suggests.Source: Solnix vmstat(8) SYNOPSIS, DESCRIPTION; Linux vmstat(8) -f, -m, -w; FreeBSD vmstat(8) -f, -m, -M, -N; OpenBSD vmstat(8) -f, -m; NetBSD vmstat(8) -f, -m |
| all four | -T timestamps | Solnix -T u prints time as an internal value and -T d prints standard date format. Linux -t appends a timestamp to each line. The FreeBSD, OpenBSD and NetBSD pages show no timestamp option.Source: Solnix vmstat(8) -T; Linux vmstat(8) -t, --timestamp; FreeBSD/OpenBSD/NetBSD vmstat SYNOPSIS |
| Linux | default report | Without options, Solnix prints a one-line summary since boot. Linux with a delay prints the since-boot report first and can omit it with -y. Solnix has no -y, and the page does not say whether its first report is since boot.Source: Solnix vmstat(8) DESCRIPTION; Linux vmstat(8) -y, --no-first |
| all four | state change messages and -q | Solnix may print messages such as <<device added: sd0>> or <<processors removed: 1, 3>> in the output. -q suppresses them. No counterpart page documents such messages, so scripts parsing Solnix output should expect these lines unless -q is used.Source: Solnix vmstat(8) DESCRIPTION, -q; Linux/FreeBSD/OpenBSD/NetBSD vmstat pages |
| FreeBSD, OpenBSD, NetBSD | disk columns | Solnix lists disks as operands to give them priority, and only four fit on a line. FreeBSD and OpenBSD show the first two by default, and NetBSD the first four. FreeBSD and NetBSD change the count with -n. Solnix has no -n.Source: Solnix vmstat(8) OPERANDS disks; FreeBSD vmstat(8) -n, disks; OpenBSD vmstat(8) disks; NetBSD vmstat(8) -n, disks |
| FreeBSD, OpenBSD, NetBSD | CPU and MP averaging | On multi-processor Solnix, vmstat averages the number of CPUs into the output; use mpstat(8) for per-processor figures. FreeBSD has -P for per-CPU statistics. OpenBSD and NetBSD pages show no per-CPU option.Source: Solnix vmstat(8) DESCRIPTION; FreeBSD vmstat(8) -P |
Standards
- POSIX: vmstat is not a POSIX.1-2024 utility.
- Solnix: Interface Stability: invocation is evolving; human readable output is unstable.
Writing portable scripts
- Do not parse vmstat output in portable scripts. Solnix human readable output is documented as unstable and the column sets differ on every system.
- Pass interval and count as trailing operands when targeting Solnix and Linux. Use
-wand-con the BSDs. Branch on uname.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.