SYSTAT(1) - General Commands Manual

SYSTAT(1) - General Commands Manual #

SYSTAT(1) - General Commands Manual

NAME #

systat - display system statistics

SYNOPSIS #

systat [-aBbhiNn] [-d count] [-s delay] [-w width] [view] [delay]

DESCRIPTION #

systat displays various system statistics in a screen-oriented fashion using the curses(3) screen display library.

While systat is running, the screen is divided into different areas. The top line displays the current number of users, the three system load average figures over the last 1, 5, and 15 minute intervals, the host name, and the system time. The bottom line of the screen is reserved for user input and error messages. The information displayed in the rest of the screen comprises a view, and is the main interface for displaying different types of system statistics. The vmstat view is the default.

Certain information may be discarded when the screen size is insufficient for display. For example, on a machine with 10 drives the iostat bar graph displays only 3 drives on a 24 line terminal.

The options are as follows:

-a

Display all lines.

-B

Raw, non-interactive mode. The default is to exit after two screen updates, with statistics only ever displayed once. Useful for views such as cpu, where initial calculations are useless.

-b

Raw, non-interactive mode. The default is to exit after one screen update, with statistics displayed every update.

-d count

Exit after count screen updates.

-h

Human readable mode, where applicable.

-i

Interactive mode.

-N

Resolve network addresses to names. This is the opposite of the -n option.

-n

Do not try to reverse map IP addresses. This is the default.

-s delay

Specifies the screen refresh time interval in seconds. This option is overridden by the final delay argument, if given. The default interval is 5 seconds.

-w width

Specifies the maximum width of the output in raw, non-interactive mode.

view

The view argument expects to be one of: vmstat, pigs, ifstat, iostat, sensors, mbufs, netstat, swap, states, rules, queues, pf, pool, pcache, malloc, buckets, nfsclient, nfsserver, cpu, or uvm. These displays can also be requested interactively and are described in full detail below. view may be abbreviated to the minimum unambiguous prefix; for example, “io” for “iostat”.

delay

The delay argument specifies the screen refresh time interval in seconds. This is provided for backwards compatibility, and overrides any interval specified with the -s flag. The default interval is 5 seconds.

Certain characters cause immediate action by systat. These are:

:

Move the cursor to the command line and interpret the input line typed as a command. While entering a command the current character erase, word erase, and line kill characters may be used.

h

Toggle printing the names of the available views on the command line.

o

Select the next ordering which sorts the rows according to a combination of columns. Available orderings depend on the view. Not all views support orderings.

p

Pause systat.

q

Quit systat.

r

Reverse the selected ordering if supported by the view.

s

Change the screen refresh interval in seconds.

,

Print numbers with thousand separators, where applicable.

^A | <Home>

Jump to the beginning of the current view.

^B | <right arrow>

Select the previous view.

^E | <End>

Jump to the end of the current view.

^F | <left arrow>

Select the next view.

^G

Toggle printing the name of the current view being shown and the refresh interval.

^L

Refresh the screen.

^N | <down arrow>

Scroll current view down by one line.

^P | <up arrow>

Scroll current view up by one line.

^V | <Page Down>

Scroll current view down by one page.

Alt-V | <Page Up>

Scroll current view up by one page.

The following commands are interpreted by the “global” command interpreter.

help

Toggle printing the names of the available views on the command line.

human

Toggle human readable mode, where applicable.

order

Toggle printing the names of the available orderings on the command line.

quit

Quit systat. (This may be abbreviated to q.)

stop

Stop refreshing the screen.

[start] [number]

Start (continue) refreshing the screen. If a second, numeric, argument is provided it is interpreted as a refresh interval (in seconds). Supplying only a number will set the refresh interval to this value.

view may be abbreviated to the minimum unambiguous prefix. The available views are:

buckets

Display kernel malloc(9) bucket statistics similar to the output of vmstat -m.

cpu

Display information about the average usage of each CPU, similar to the output provided by top(1).

ifstat

Display interface statistics. The “State” column has the format up|dn[:U|D]. ‘up’ and ‘dn’ represent whether the interface is up or down. ‘U’ and ‘D’ represent whether the interface is connected or not; in the case of carp(4) interfaces, whether the interface is in master or backup state, respectively.

The character B changes the counter view between bytes and bits. Pressing b displays statistics as calculated from boot time. r changes the counters to show their totals as calculated between display refreshes. t changes the counters to show the average per second over the display refresh interval; this is the default. d displays input and output queue drops. e displays input and output errors. f displays input and output queue drops plus errors. This is the default view.

iostat

