xref: /freebsd/usr.bin/systat/systat.1 (revision 315ee00f)
1.\" Copyright (c) 1985, 1990, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. Neither the name of the University nor the names of its contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"    without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.\"	@(#)systat.1	8.2 (Berkeley) 12/30/93
29.\"
30.Dd April 1, 2022
31.Dt SYSTAT 1
32.Os
33.Sh NAME
34.Nm systat
35.Nd display system statistics
36.Sh SYNOPSIS
37.Nm
38.Op Fl Ar display
39.Op Ar display-commands
40.Op Ar refresh-interval
41.Sh DESCRIPTION
42The
43.Nm
44utility displays various system statistics in a screen oriented fashion
45using the curses screen display library,
46.Xr ncurses 3 .
47.Pp
48While
49.Nm
50is running the screen is usually divided into two windows (an exception
51is the vmstat display which uses the entire screen).
52The
53upper window depicts the current system load average.
54The
55information displayed in the lower window may vary, depending on
56user commands.
57The last line on the screen is reserved for user
58input and error messages.
59.Pp
60By default
61.Nm
62displays the processes getting the largest percentage of the processor
63in the lower window.
64Other displays show swap space usage, disk I/O statistics (a la
65.Xr iostat 8 ) ,
66virtual memory statistics (a la
67.Xr vmstat 8 ) ,
68TCP/IP statistics,
69and network connections (a la
70.Xr netstat 1 ) .
71.Pp
72Input is interpreted at two different levels.
73A ``global'' command interpreter processes all keyboard input.
74If this command interpreter fails to recognize a command, the
75input line is passed to a per-display command interpreter.
76This
77allows each display to have certain display-specific commands.
78.Pp
79Command line options:
80.Bl -tag -width "refresh_interval"
81.It Fl Ns Ar display
82The
83.Fl
84flag expects
85.Ar display
86to be one of:
87.Ic icmp ,
88.Ic icmp6 ,
89.Ic ifstat ,
90.Ic iolat ,
91.Ic iostat ,
92.Ic ip ,
93.Ic ip6 ,
94.Ic netstat ,
95.Ic pigs ,
96.Ic sctp ,
97.Ic swap ,
98.Ic tcp ,
99.Ic vmstat ,
100or
101.Ic zarc ,
102These displays can also be requested interactively (without the
103.Dq Fl )
104and are described in
105full detail below.
106.It Ar refresh-interval
107The
108.Ar refresh-value
109specifies the screen refresh time interval in seconds.
110Time interval can be fractional.
111.It Ar display-commands
112A list of commands specific to this display.
113These commands can also be entered interactively and are described for
114each display separately below.
115If the command requires arguments, they can be specified as separate
116command line arguments.
117A command line argument
118.Fl -
119will finish display commands.
120For example:
121.Pp
122.Dl Nm Fl ifstat Fl match Ar bge0,em1 Fl pps
123.Pp
124This will display statistics of packets per second for network interfaces
125named as bge0 and em1.
126.Pp
127.Dl Nm Fl iostat Fl numbers Fl - Ar 2.1
128.Pp
129This will display all IO statistics in a numeric format and the information
130will be refreshed each 2.1 seconds.
131.El
132.Pp
133Certain characters cause immediate action by
134.Nm .
135These are
136.Bl -tag -width Fl
137.It Ic \&^L
138Refresh the screen.
139.It Ic \&^G
140Print the name of the current ``display'' being shown in
141the lower window and the refresh interval.
142.It Ic \&:
143Move the cursor to the command line and interpret the input
144line typed as a command.
145While entering a command the
146current character erase, word erase, and line kill characters
147may be used.
148.El
149.Pp
150The following commands are interpreted by the ``global''
151command interpreter.
152.Bl -tag -width Fl
153.It Ic help
154Print the names of the available displays on the command line.
155.It Ic load
156Print the load average over the past 1, 5, and 15 minutes
157on the command line.
158.It Ic stop
159Stop refreshing the screen.
160.It Xo
161.Op Ic start
162.Op Ar number
163.Xc
164Start (continue) refreshing the screen.
165If a second, numeric,
166argument is provided it is interpreted as a refresh interval
167(in seconds).
168Supplying only a number will set the refresh interval to this
169value.
170.It Ic quit
171Exit
172.Nm .
173(This may be abbreviated to
174.Ic q . )
175.El
176.Pp
177The available displays are:
178.Bl -tag -width Ic
179.It Ic pigs
180Display, in the lower window, those processes resident in main
181memory and getting the
182largest portion of the processor (the default display).
183When less than 100% of the
184processor is scheduled to user processes, the remaining time
185is accounted to the ``idle'' process.
186.It Ic icmp
187Display, in the lower window, statistics about messages received and
188transmitted by the Internet Control Message Protocol
189.Pq Dq ICMP .
190The left half of the screen displays information about received
191packets, and the right half displays information regarding transmitted
192packets.
193.Pp
194The
195.Ic icmp
196display understands two commands:
197.Ic mode
198and
199.Ic reset .
200The
201.Ic mode
202command is used to select one of four display modes, given as its argument:
203.Bl -tag -width absoluteXX -compact
204.It Ic rate :
205show the rate of change of each value in packets (the default)
206per second
207.It Ic delta :
208show the rate of change of each value in packets per refresh interval
209.It Ic since :
210show the total change of each value since the display was last reset
211.It Ic absolute :
212show the absolute value of each statistic
213.El
214.Pp
215The
216.Ic reset
217command resets the baseline for
218.Ic since
219mode.
220The
221.Ic mode
222command with no argument will display the current mode in the command
223line.
224.It Ic icmp6
225This display is like the
226.Ic icmp
227display,
228but displays statistics for IPv6 ICMP.
229.It Ic ip
230Otherwise identical to the
231.Ic icmp
232display, except that it displays IP and UDP statistics.
233.It Ic ip6
234Like the
235.Ic ip
236display,
237except that it displays IPv6 statistics.
238It does not display UDP statistics.
239.It Ic sctp
240Like
241.Ic icmp ,
242but with SCTP statistics.
243.It Ic tcp
244Like
245.Ic icmp ,
246but with TCP statistics.
247.It Ic iolat
248Display statistics describing the hardware latencies of I/O operations as
249computed by the
250.Va CAM_IOSCHED_DYNAMIC
251option.
252This option must be in the kernel config file of the running kernel for this
253display to work.
254All devices are displayed as there is currently no way to filter them.
255The statistics displayed for the I/O latencies are the percentiles with
256sufficient data during the polling interval to compute.
257If a value cannot be estimated ``-'' is displayed.
258The P50 (also known as the median), P90, P99 and P99.9 values are computed if
259more than 2, 10, 100 or 1000 operations occurred during the polling interval.
260The latency is the hardware latency values, and does not include any software
261queuing time.
262The latencies are estimated based on histogram data computed by the CAM I/O
263scheduler and represent estimates of the actual value that are only good to
264two or three significant digits.
265The display of latency changes based on the scale of the latency to reflect
266the precision of the estimates and to fit on the available screen space.
267All latencies are reported in milliseconds.
268When color is enabled
269.Bl -bullet
270.It
271Values below the medium latency threshold are displayed in green.
272.It
273Values between the minimum latency and high latency thresholds are displayed
274in magenta.
275.It
276Values above the high latency thresholds are displayed in red.
277.Pp
278When color is disabled, the default foreground and background colors are always
279used.
280.Pp
281The following commands are specific to the
282.Ic iolat
283display; the minimum unambiguous prefix may be supplied.
284.Pp
285.Bl -tag -width Fl -compact
286.It Cm color
287Toggle the use of color in the display.
288The default is on.
289.It Cm hi=XXX
290Set the high latency threshold to XXX milliseconds.
291.It Cm med=XXX
292Set the medium latency threshold to XXX milliseconds.
293.It Cm read
294Toggle the display of statistics about read operations.
295The default is on.
296.It Cm write
297Toggle the display of statistics about write operations.
298The default is on.
299.It Cm trim
300Toggle the display of statistics about trim operations.
301The default is on.
302.El
303.El
304.It Ic iostat
305Display, in the lower window, statistics about processor use
306and disk throughput.
307Statistics on processor use appear as
308bar graphs of the amount of time executing in user mode (``user''),
309in user mode running low priority processes (``nice''), in
310system mode (``system''), in interrupt mode (``interrupt''),
311and idle (``idle'').
312Statistics
313on disk throughput show, for each drive, megabytes per second,
314average number of disk transactions per second, and
315average kilobytes of data per transaction.
316This information may be
317displayed as bar graphs or as rows of numbers which scroll downward.
318Bar
319graphs are shown by default.
320.Pp
321The following commands are specific to the
322.Ic iostat
323display; the minimum unambiguous prefix may be supplied.
324.Pp
325.Bl -tag -width Fl -compact
326.It Cm numbers
327Show the disk I/O statistics in numeric form.
328Values are
329displayed in numeric columns which scroll downward.
330.It Cm bars
331Show the disk I/O statistics in bar graph form (default).
332.It Cm kbpt
333Toggle the display of kilobytes per transaction.
334(the default is to
335not display kilobytes per transaction).
336.El
337.It Ic swap
338Show information about swap space usage on all the
339swap areas compiled into the kernel and processes that are swapped out
340as well as a summary of disk activity.
341.Pp
342The swap areas are displayed first with their name, sizes and
343usage percentage.
344The
345.Ar Used
346column indicates the total blocks used so far;
347the graph shows the percentage of space in use on each partition.
348If there are more than one swap partition in use,
349a total line is also shown.
350Areas known to the kernel, but not in use are shown as not available.
351.Pp
352Below the swap space statistics,
353processes are listed in order of higher swap area usage.
354Pid, username, a part of command line, the total use of swap space
355in bytes, the size of process, as well as per-process swap usage percentage and
356per-system swap space percentage are shown per process.
357.Pp
358At the bottom left is the disk usage display.
359It reports the number of
360kilobytes per transaction, transactions per second, megabytes
361per second and the percentage of the time the disk was busy averaged
362over the refresh period of the display (by default, five seconds).
363The system keeps statistics on most every storage device.
364In general, up
365to seven devices are displayed.
366The devices displayed by default are the
367first devices in the kernel's device list.
368See
369.Xr devstat 3
370and
371.Xr devstat 9
372for details on the devstat system.
373.It Ic vmstat
374Take over the entire display and show a (rather crowded) compendium
375of statistics related to virtual memory usage, process scheduling,
376device interrupts, system name translation caching, disk I/O etc.
377.Pp
378The upper left quadrant of the screen shows the number
379of users logged in and the load average over the last one, five,
380and fifteen minute intervals.
381Below this line are statistics on memory utilization.
382The first row of the table reports memory usage only among
383active processes, that is processes that have run in the previous
384twenty seconds.
385The second row reports on memory usage of all processes.
386The first column reports on the number of kilobytes in physical pages
387claimed by processes.
388The second column reports the number of kilobytes in physical pages that
389are devoted to read only text pages.
390The third and fourth columns report the same two figures for
391virtual pages, that is the number of kilobytes in pages that would be
392needed if all processes had all of their pages.
393Finally the last column shows the number of kilobytes in physical pages
394on the free list.
395.Pp
396Below the memory display is a list of the
397average number of threads (over the last refresh interval)
398that are runnable (`r'), in page wait (`p'),
399in disk wait other than paging (`d'),
400sleeping (`s'), and swapped out but desiring to run (`w').
401The row also shows the average number of context switches
402(`Csw'), traps (`Trp'; includes page faults), system calls (`Sys'),
403interrupts (`Int'), network software interrupts (`Sof'), and page
404faults (`Flt').
405.Pp
406Below the process queue length listing is a numerical listing and
407a bar graph showing the amount of
408system (shown as `='), interrupt (shown as `+'), user (shown as `>'),
409nice (shown as `-'), and idle time (shown as ` ').
410.Pp
411Below the process display are statistics on name translations.
412It lists the number of names translated in the previous interval,
413the number and percentage of the translations that were
414handled by the system wide name translation cache, and
415the number and percentage of the translations that were
416handled by the per process name translation cache.
417.Pp
418To the right of the name translations display are lines showing
419the number of dirty buffers in the buffer cache (`dtbuf'),
420desired maximum size of vnode cache (`desvn'),
421number of vnodes actually allocated (`numvn'),
422and
423number of allocated vnodes that are free (`frevn').
424.Pp
425At the bottom left is the disk usage display.
426It reports the number of
427kilobytes per transaction, transactions per second, megabytes
428per second and the percentage of the time the disk was busy averaged
429over the refresh period of the display (by default, five seconds).
430The system keeps statistics on most every storage device.
431In general, up
432to seven devices are displayed.
433The devices displayed by default are the
434first devices in the kernel's device list.
435See
436.Xr devstat 3
437and
438.Xr devstat 9
439for details on the devstat system.
440.Pp
441Under the date in the upper right hand quadrant are statistics
442on paging and swapping activity.
443The first two columns report the average number of pages
444brought in and out per second over the last refresh interval
445due to page faults and the paging daemon.
446The third and fourth columns report the average number of pages
447brought in and out per second over the last refresh interval
448due to swap requests initiated by the scheduler.
449The first row of the display shows the average
450number of disk transfers per second over the last refresh interval;
451the second row of the display shows the average
452number of pages transferred per second over the last refresh interval.
453.Pp
454Below the paging statistics is a column of lines regarding the virtual
455memory system.
456The first few lines describe,
457in units (except as noted below)
458of pages per second averaged over the sampling interval,
459pages copied on write (`cow'),
460pages zero filled on demand (`zfod'),
461pages optimally zero filled on demand (`ozfod'),
462the ratio of the (average) ozfod / zfod as a percentage (`%ozfod'),
463pages freed by the page daemon (`daefr'),
464pages freed by exiting processes (`prcfr'),
465total pages freed (`totfr'),
466pages reactivated from the free list (`react'),
467the average number of
468times per second that the page daemon was awakened (`pdwak'),
469pages analyzed by the page daemon (`pdpgs'),
470and
471in-transit blocking page faults (`intrn').
472Note that the units are special for `%ozfod' and `pdwak'.
473The next few lines describe,
474as amounts of memory in kilobytes,
475pages wired down (`wire'),
476active pages (`act'),
477inactive pages (`inact'),
478dirty pages queued for laundering (`laund'),
479and
480free pages (`free').
481Note that the values displayed are the current transient ones;
482they are not averages.
483.Pp
484At the bottom of this column is a line showing the
485amount of virtual memory, in kilobytes, mapped into the buffer cache (`buf').
486This statistic is not useful.
487It exists only as a placeholder for the corresponding useful statistic
488(the amount of real memory used to cache disks).
489The most important component of the latter (the amount of real memory
490used by the vm system to cache disks) is not available,
491but can be guessed from the `inact' amount under some system loads.
492.Pp
493Running down the right hand side of the display is a breakdown
494of the interrupts being handled by the system.
495At the top of the list is the total interrupts per second
496over the time interval.
497The rest of the column breaks down the total on a device
498by device basis.
499Only devices that have interrupted at least once since boot time are shown.
500.Pp
501The following commands are specific to the
502.Ic vmstat
503display; the minimum unambiguous prefix may be supplied.
504.Pp
505.Bl -tag -width Ar -compact
506.It Cm boot
507Display cumulative statistics since the system was booted.
508.It Cm run
509Display statistics as a running total from the point this
510command is given.
511.It Cm time
512Display statistics averaged over the refresh interval (the default).
513.It Cm zero
514Reset running statistics to zero.
515.El
516.It Ic zarc
517display arc cache usage and hit/miss statistics.
518.It Ic netstat
519Display, in the lower window, network connections.
520By default,
521network servers awaiting requests are not displayed.
522Each address
523is displayed in the format ``host.port'', with each shown symbolically,
524when possible.
525It is possible to have addresses displayed numerically,
526limit the display to a set of ports, hosts, and/or protocols
527(the minimum unambiguous prefix may be supplied):
528.Pp
529.Bl -tag -width Ar -compact
530.It Cm all
531Toggle the displaying of server processes awaiting requests (this
532is the equivalent of the
533.Fl a
534flag to
535.Xr netstat 1 ) .
536.It Cm numbers
537Display network addresses numerically.
538.It Cm names
539Display network addresses symbolically.
540.It Cm proto Ar protocol
541Display only network connections using the indicated
542.Ar protocol .
543Supported protocols are ``tcp'', ``udp'', and ``all''.
544.It Cm ignore Op Ar items
545Do not display information about connections associated with
546the specified hosts or ports.
547Hosts and ports may be specified
548by name (``vangogh'', ``ftp''), or numerically.
549Host addresses
550use the Internet dot notation (``128.32.0.9'').
551Multiple items
552may be specified with a single command by separating them with
553spaces.
554.It Cm display Op Ar items
555Display information about the connections associated with the
556specified hosts or ports.
557As for
558.Ar ignore ,
559.Op Ar items
560may be names or numbers.
561.It Cm show Op Ar ports\&|hosts
562Show, on the command line, the currently selected protocols,
563hosts, and ports.
564Hosts and ports which are being ignored
565are prefixed with a `!'.
566If
567.Ar ports
568or
569.Ar hosts
570is supplied as an argument to
571.Cm show ,
572then only the requested information will be displayed.
573.It Cm reset
574Reset the port, host, and protocol matching mechanisms to the default
575(any protocol, port, or host).
576.El
577.It Ic ifstat
578Display the network traffic going through active interfaces on the
579system.
580Idle interfaces will not be displayed until they receive some
581traffic.
582.Pp
583For each interface being displayed, the current, peak and total
584statistics are displayed for incoming and outgoing traffic.
585By default,
586the
587.Ic ifstat
588display will automatically scale the units being used so that they are
589in a human-readable format.
590The scaling units used for the current and
591peak
592traffic columns can be altered by the
593.Ic scale
594command.
595.Bl -tag -width ".Cm scale Op Ar units"
596.It Cm scale Op Ar units
597Modify the scale used to display the current and peak traffic over all
598interfaces.
599The following units are recognised: kbit, kbyte, mbit,
600mbyte, gbit, gbyte and auto.
601.It Cm pps
602Show statistics in packets per second instead of bytes/bits per second.
603A subsequent call of
604.Ic pps
605switches this mode off.
606.It Cm match Op Ar patterns
607Display only interfaces that match pattern provided as an argument.
608Patterns should be in shell syntax separated by whitespaces or commas.
609If this command is called without arguments then all interfaces are displayed.
610For example:
611.Pp
612.Dl match em0, bge1
613.Pp
614This will display em0 and bge1 interfaces.
615.Pp
616.Dl match em*, bge*, lo0
617.Pp
618This will display all
619.Ic em
620interfaces, all
621.Ic bge
622interfaces and the loopback interface.
623.El
624.El
625.Pp
626Commands to switch between displays may be abbreviated to the
627minimum unambiguous prefix; for example, ``io'' for ``iostat''.
628Certain information may be discarded when the screen size is
629insufficient for display.
630For example, on a machine with 10
631drives the
632.Ic iostat
633bar graph displays only 3 drives on a 24 line terminal.
634When
635a bar graph would overflow the allotted screen space it is
636truncated and the actual value is printed ``over top'' of the bar.
637.Pp
638The following commands are common to each display which shows
639information about disk drives.
640These commands are used to
641select a set of drives to report on, should your system have
642more drives configured than can normally be displayed on the
643screen.
644.Pp
645.Bl -tag -width Ar -compact
646.It Cm ignore Op Ar drives
647Do not display information about the drives indicated.
648Multiple
649drives may be specified, separated by spaces.
650.It Cm display Op Ar drives
651Display information about the drives indicated.
652Multiple drives
653may be specified, separated by spaces.
654.It Cm only Op Ar drives
655Display only the specified drives.
656Multiple drives may be specified,
657separated by spaces.
658.It Cm drives
659Display a list of available devices.
660.It Cm match Xo
661.Ar type , Ns Ar if , Ns Ar pass
662.Op | Ar ...
663.Xc
664Display devices matching the given pattern.
665The basic matching
666expressions are the same as those used in
667.Xr iostat 8
668with one difference.
669Instead of specifying multiple
670.Fl t
671arguments which are then ORed together, the user instead specifies multiple
672matching expressions joined by the pipe
673.Pq Ql \&|
674character.
675The comma
676separated arguments within each matching expression are ANDed together, and
677then the pipe separated matching expressions are ORed together.
678Any
679device matching the combined expression will be displayed, if there is room
680to display it.
681For example:
682.Pp
683.Dl match da,scsi | cd,ide
684.Pp
685This will display all SCSI Direct Access devices and all IDE CDROM devices.
686.Pp
687.Dl match da | sa | cd,pass
688.Pp
689This will display all Direct Access devices, all Sequential Access devices,
690and all passthrough devices that provide access to CDROM drives.
691.El
692.Sh FILES
693.Bl -tag -width /boot/kernel/kernel -compact
694.It Pa /boot/kernel/kernel
695For the namelist.
696.It Pa /dev/kmem
697For information in main memory.
698.It Pa /etc/hosts
699For host names.
700.It Pa /etc/networks
701For network names.
702.It Pa /etc/services
703For port names.
704.El
705.Sh SEE ALSO
706.Xr netstat 1 ,
707.Xr kvm 3 ,
708.Xr icmp 4 ,
709.Xr icmp6 4 ,
710.Xr ip 4 ,
711.Xr ip6 4 ,
712.Xr tcp 4 ,
713.Xr udp 4 ,
714.Xr gstat 8 ,
715.Xr iostat 8 ,
716.Xr vmstat 8
717.Sh HISTORY
718The
719.Nm
720program appeared in
721.Bx 4.3 .
722The
723.Ic icmp ,
724.Ic ip ,
725and
726.Ic tcp
727displays appeared in
728.Fx 3.0 ;
729the notion of having different display modes for the
730ICMP, IP, TCP, and UDP statistics was stolen from the
731.Fl C
732option to
733.Xr netstat 1
734in Silicon Graphics' IRIX system.
735.Sh BUGS
736Certain displays presume a minimum of 80 characters per line.
737Ifstat does not detect new interfaces.
738The
739.Ic vmstat
740display looks out of place because it is (it was added in as
741a separate display rather than created as a new program).
742The
743.Ic iolat
744command does not implement the common device commands including
745filtering, as it does not use the
746.Xr devstat 3
747mechanism to obtain its statistics.
748