diff --git a/man/Makefile.am b/man/Makefile.am index ae7b70715..9ecb38945 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -3,6 +3,7 @@ dist_noinst_man_MANS = \ %D%/man1/cstyle.1 dist_man_MANS = \ + %D%/man1/zilstat.1 \ %D%/man1/zarcstat.1 \ %D%/man1/raidz_test.1 \ %D%/man1/test-runner.1 \ diff --git a/man/man1/zilstat.1 b/man/man1/zilstat.1 new file mode 100644 index 000000000..e752f0259 --- /dev/null +++ b/man/man1/zilstat.1 @@ -0,0 +1,187 @@ +.\" SPDX-License-Identifier: CDDL-1.0 +.\" +.\" CDDL HEADER START +.\" +.\" The contents of this file are subject to the terms of the +.\" Common Development and Distribution License, Version 1.0 only +.\" (the "License"). You may not use this file except in compliance +.\" with the License. +.\" +.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +.\" or https://opensource.org/licenses/CDDL-1.0. +.\" See the License for the specific language governing permissions +.\" and limitations under the License. +.\" +.\" When distributing Covered Code, include this CDDL HEADER in each +.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. +.\" If applicable, add the following below this CDDL HEADER, with the +.\" fields enclosed by brackets "[]" replaced with your own identifying +.\" information: Portions Copyright [yyyy] [name of copyright owner] +.\" +.\" CDDL HEADER END +.\" +.\" Copyright (c) 2026 Christos Longros. All rights reserved. +.\" +.Dd March 9, 2026 +.Dt ZILSTAT 1 +.Os +. +.Sh NAME +.Nm zilstat +.Nd report ZFS Intent Log statistics +.Sh SYNOPSIS +.Nm +.Op Fl v +.Op Fl a Ns | Ns Fl p Ar pool Ns | Ns Fl d Ar dataset Ns Op , Ns Ar dataset Ns … +.Op Fl f Ar field Ns Op , Ns Ar field Ns … +.Op Fl s Ar separator +.Op Fl i Ar interval +. +.Sh DESCRIPTION +.Nm +prints statistics about the ZFS Intent Log (ZIL). +The ZIL is used to log synchronous write operations and is replayed on +pool import if the system crashes before those writes are committed to +the main pool. +.Pp +By default, global ZIL statistics are displayed. +When a pool or dataset is specified, per-dataset statistics are shown +instead. +.Pp +If an +.Ar interval +is specified, the output is repeated every +.Ar interval +seconds showing the change in values since the previous sample. +Without an interval, cumulative values are displayed. +.Pp +The following fields are available: +.Bl -tag -compact -offset Ds -width "imnw" +.It Sy time +Current time +.It Sy pool +Pool name +.It Sy ds +Dataset name +.It Sy obj +Objset ID +.It Sy cc +Commit count +.It Sy cwc +Commit writer count +.It Sy cec +Commit error count +.It Sy csc +Commit stall count +.It Sy cSc +Commit suspend count +.It Sy cCc +Commit crash count +.It Sy ic +In-transaction count +.It Sy iic +Indirect in-transaction count +.It Sy iib +Indirect in-transaction bytes +.It Sy icc +Copied in-transaction count +.It Sy icb +Copied in-transaction bytes +.It Sy inc +Needcopy in-transaction count +.It Sy inb +Needcopy in-transaction bytes +.It Sy idc +Direct (copied + needcopy) count +.It Sy idb +Direct (copied + needcopy) bytes +.It Sy iwc +Total write (indirect + direct) count +.It Sy iwb +Total write (indirect + direct) bytes +.It Sy imnc +Normal metaslab count +.It Sy imnb +Normal metaslab bytes +.It Sy imnw +Normal metaslab write bytes +.It Sy imna +Normal metaslab alloc bytes +.It Sy imsc +SLOG metaslab count +.It Sy imsb +SLOG metaslab bytes +.It Sy imsw +SLOG metaslab write bytes +.It Sy imsa +SLOG metaslab alloc bytes +.It Sy imc +Total metaslab (normal + SLOG) count +.It Sy imb +Total metaslab (normal + SLOG) bytes +.It Sy imw +Total metaslab (normal + SLOG) write bytes +.It Sy ima +Total metaslab (normal + SLOG) alloc bytes +.It Sy se% +Space efficiency percentage (bytes / alloc) +.It Sy sen% +Normal space efficiency percentage +.It Sy ses% +SLOG space efficiency percentage +.It Sy te% +Total efficiency percentage (bytes / write) +.It Sy ten% +Normal total efficiency percentage +.It Sy tes% +SLOG total efficiency percentage +.El +. +.Sh OPTIONS +.Bl -tag -width "-s" +.It Fl h +Display a help message. +.It Fl a +Print statistics for all datasets across all pools. +.It Fl d Ar dataset +Print statistics for the specified dataset(s). +Multiple datasets may be given as a comma-separated list. +.It Fl f Ar field +Display only the specified fields. +Multiple fields may be given as a comma-separated list. +See +.Sx DESCRIPTION +for available fields. +.It Fl i Ar interval +Print statistics every +.Ar interval +seconds. +Values are reported as rates per second. +.It Fl p Ar pool +Print statistics for all datasets in the specified pool. +.It Fl s Ar separator +Override the default field separator +.Pq two spaces +with a custom string. +.It Fl v +List all available field headers and their definitions. +.El +. +.Sh ENVIRONMENT +.Bl -tag -width "Linux" +.It Sy Linux +Statistics are read from +.Pa /proc/spl/kstat/zfs/zil +for global stats and from per-pool objset files under +.Pa /proc/spl/kstat/zfs/ Ns Ar pool Ns Pa / . +.It Sy FreeBSD +Statistics are read via +.Xr sysctl 8 +from the +.Sy kstat.zfs +tree. +.El +. +.Sh SEE ALSO +.Xr zarcstat 1 , +.Xr zpool-status 8