Display statistics about disk throughput. Statistics on disk throughput show, for each drive, data transferred in bytes, number of disk transactions performed, and time spent in disk accesses (in fractions of a second). Pressing b displays statistics as calculated from boot time. t changes the counters to show the average per second over the display refresh interval; this is the default.

malloc

Display kernel malloc(9) type statistics similar to the output of vmstat -m. Available orderings are: name, inuse, memuse, and requests.

mbufs

Display mbuf usage information from kernel pools and mbuf cluster pool statistics of each network interface.

netstat

Display network connections. Each address is displayed numerically in the format “host:port”. By default, network servers awaiting requests are not displayed. It is also possible to have addresses displayed symbolically, when possible, and limit the display to a set of protocols (the minimum unambiguous prefix may be supplied):

all

Toggle the displaying of server processes awaiting requests (this is the equivalent of the -a flag to netstat(1)).

names

Display network addresses symbolically.

numbers

Display network addresses numerically.

reset

Reset matching mechanisms to the default.

tcp | udp | other

Display only network connections using the indicated protocol.

nfsclient

Display statistics about NFS client activity. Output resembles nfsstat -c.

nfsserver

Display statistics about NFS server activity. Output resembles nfsstat -s.

pf

Display filter information about pf(4), similar to the output of pfctl -s info option.

pigs

Display those processes resident in main memory and getting the largest portion of the processor. When less than 100% of the processor is scheduled to user processes, the remaining time is accounted to the “idle” process.

pool

Display kernel pool(9) statistics similar to the output of vmstat -m. Available orderings are: name, requests, size, and number of pages.

By default only the statistics of active pools are displayed but pressing A changes the view to show all of them.

pcache

Display kernel pool(9) per CPU cache statistics. Ordering is available on all columns.

queues

Display statistics about the active queues, similar to the output of pfctl -s queue.

rules

Display pf rules statistics, similar to the output of pfctl -s rules.

sensors

Display the current values of available hardware sensors, in a format similar to that of sysctl(8).

states

Display pf states statistics, similar to the output of pfctl -s states. Available orderings are: none, bytes, expiry, packets, age, source address, source port, destination address, destination port, rate, and peak columns.

swap

Show information about swap space usage on all the swap areas compiled into the kernel. The first column is the device name of the partition. The next column is the total space available in the partition. The Used column indicates the total blocks used so far; the graph shows the percentage of space in use on each partition. If there is more than one swap partition in use, a total line is also shown. Areas known to the kernel but not in use are shown as not available.

vmstat

Take over the entire display and show a (rather crowded) compendium of statistics related to virtual memory usage, process scheduling, device interrupts, system name translation caching, disk I/O, etc. This view is the default.

Below the top line are statistics on memory utilization. The first row of the table reports memory usage only among active processes, that is, processes that have run in the previous twenty seconds. The second row reports on memory usage of all processes. The first column reports on the amount of physical memory claimed by processes. The second column reports the same figure for virtual memory, that is, the amount of memory that would be needed if all processes were resident at the same time. Finally, the last column shows the amount of physical memory on the free list.

Below the memory display is a list of the average number of processes (over the last refresh interval) that are runnable (‘r’), in disk wait other than paging (’d’), sleeping (’s’), and swapped out but desiring to run (‘w’). Below the queue length listing is a numerical listing and a bar graph showing the amount of interrupt (shown as ‘|’), spinning (shown as ‘@’), system (shown as ‘=’), user plus nice (shown as ‘>’), and idle time (shown as ‘’).

To the right of the Proc display are statistics about Context switches (“Csw”), Traps (“Trp”), Syscalls (“Sys”), Interrupts (“Int”), Soft interrupts (“Sof”), and Faults (“Flt”) which have occurred during the last refresh interval.

Below the CPU usage graph are statistics on name translations. It lists the number of names translated in the previous interval, the number and percentage of the translations that were handled by the system wide name translation cache, and the number and percentage of the translations that were handled by the per process name translation cache.

At the bottom left is the disk usage display. It reports the number of seeks, transfers, number of kilobyte blocks transferred per second averaged over the refresh period of the display, and the time spent in disk accesses.

Under the date in the upper right hand quadrant are statistics on paging and swapping activity. The first two columns report the average number of pages brought in and out per second over the last refresh interval due to page faults and the paging daemon. The third and fourth columns report the average number of pages brought in and out per second over the last refresh interval due to swap requests initiated by the scheduler. The first row of the display shows the average number of disk transfers per second over the last refresh interval. The second row of the display shows the average number of pages transferred per second over the last refresh interval.

Running down the right hand side of the display is a breakdown of the interrupts being handled by the system. At the top of the list is the total interrupts per second over the time interval. The rest of the column breaks down the total on a device by device basis. Only devices that have interrupted at least once since boot time are shown.

