{
  "slug": "nvme-data-units-read",
  "term": "NVMe Data Units Read",
  "aliases": [
    "Data Units Read",
    "DUR",
    "data_units_read"
  ],
  "definition": "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.",
  "note": "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. [nvme-base-2-3-smart]\n\nNVM 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. [nvm-read-accounting]\n\nThe 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. [smartctl-read-fields]\n\nFleet-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. [fast16-read-population]",
  "status": "shipping",
  "advantages": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "nvme-base-2-3-smart",
      "title": "NVM Express Base Specification 2.3, Figure 210, p. 215: read-data and command counters",
      "url": "https://nvmexpress.org/wp-content/uploads/NVM-Express-Base-Specification-Revision-2.3-2025.08.01-Ratified.pdf",
      "accessed": "2026-10-26"
    },
    {
      "id": "nvm-read-accounting",
      "title": "NVM Express NVM Command Set 1.2, sections 1.4.2.7-1.4.2.8 and 3.3.5: SMART accounting and Verify",
      "url": "https://nvmexpress.org/wp-content/uploads/NVM-Express-NVM-Command-Set-Specification-Revision-1.2-2025.08.01-Ratified.pdf",
      "accessed": "2026-10-26"
    },
    {
      "id": "smartctl-read-fields",
      "title": "smartmontools pinned nvmeprint.cpp: distinct data_units_read and host_reads JSON fields",
      "url": "https://github.com/smartmontools/smartmontools/blob/fd31eef5b715c107837ae7d51465334d4d99b5da/src/nvmeprint.cpp#L449-L465",
      "accessed": "2026-10-26"
    },
    {
      "id": "fast16-read-population",
      "title": "Schroeder, Lagisetty and Merchant, FAST 2016: Flash Reliability in Production, sections 2.1-2.2 and 5.1",
      "url": "https://www.usenix.org/system/files/conference/fast16/fast16-papers-schroeder.pdf",
      "accessed": "2026-10-26"
    }
  ],
  "updated": "2026-10-26",
  "limitations": [
    {
      "text": "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.",
      "citationIds": [
        "nvm-read-accounting",
        "nvme-base-2-3-smart"
      ]
    }
  ],
  "related": [
    "nvme-smart-log",
    "nvme-host-read-commands",
    "nvme-data-units-written",
    "nvme-controller-busy-time"
  ]
}
