Project

General

Profile

Bug #6090

IOPS, bandwidth, and latency kstats for NFS server

Added by Marcel Telka about 4 years ago. Updated about 3 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Category:
nfs - NFS server and client
Start date:
2015-07-29
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

We want the IOPS, bandwidth, and latency kstats for NFS server. The bandwidth should include the NFS protocol overhead. The kstats should be two level: one "global" for the NFS server and broken down per share.


Related issues

Related to illumos gate - Bug #6476: Taking exported_lock RW_READER lock in common_dispatch() can cause deadlock in nfssrvClosed2015-11-24

Actions
Related to illumos gate - Bug #6472: Panic in rfs4_compound_kstat_res()Closed2015-11-22

Actions
Related to illumos gate - Bug #6696: Per-client NFS server IOPS, bandwidth, and latency kstatsRejected2016-02-29

Actions
Related to illumos gate - Bug #6747: xdr_READDIR4res() bypass the XDR mblk APIClosed2016-03-13

Actions
Blocked by illumos gate - Bug #5907: xdrmblk_getpos() is unreliableClosed2015-05-04

Actions

History

#1

Updated by Marcel Telka about 4 years ago

The implementation

All of the IOPS, bandwidth, and latency kstats are I/O kstats. See kstat_io(9s) and kstat_queue(9f). For every NFS (or NFS_ACL) procedure/operation, one I/O kstat is used. For kstat_io(9s), the "writes" are transfers from NFS client to the NFS server (the NFS client "writes" the requests to the server), the "reads" are transfers from the NFS server to the NFS client (the NFS client "reads" the responses from the server). For kstat_queue(9f), only runq is used.

The global kstat names are rfsprocio or aclprocio + the protocol version number + the procedure name, for example rfsprocio_v3_getattr or aclprocio_v2_getacl. The instance number is always 0 here.

The per-share kstats are named share_v?_PROCNAME (for example share_v4_getattr) - this naming schema is same for both NFS and NFS_ACL - with the instance number same as exi_id. The exi_id is new unique id added to exportinfo. It is designed to change on every new share (something like a serial number). On re-share the exi_id and kstats for the share are preserved. In addition to the share_v?_PROCNAME kstats, there is one more per-exi kstat named "share" with the same instance number (exi_id) with the exposed shared pathname and type of the filesystem - pseudo or real, so the kstat consumer could pair the kstats' instance to the shared path.

#2

Updated by Marcel Telka about 4 years ago

  • Blocked by Bug #5907: xdrmblk_getpos() is unreliable added
#4

Updated by Marcel Telka about 4 years ago

  • Status changed from In Progress to Pending RTI
#5

Updated by Electric Monk about 4 years ago

  • % Done changed from 0 to 100

git commit 22146ea93e24c7deb02c49c33b2ab98605ce78b4

commit  22146ea93e24c7deb02c49c33b2ab98605ce78b4
Author: Marcel Telka <marcel.telka@nexenta.com>
Date:   2015-09-03T17:57:14.000Z

    6090 IOPS, bandwidth, and latency kstats for NFS server
    Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
    Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
    Approved by: Dan McDonald <danmcd@omniti.com>

#6

Updated by Marcel Telka about 4 years ago

  • Status changed from Pending RTI to Resolved
#7

Updated by Marcel Telka almost 4 years ago

  • Related to Bug #6476: Taking exported_lock RW_READER lock in common_dispatch() can cause deadlock in nfssrv added
#8

Updated by Marcel Telka almost 4 years ago

  • Related to Bug #6472: Panic in rfs4_compound_kstat_res() added
#9

Updated by Marcel Telka over 3 years ago

  • Related to Bug #6696: Per-client NFS server IOPS, bandwidth, and latency kstats added
#10

Updated by Marcel Telka over 3 years ago

  • Related to Bug #6747: xdr_READDIR4res() bypass the XDR mblk API added
#11

Updated by Gordon Ross about 3 years ago

  • Status changed from Resolved to Feedback
#12

Updated by Marcel Telka about 3 years ago

  • Assignee deleted (Marcel Telka)
#13

Updated by Marcel Telka about 3 years ago

commit f7877f5d39900cfd8b20dd673e5ccc1ef7cc7447
Author: Dan McDonald <danmcd@omniti.com>
Date:   Tue Sep 13 11:36:30 2016 -0400

    backout: 6090 IOPS, bandwidth, and latency kstats for NFS server
            (Performance issues discovered)
    This reverts commit 22146ea93e24c7deb02c49c33b2ab98605ce78b4.
#14

Updated by Marcel Telka about 3 years ago

  • Status changed from Feedback to Rejected

Reject as "will not integrate due to architectural issues."

Also available in: Atom PDF