git: 341e7f0431 - main - Status/2026Q3/nfsdtop.adoc: Add report
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 20 Oct 2026 16:39:32 UTC
The branch main has been updated by dteske:
URL: https://cgit.FreeBSD.org/doc/commit/?id=341e7f04319b070c4fb04579d322c5bee218d8e5
commit 341e7f04319b070c4fb04579d322c5bee218d8e5
Author: Devin Teske <dteske@FreeBSD.org>
AuthorDate: 2026-10-20 16:36:12 +0000
Commit: Devin Teske <dteske@FreeBSD.org>
CommitDate: 2026-10-20 16:36:12 +0000
Status/2026Q3/nfsdtop.adoc: Add report
Approved by: salvadore
Reviewed by: salvadore
Differential Revision: https://reviews.freebsd.org/D60777
---
.../en/status/report-2026-07-2026-09/nfsdtop.adoc | 44 ++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/website/content/en/status/report-2026-07-2026-09/nfsdtop.adoc b/website/content/en/status/report-2026-07-2026-09/nfsdtop.adoc
new file mode 100644
index 0000000000..bd081626dd
--- /dev/null
+++ b/website/content/en/status/report-2026-07-2026-09/nfsdtop.adoc
@@ -0,0 +1,44 @@
+=== nfsdtop(8) shows who is using the NFS server
+
+Links: +
+link:https://reviews.freebsd.org/D59438[D59438] URL: link:https://reviews.freebsd.org/D59438[] +
+link:https://cgit.freebsd.org/src/commit/?id=60c7313074b93adf4ea70ff44b78b3b4fc15c29f[rG60c7313074b9] URL: link:https://cgit.freebsd.org/src/commit/?id=60c7313074b93adf4ea70ff44b78b3b4fc15c29f[]
+
+Contact: Devin Teske <dteske@FreeBSD.org>
+
+man:nfsstat[1] reports the server as a whole.
+man:nfsdtop[8] reports the user, the group, or the client behind the reads and writes.
+It is a top-like display, taken with man:dtrace[1] from the man:nfsd[8] paths `nfsrvd_read`, `nfsvno_read`, `nfsrvd_write`, and `nfsvno_write`.
+
+The default view is per user.
+`-g` coalesces by group, and `-c` by IPv4 client.
+Each interval prints a total, then the rows that did the I/O, sorted by combined read and write volume.
+The default interval is two seconds.
+The columns are humanized bandwidth unless `-b` asks for the bytes moved in that interval.
+WRITE(IN) is data the clients sent.
+READ(OUT) is data the server sent.
+
+ nfsdtop
+ nfsdtop -c
+ nfsdtop -g -G wheel
+
+A UID, GID, or client address on those paths belongs to the client, not to the server.
+man:nfsdtop[8] does not ask man:getent[1] to name them while it samples.
+Names come from map files in the current directory: [.filename]#.nfsd.passwd#, [.filename]#.nfsd.group#, and [.filename]#.nfsd.hosts#.
+A filter (`-U`, `-G`, or `-C`) is resolved once, from those maps and then with man:getent[1] or man:host[1], and the result is compiled into the man:dtrace[1] predicate.
+
+`-j` emits one JSON object for the view total and one per key, each interval, with the byte counts and the rates.
+`-J` samples the client, group, and user views together:
+
+ nfsdtop -J -N 1
+
+Only root, or a user who can run man:dtrace[1], can run it.
+The client view and `-C` are IPv4 only.
+`-R`, or a non-empty `NFSDTOP_REDACT`, replaces names that are not well-known system accounts with random strings of the same length.
+
+The introduction is in HEAD as of 60c7313074b9 (link:https://reviews.freebsd.org/D59438[D59438]), and man:nfsdtop[8] makes its first release in FreeBSD 16.0.
+
+Thanks to Alexander Ziaee and Benedict Reuschling for the man page, to Adrian Chadd for review, and to Rick Macklem for a look at the NFS side.
+
+Run it on a server that is already busy.
+If the row you need is not a user, a group, or a client, please write.