Below the Interrupts display are the average number of input and output packets per second for all interfaces over the last refresh interval.

Below the SWAPPING display and slightly to the left of the Interrupts display is a list of virtual memory statistics. The abbreviations are:

forks

process forks

fkppw

forks where parent waits

fksvm

forks where vmspace is shared

pwait

fault had to wait on a page

relck

fault relock called

rlkok

fault relock is successful

noram

faults out of ram

ndcpy

number of times fault clears “need copy”

fltcp

number of times fault promotes with copy

zfod

fault promotes with zerofill

cow

number of times fault anon cow

fmin

min number of free pages

ftarg

target number of free pages

itarg

target number of inactive pages

wired

wired pages

pdfre

pages daemon freed since boot

pdscn

pages daemon scanned since boot

pzidl

number of zeroed pages

kmape

number of kernel map entries

uvm

Display statistics relevant to the UVM subsystem.
The statistics are divided into eight groups.

Page Counters:

npages

	pages managed by UVM

free

	free pages

active

	active pages

inactive

	freed pages that may be wanted back

paging

	pages in the process of being paged out

wired

	wired pages

zeropages

	zero'd pages

reserve_pagedaemon

	pages reserved for pagedaemon

reserve_kernel

	pages reserved for kernel.

Stats Counters:

faults

	page fault count

traps

	trap count

intrs

	interrupt count

swtch

	context switch count

softs

	software interrupt count

syscalls

	system calls

pageins

	pagein operation count

pgswapin

	pages swapped in

pgswapout

	pages swapped out

forks

	forks.

forks_ppwait

	forks where parent waits

forks_sharevm

	forks where vmspace is shared

pga_zerohit

	pagealloc found requested zero'd pages

pga_zeromiss

	pagealloc failed to obtain zero'd pages

Fault Counters:

fltnoram

	fault was out of ram

fltnoanon

	fault was out of anons

fltnoamap

	fault was out of amap chunks

fltpgwait

	fault had to wait on a page

fltpgrele

	fault found a released page

fltrelck

	fault relock called

fltrelckok

	fault relock was a success

fltanget

	fault got anon page

fltanretry

	fault retried an anon get

fltamcopy

	fault cleared "needs copy"

fltnamap

	fault mapped a neighbor anon page

fltnomap

	fault mapped a neighbor obj page

fltlget

	fault did a locked pgo_get

fltget

	fault did an unlocked get

flt_anon

	fault anon (case 1a)

flt_acow

	fault anon cow (case 1b)

flt_obj

	fault was on object page (2a)

flt_prcopy

	fault promotes with copy (2b)

flt_przero

	fault promotes with zerofill (2b)

Pageout Params:

freemin

	minimum number of free pages

freetarg

	target number of free pages

inactarg

	target number of inactive pages

wiredmax

	maximum number of wired pages

anonmin

	minimum threshold for anon pages

vtextmin

	minimum threshold for vtext pages

vnodemin

	minimum threshold for vnode pages

anonminpct

	minimum percent anon pages

vtextminpct

	minimum percent vtext pages

vnodeminpct

	minimum percent vnode pages

Swap Counters:

nswapdev

	configured swap devices

swpages

	PAGE_SIZE'ed swap pages

swpginuse

	swap pages in use

swpgonly

	in use swap pages not in RAM

nswget

	swap pages moved from disk to RAM

nanon

	total anon's

Daemon Counters:

pdwoke

	times daemon woke up

pdrevs

	times daemon rev'd clock hand

pdswout

	times daemon called for swapout

pdfreed

	pages daemon freed since boot

pdscans

	pages daemon scanned since boot

pdanscan

	anonymous pages scanned by daemon

pdobscan

	object pages scanned by daemon

pdreact

	pages daemon reactivated since boot

pdbusy

	times daemon found a busy page

pdpageouts

	times daemon started a pageout

pdpending

	times daemon got a pending pagout

pddeact

	pages daemon deactivates

Misc Counters:

fpswtch

	FPU context switches

kmapent

	kernel map entries

Constants:

pagesize

	size of a page, always a power of 2

pagemask

	page mask

pageshift

	page shift

FILES #

/etc/hosts

Host names.

/etc/pf.conf

pf(4)
configuration.

/etc/services

Port names.

SEE ALSO #

fstat(1), kill(1), netstat(1), nfsstat(1), ps(1), top(1), iostat(8), pfctl(8), pstat(8), renice(8), sysctl(8), vmstat(8)

HISTORY #

The systat program first appeared in 4.3BSD.

BUGS #

Certain displays presume a minimum of 80 characters per line. The vmstat display looks out of place because it is (it was added in as a separate display rather than created as a new program).

OpenBSD 7.5 - November 27, 2022