NVMe Data Units Read
NVMe Data Units Read is the SMART / Health Information log counter of read data attributed to designated I/O commands, excluding metadata and reported in rounded-up 512,000-byte units.
Base 2.3 places the 128-bit field at bytes 32-47 of log 02h. For a nonzero value, multiplying by 512000 gives a reporting-bucket upper edge, not an exact byte total; zero means not reported. [1]
NVM Command Set 1.2 includes Compare, Read and Verify. Verify contributes checked data without transferring that data to the host, so this is not simply host-buffer traffic. [2]
The pinned smartctl implementation exports data_units_read separately from host_reads under nvme_smart_health_information_log; its root host_reads.units and host_reads.commands also remain distinct. Preserve the original integer precision. [3]
Fleet-study read counts need a separate measurement mapping. Schroeder et al. used custom PCIe drives and daily user-plus-internal operation counts, including garbage collection, then compared reads and uncorrectable errors within drive-months. Those observations are not identified as this NVMe SMART field. [4]
Relations
Limitations
- The command population differs from Host Read Commands; their ratio is not generally an average Read-request size or a physical NAND read-amplification measure. [2, 1]
Citations
- NVM Express Base Specification 2.3, Figure 210, p. 215: read-data and command counters
- NVM Express NVM Command Set 1.2, sections 1.4.2.7-1.4.2.8 and 3.3.5: SMART accounting and Verify
- smartmontools pinned nvmeprint.cpp: distinct data_units_read and host_reads JSON fields
- Schroeder, Lagisetty and Merchant, FAST 2016: Flash Reliability in Production, sections 2.1-2.2 and 5.1