'\" t .\" Title: nvme-wdc-smart-log-add .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: 06/28/2017 .\" Manual: NVMe Manual .\" Source: NVMe .\" Language: English .\" .TH "NVME\-WDC\-SMART\-LO" "1" "06/28/2017" "NVMe" "NVMe Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" nvme-wdc-smart-log-add \- Send NVMe WDC smart\-log\-add Vendor Unique Command, return result .SH "SYNOPSIS" .sp .nf \fInvme wdc smart\-log\-add\fR [\-\-interval=, \-i ] [\-\-output\-format= \-o ] .fi .SH "DESCRIPTION" .sp For the NVMe device given, send a Vendor Unique WDC smart\-log\-add command and provide the additional smart log\&. The \-\-interval option will return performance statistics from the specified reporting interval\&. .sp The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0)\&. .sp This will only work on WDC devices supporting this feature\&. Results for any other device are undefined\&. .sp On success it returns 0, error code otherwise\&. .SH "OPTIONS" .PP \-i , \-\-interval= .RS 4 Return the statistics from specific interval, defaults to 14 .RE .PP \-o , \-\-output\-format= .RS 4 Set the reporting format to \fIhuman\fR, or \fIjson\fR\&. Only one output format can be used at a time\&. Default is human\&. .RE .sp Valid Interval values and description :\- .TS allbox tab(:); ltB ltB. T{ Value T}:T{ Description T} .T& lt lt lt lt lt lt lt lt lt lt. T{ .sp \fB1\fR T}:T{ .sp Most recent five (5) minute accumulated set\&. T} T{ .sp \fB2\-12\fR T}:T{ .sp Previous five (5) minute accumulated sets\&. T} T{ .sp \fB13\fR T}:T{ .sp The accumulated total of sets 1 through 12 that contain the previous hour of accumulated statistics\&. T} T{ .sp \fB14\fR T}:T{ .sp The statistical set accumulated since power\-up\&. T} T{ .sp \fB15\fR T}:T{ .sp The statistical set accumulated during the entire lifetime of the device\&. T} .TE .sp 1 .SH "OUTPUT EXPLANATION" .TS allbox tab(:); ltB ltB. T{ Field T}:T{ Description T} .T& lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt lt. T{ .sp \fBHost Read Commands\fR T}:T{ .sp Number of host read commands received during the reporting period\&. T} T{ .sp \fBHost Read Blocks\fR T}:T{ .sp Number of 512\-byte blocks requested during the reporting period\&. T} T{ .sp \fBAverage Read Size\fR T}:T{ .sp Average Read size is calculated using (Host Read Blocks/Host Read Commands)\&. T} T{ .sp \fBHost Read Cache Hit Commands\fR T}:T{ .sp Number of host read commands that serviced entirely from the on\-board read cache during the reporting period\&. No access to the NAND flash memory was required\&. This count is only updated if the entire command was serviced from the cache memory\&. T} T{ .sp \fBHost Read Cache Hit Percentage\fR T}:T{ .sp Percentage of host read commands satisfied from the cache\&. T} T{ .sp \fBHost Read Cache Hit Blocks\fR T}:T{ .sp Number of 512\-byte blocks of data that have been returned for Host Read Cache Hit Commands during the reporting period\&. This count is only updated with the blocks returned for host read commands that were serviced entirely from cache memory\&. T} T{ .sp \fBAverage Read Cache Hit Size\fR T}:T{ .sp Average size of read commands satisfied from the cache\&. T} T{ .sp \fBHost Read Commands Stalled\fR T}:T{ .sp Number of host read commands that were stalled due to a lack of resources within the SSD during the reporting period (NAND flash command queue full, low cache page count, cache page contention, etc\&.)\&. Commands are not considered stalled if the only reason for the delay was waiting for the data to be physically read from the NAND flash\&. It is normal to expect this count to equal zero on heavily utilized systems\&. T} T{ .sp \fBHost Read Commands Stalled Percentage\fR T}:T{ .sp Percentage of read commands that were stalled\&. If the figure is consistently high, then consideration should be given to spreading the data across multiple SSDs\&. T} T{ .sp \fBHost Write Commands\fR T}:T{ .sp Number of host write commands received during the reporting period\&. T} T{ .sp \fBHost Write Blocks\fR T}:T{ .sp Number of 512\-byte blocks written during the reporting period\&. T} T{ .sp \fBAverage Write Size\fR T}:T{ .sp Average Write size calculated using (Host Write Blocks/Host Write Commands)\&. T} T{ .sp \fBHost Write Odd Start Commands\fR T}:T{ .sp Number of host write commands that started on a non\-aligned boundary during the reporting period\&. The size of the boundary alignment is normally 4K; therefore this returns the number of commands that started on a non\-4K aligned boundary\&. The SSD requires slightly more time to process non\-aligned write commands than it does to process aligned write commands\&. T} T{ .sp \fBHost Write Odd Start Commands Percentage\fR T}:T{ .sp Percentage of host write commands that started on a non\-aligned boundary\&. If this figure is equal to or near 100%, and the NAND Read Before Write value is also high, then the user should investigate the possibility of offsetting the file system\&. For Microsoft Windows systems, the user can use Diskpart\&. For Unix\-based operating systems, there is normally a method whereby file system partitions can be placed where required\&. T} T{ .sp \fBHost Write Odd End Commands\fR T}:T{ .sp Number of host write commands that ended on a non\-aligned boundary during the reporting period\&. The size of the boundary alignment is normally 4K; therefore this returns the number of commands that ended on a non\-4K aligned boundary\&. T} T{ .sp \fBHost Write Odd End Commands Percentage\fR T}:T{ .sp Percentage of host write commands that ended on a non\-aligned boundary\&. T} T{ .sp \fBHost Write Commands Stalled\fR T}:T{ .sp Number of host write commands that were stalled due to a lack of resources within the SSD during the reporting period\&. The most likely cause is that the write data was being received faster than it could be saved to the NAND flash memory\&. If there was a large volume of read commands being processed simultaneously, then other causes might include the NAND flash command queue being full, low cache page count, or cache page contention, etc\&. It is normal to expect this count to be non\-zero on heavily utilized systems\&. T} T{ .sp \fBHost Write Commands Stalled Percentage\fR T}:T{ .sp Percentage of write commands that were stalled\&. If the figure is consistently high, then consideration should be given to spreading the data across multiple SSDs\&. T} T{ .sp \fBNAND Read Commands\fR T}:T{ .sp Number of read commands issued to the NAND devices during the reporting period\&. This figure will normally be much higher than the host read commands figure, as the data needed to satisfy a single host read command may be spread across several NAND flash devices\&. T} T{ .sp \fBNAND Read Blocks\fR T}:T{ .sp Number of 512\-byte blocks requested from NAND flash devices during the reporting period\&. This figure would normally be about the same as the host read blocks figure T} T{ .sp \fBAverage NAND Read Size\fR T}:T{ .sp Average size of NAND read commands\&. T} T{ .sp \fBNAND Write Commands\fR T}:T{ .sp Number of write commands issued to the NAND devices during the reporting period\&. There is no real correlation between the number of host write commands issued and the number of NAND Write Commands\&. T} T{ .sp \fBNAND Write Blocks\fR T}:T{ .sp Number of 512\-byte blocks written to the NAND flash devices during the reporting period\&. This figure would normally be about the same as the host write blocks figure\&. T} T{ .sp \fBAverage NAND Write Size\fR T}:T{ .sp Average size of NAND write commands\&. This figure should never be greater than 128K, as this is the maximum size write that is ever issued to a NAND device\&. T} T{ .sp \fBNAND Read Before Write\fR T}:T{ .sp This is the number of read before write operations that were required to process non\-aligned host write commands during the reporting period\&. See Host Write Odd Start Commands and Host Write Odd End Commands\&. NAND Read Before Write operations have a detrimental effect on the overall performance of the device\&. T} .TE .sp 1 .SH "EXAMPLES" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Has the program issue WDC smart\-log\-add Vendor Unique Command with default interval (14) : .sp .if n \{\ .RS 4 .\} .nf # nvme wdc smart\-log\-add /dev/nvme0 .fi .if n \{\ .RE .\} .RE .SH "NVME" .sp Part of the nvme\-user suite\&.