mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 19:19:32 +03:00
7b232e9354
The meaning of the `free` field is currently `zfs_arc_sys_free`, which is the target amount of memory to leave free for the system, and is constant after booting. This commit changes the meaning of `free` to arc_free_memory(), the amount of memory that the ARC considers to be free. It also adds a new arcstat field `avail`, which tracks `arc_available_memory()`. Since `avail` can be negative, it also updates the arcstat script to pretty-print negative values. example output: $ arcstat -f time,miss,arcsz,c,grow,need,free,avail 1 time miss arcsz c grow need free avail 15:03:02 39K 114G 114G 0 0 2.4G 407M 15:03:03 42K 114G 114G 0 0 2.1G 120M 15:03:04 40K 114G 114G 0 0 1.8G -177M 15:03:05 24K 113G 112G 0 0 1.7G -269M 15:03:06 29K 111G 110G 0 0 1.6G -385M 15:03:07 27K 110G 108G 0 0 1.4G -535M 15:03:08 13K 108G 108G 0 0 2.2G 239M 15:03:09 33K 107G 107G 0 0 1.3G -639M 15:03:10 16K 105G 102G 0 0 2.6G 704M 15:03:11 7.2K 102G 102G 0 0 5.1G 3.1G 15:03:12 42K 103G 102G 0 0 4.8G 2.8G Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: Pavel Zakharov <pavel.zakharov@delphix.com> Reviewed-by: Tony Nguyen <tony.nguyen@delphix.com> Signed-off-by: Matthew Ahrens <mahrens@delphix.com> Closes #10494
503 lines
5.3 KiB
Groff
503 lines
5.3 KiB
Groff
.\"
|
|
.\" This file and its contents are supplied under the terms of the
|
|
.\" Common Development and Distribution License ("CDDL"), version 1.0.
|
|
.\" You may only use this file in accordance with the terms of version
|
|
.\" 1.0 of the CDDL.
|
|
.\"
|
|
.\" A full copy of the text of the CDDL should have accompanied this
|
|
.\" source. A copy of the CDDL is also available via the Internet at
|
|
.\" http://www.illumos.org/license/CDDL.
|
|
.\"
|
|
.\"
|
|
.\" Copyright 2014 Adam Stevko. All rights reserved.
|
|
.\" Copyright (c) 2015 by Delphix. All rights reserved.
|
|
.\" Copyright (c) 2020 by AJ Jordan. All rights reserved.
|
|
.\"
|
|
.TH ARCSTAT 1 "May 7, 2020"
|
|
.SH NAME
|
|
arcstat \- report ZFS ARC and L2ARC statistics
|
|
.SH SYNOPSIS
|
|
.LP
|
|
.nf
|
|
\fBarcstat\fR [\fB-hvx\fR] [\fB-f field[,field]...\fR] [\fB-o file\fR] [\fB-s string\fR] [\fBinterval\fR [\fBcount\fR]]
|
|
.fi
|
|
|
|
.SH DESCRIPTION
|
|
.LP
|
|
The \fBarcstat\fR utility print various ZFS ARC and L2ARC statistics in
|
|
vmstat-like fashion.
|
|
.sp
|
|
|
|
.sp
|
|
.LP
|
|
The \fBarcstat\fR command reports the following information:
|
|
.sp
|
|
.ne 2
|
|
|
|
.\"
|
|
.sp
|
|
.ne 1
|
|
.na
|
|
\fBc \fR
|
|
.ad
|
|
.RS 14n
|
|
ARC target size
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBdh% \fR
|
|
.ad
|
|
.RS 14n
|
|
Demand data hit percentage
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBdm% \fR
|
|
.ad
|
|
.RS 14n
|
|
Demand data miss percentage
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBmfu \fR
|
|
.ad
|
|
.RS 14n
|
|
MFU list hits per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBmh% \fR
|
|
.ad
|
|
.RS 14n
|
|
Metadata hit percentage
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBmm% \fR
|
|
.ad
|
|
.RS 14n
|
|
Metadata miss percentage
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBmru \fR
|
|
.ad
|
|
.RS 14n
|
|
MRU list hits per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBph% \fR
|
|
.ad
|
|
.RS 14n
|
|
Prefetch hits percentage
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBpm% \fR
|
|
.ad
|
|
.RS 14n
|
|
Prefetch miss percentage
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBdhit \fR
|
|
.ad
|
|
.RS 14n
|
|
Demand data hits per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBdmis \fR
|
|
.ad
|
|
.RS 14n
|
|
Demand data misses per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBhit% \fR
|
|
.ad
|
|
.RS 14n
|
|
ARC hit percentage
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBhits \fR
|
|
.ad
|
|
.RS 14n
|
|
ARC reads per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBmfug \fR
|
|
.ad
|
|
.RS 14n
|
|
MFU ghost list hits per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBmhit \fR
|
|
.ad
|
|
.RS 14n
|
|
Metadata hits per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBmiss \fR
|
|
.ad
|
|
.RS 14n
|
|
ARC misses per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBmmis \fR
|
|
.ad
|
|
.RS 14n
|
|
Metadata misses per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBmrug \fR
|
|
.ad
|
|
.RS 14n
|
|
MRU ghost list hits per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBphit \fR
|
|
.ad
|
|
.RS 14n
|
|
Prefetch hits per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBpmis \fR
|
|
.ad
|
|
.RS 14n
|
|
Prefetch misses per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBread \fR
|
|
.ad
|
|
.RS 14n
|
|
Total ARC accesses per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBtime \fR
|
|
.ad
|
|
.RS 14n
|
|
Time
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBsize \fR
|
|
.ad
|
|
.RS 14n
|
|
ARC size
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBarcsz \fR
|
|
.ad
|
|
.RS 14n
|
|
Alias for \fBsize\fR
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBdread \fR
|
|
.ad
|
|
.RS 14n
|
|
Demand data accesses per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBeskip \fR
|
|
.ad
|
|
.RS 14n
|
|
evict_skip per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBmiss% \fR
|
|
.ad
|
|
.RS 14n
|
|
ARC miss percentage
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBmread \fR
|
|
.ad
|
|
.RS 14n
|
|
Metadata accesses per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBpread \fR
|
|
.ad
|
|
.RS 14n
|
|
Prefetch accesses per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBl2hit% \fR
|
|
.ad
|
|
.RS 14n
|
|
L2ARC access hit percentage
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBl2hits \fR
|
|
.ad
|
|
.RS 14n
|
|
L2ARC hits per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBl2miss \fR
|
|
.ad
|
|
.RS 14n
|
|
L2ARC misses per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBl2read \fR
|
|
.ad
|
|
.RS 14n
|
|
Total L2ARC accesses per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBl2size \fR
|
|
.ad
|
|
.RS 14n
|
|
Size of the L2ARC
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBmtxmis \fR
|
|
.ad
|
|
.RS 14n
|
|
mutex_miss per second
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBl2bytes \fR
|
|
.ad
|
|
.RS 14n
|
|
Bytes read per second from the L2ARC
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBl2miss% \fR
|
|
.ad
|
|
.RS 14n
|
|
L2ARC access miss percentage
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBl2asize \fR
|
|
.ad
|
|
.RS 14n
|
|
Actual (compressed) size of the L2ARC
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBgrow \fR
|
|
.ad
|
|
.RS 14n
|
|
ARC grow disabled
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBneed \fR
|
|
.ad
|
|
.RS 14n
|
|
ARC reclaim needed
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBfree \fR
|
|
.ad
|
|
.RS 14n
|
|
The ARC's idea of how much free memory there is, which includes evictable memory in the page cache.
|
|
Since the ARC tries to keep \fBavail\fR above zero, \fBavail\fR is usually more instructive to observe than \fBfree\fR.
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fBavail \fR
|
|
.ad
|
|
.RS 14n
|
|
The ARC's idea of how much free memory is available to it, which is a bit less than \fBfree\fR.
|
|
May temporarily be negative, in which case the ARC will reduce the target size \fBc\fR.
|
|
.RE
|
|
.\"
|
|
|
|
.SH OPTIONS
|
|
.LP
|
|
The following options are supported:
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fB\fB-f\fR\fR
|
|
.ad
|
|
.RS 12n
|
|
Display only specific fields. See \fBDESCRIPTION\fR for supported statistics.
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fB\fB-h\fR\fR
|
|
.ad
|
|
.RS 12n
|
|
Display help message.
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fB\fB-o\fR\fR
|
|
.ad
|
|
.RS 12n
|
|
Report statistics to a file instead of the standard output.
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fB\fB-s\fR\fR
|
|
.ad
|
|
.RS 12n
|
|
Display data with a specified separator (default: 2 spaces).
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fB\fB-x\fR\fR
|
|
.ad
|
|
.RS 12n
|
|
Print extended stats (same as -f time,mfu,mru,mfug,mrug,eskip,mtxmis,dread,pread,read).
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fB\fB-v\fR\fR
|
|
.ad
|
|
.RS 12n
|
|
Show field headers and definitions
|
|
.RE
|
|
|
|
.SH OPERANDS
|
|
.LP
|
|
The following operands are supported:
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fB\fIcount\fR\fR
|
|
.ad
|
|
.RS 12n
|
|
Display only \fIcount\fR reports.
|
|
.RE
|
|
|
|
.sp
|
|
.ne 2
|
|
.na
|
|
\fB\fIinterval\fR\fR
|
|
.ad
|
|
.RS 12n
|
|
Specify the sampling interval in seconds.
|
|
.RE
|
|
|
|
.SH AUTHORS
|
|
.LP
|
|
arcstat was originally written in Perl by Neelakanth Nadgir and supported only ZFS ARC statistics.
|
|
Mike Harsch updated it to support L2ARC statistics.
|
|
John Hixson ported it to Python for FreeNAS over some beer, after which many individuals from the OpenZFS community continued to maintain and improve it.
|