Update various statements in vmstat(8) to match reality.
- The process stats are actually thread counts rather than process counts. - Simplify various descriptions to remove mention of stats that are updated every 5 seconds (all VM related stats are now "instant", only the load average is updated every 5 seconds). - Don't make any mention of special treatment for processes that have been active in the last 20 seconds. We don't track that stat. - Rework the description of active virtual memory. Call it mapped virtual memory and explicitly point out it is not the same as the active page queue (which corresponds to "Active" in top(1)), and also hint at the possible bogusness of the value (e.g. if a process maps a single page out of a multiple GB file, the entire file's size is considered mapped). - Simplify a few descriptions that implied their output was a value per interval. All of the "rate" values are per-second rates scaled across the interval. - Update a few comments for 'struct vmtotal' along similar lines. Reported by: mwlucas (indirectly) Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D13905
This commit is contained in:
parent
e6dd0a0e92
commit
9a7a98a0dc
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=328134
@ -41,7 +41,6 @@
|
|||||||
*/
|
*/
|
||||||
#define MAXSLP 20
|
#define MAXSLP 20
|
||||||
|
|
||||||
/* Systemwide totals computed every five seconds. */
|
|
||||||
struct vmtotal {
|
struct vmtotal {
|
||||||
uint64_t t_vm; /* total virtual memory */
|
uint64_t t_vm; /* total virtual memory */
|
||||||
uint64_t t_avm; /* active virtual memory */
|
uint64_t t_avm; /* active virtual memory */
|
||||||
@ -53,12 +52,12 @@ struct vmtotal {
|
|||||||
uint64_t t_armshr; /* active shared real memory */
|
uint64_t t_armshr; /* active shared real memory */
|
||||||
uint64_t t_free; /* free memory pages */
|
uint64_t t_free; /* free memory pages */
|
||||||
int16_t t_rq; /* length of the run queue */
|
int16_t t_rq; /* length of the run queue */
|
||||||
int16_t t_dw; /* jobs in ``disk wait'' (neg
|
int16_t t_dw; /* threads in ``disk wait'' (neg
|
||||||
priority) */
|
priority) */
|
||||||
int16_t t_pw; /* jobs in page wait */
|
int16_t t_pw; /* threads in page wait */
|
||||||
int16_t t_sl; /* jobs sleeping in core */
|
int16_t t_sl; /* threads sleeping in core */
|
||||||
int16_t t_sw; /* swapped out runnable/short
|
int16_t t_sw; /* swapped out runnable/short
|
||||||
block jobs */
|
block threads */
|
||||||
uint16_t t_pad[3];
|
uint16_t t_pad[3];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
.\" @(#)vmstat.8 8.1 (Berkeley) 6/6/93
|
.\" @(#)vmstat.8 8.1 (Berkeley) 6/6/93
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\"
|
.\"
|
||||||
.Dd November 19, 2015
|
.Dd January 18, 2018
|
||||||
.Dt VMSTAT 8
|
.Dt VMSTAT 8
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -248,31 +248,39 @@ By default,
|
|||||||
displays the following information:
|
displays the following information:
|
||||||
.Bl -tag -width indent
|
.Bl -tag -width indent
|
||||||
.It procs
|
.It procs
|
||||||
Information about the numbers of processes in various states.
|
Information about the number of threads in various states:
|
||||||
.Pp
|
.Pp
|
||||||
.Bl -tag -width indent -compact
|
.Bl -tag -width indent -compact
|
||||||
.It r
|
.It r
|
||||||
in run queue
|
running or in run queue
|
||||||
.It b
|
.It b
|
||||||
blocked for resources (i/o, paging, etc.)
|
blocked for resources (i/o, paging, etc.)
|
||||||
.It w
|
.It w
|
||||||
runnable or short sleeper (< 20 secs) but swapped
|
swapped out
|
||||||
.El
|
.El
|
||||||
.It memory
|
.It memory
|
||||||
Information about the usage of virtual and real memory.
|
Information about the usage of virtual and real memory.
|
||||||
Virtual pages (reported in units of 1024 bytes) are considered active if
|
.Pp
|
||||||
they belong to processes which are running or have run in the last 20
|
Mapped virtual memory is a sum of all of the virtual pages belonging
|
||||||
seconds.
|
to mapped virtual memory objects.
|
||||||
|
Note that the entire memory object's size is considered mapped even if
|
||||||
|
only a subset of the object's pages are currently mapped.
|
||||||
|
This statistic is not related to the active page queue which is used to track
|
||||||
|
real memory.
|
||||||
.Pp
|
.Pp
|
||||||
.Bl -tag -width indent -compact
|
.Bl -tag -width indent -compact
|
||||||
.It avm
|
.It avm
|
||||||
active virtual pages
|
mapped virtual memory
|
||||||
|
.Po previously called active in
|
||||||
|
.Nm
|
||||||
|
output
|
||||||
|
.Pc
|
||||||
.It fre
|
.It fre
|
||||||
size of the free list
|
size of the free list
|
||||||
.El
|
.El
|
||||||
.It page
|
.It page
|
||||||
Information about page faults and paging activity.
|
Information about page faults and paging activity.
|
||||||
These are averaged each five seconds, and given in units per second.
|
These are given in units per second.
|
||||||
.Pp
|
.Pp
|
||||||
.Bl -tag -width indent -compact
|
.Bl -tag -width indent -compact
|
||||||
.It flt
|
.It flt
|
||||||
@ -286,11 +294,11 @@ pages paged in
|
|||||||
.It po
|
.It po
|
||||||
pages paged out
|
pages paged out
|
||||||
.It fr
|
.It fr
|
||||||
pages freed per second
|
pages freed
|
||||||
.\" .It de
|
.\" .It de
|
||||||
.\" anticipated short term memory shortfall
|
.\" anticipated short term memory shortfall
|
||||||
.It sr
|
.It sr
|
||||||
pages scanned by clock algorithm, per-second
|
pages scanned by page daemon
|
||||||
.El
|
.El
|
||||||
.It disks
|
.It disks
|
||||||
Disk operations per second (this field is system dependent).
|
Disk operations per second (this field is system dependent).
|
||||||
@ -319,15 +327,15 @@ matching pattern is specified (see above),
|
|||||||
will only display the given devices or the devices matching the pattern,
|
will only display the given devices or the devices matching the pattern,
|
||||||
and will not randomly select other devices in the system.
|
and will not randomly select other devices in the system.
|
||||||
.It faults
|
.It faults
|
||||||
Trap/interrupt rate averages per second over last 5 seconds.
|
Trap/interrupt rates per second.
|
||||||
.Pp
|
.Pp
|
||||||
.Bl -tag -width indent -compact
|
.Bl -tag -width indent -compact
|
||||||
.It in
|
.It in
|
||||||
device interrupts per interval (including clock interrupts)
|
device interrupts (including clock interrupts)
|
||||||
.It sy
|
.It sy
|
||||||
system calls per interval
|
system calls
|
||||||
.It cs
|
.It cs
|
||||||
cpu context switch rate (switches/interval)
|
cpu context switches
|
||||||
.El
|
.El
|
||||||
.It cpu
|
.It cpu
|
||||||
Breakdown of percentage usage of CPU time.
|
Breakdown of percentage usage of CPU time.
|
||||||
@ -336,7 +344,7 @@ Breakdown of percentage usage of CPU time.
|
|||||||
.It us
|
.It us
|
||||||
user time for normal and low priority processes
|
user time for normal and low priority processes
|
||||||
.It sy
|
.It sy
|
||||||
system time
|
system and interrupt time
|
||||||
.It id
|
.It id
|
||||||
cpu idle
|
cpu idle
|
||||||
.El
|
.El
|
||||||
@ -352,10 +360,7 @@ default memory file
|
|||||||
The command:
|
The command:
|
||||||
.Dl vmstat -w 5
|
.Dl vmstat -w 5
|
||||||
will print what the system is doing every five
|
will print what the system is doing every five
|
||||||
seconds; this is a good choice of printing interval since this is how often
|
seconds.
|
||||||
some of the statistics are sampled in the system.
|
|
||||||
Others vary every second and running the output for a while will make it
|
|
||||||
apparent which are recomputed every second.
|
|
||||||
.Pp
|
.Pp
|
||||||
The command:
|
The command:
|
||||||
.Dl vmstat -p da -p cd -w 1
|
.Dl vmstat -p da -p cd -w 1
|
||||||
|
Loading…
Reference in New Issue
Block a user