NVME-WDC-VS-DEVIC(1)
π nvme-wdc-vs-device-waf β the write amplification page (nvme-wdc-vs-devic, section 1, bestie β¨)
okay so bestie, welcome to the glow-up of nvme-wdc-vs-device-waf. this is part of the NVMe Manual and it's genuinely iconic if you're into WDC drives, so let's get into it π
β¨ NAME β¨
nvme-wdc-vs-device-waf β calculates the device write amplification factor and prints both the TLC and SLC results. two results, one command, we love efficiency π«Ά
πΈ SYNOPSIS πΈ
nvme [<global-options>] wdc vs-device-waf <device>
[--namespace-id=<nsid> | -n <nsid>]
π¦ DESCRIPTION π¦
so for the NVMe device you hand over, this command calculates the device TLC and SLC write amplification factor. that's it, that's the whole vibe π₯
the <device> parameter is mandatory, no skipping it, no "oops i forgot" β and it can be either the NVMe character device (ex: /dev/nvme0) or the block device (ex: /dev/nvme0n1). your choice, both slay π
β οΈ real talk: this will only work on WDC devices that support this feature. results for any other device are undefined β like, not "weird", not "kinda wrong", literally undefined. so do a vibe check on your hardware first π
on success it returns 0, error code otherwise. periodt.
π OPTIONS π
-n <nsid>,--namespace-id=<nsid>β sets the command's nsid value to whatever nsid you give it. defaults to0xffffffffif you don't give one. heads up though: this option may not affect anything depending on the log page, because the log page may or may not be specific to a namespace (iykyk, it's giving "it depends" π). the broadcast value0xffffffffcan also be given asallor-1.
π GLOBAL OPTIONS π
these are defined at the top-level nvme command and β plot twist β they're available to this subcommand too, so let's list them all, no gatekeeping π
--dry-runβ prints the command that would be executed, but doesn't actually execute it. manifesting without committing, honestly iconic β¨--no-ioctl-probingβ disables probing for 64-bit IOCTL support.--no-retriesβ disables the retry logic on transient errors. no second chances, we're moving on π-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,'json, orbinary. only one output format at a time, bestie, pick a lane π―--output-format-version=<version>β selects the output format version. version1uses the original field naming, while version2(the default) provides more consistent and script-friendly field names. other versions are rejected β don't even try it π«--quietβ suppresses informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level. shhh, main character silence π€«--set-options=<key=value>[,<key=value>...]β sets libnvme library options for this invocation. supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir.--timeout=<ms>β sets the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). we love a no-deadline queen β³-v,--verboseβ increases the level of detail in the output. may be specified multiple times to further increase verbosity. the more the merrier, fr fr π£οΈ
these options can also be set as machine-wide defaults in nvme-cli.conf(5). and listen β a command-line flag always overrides the file. always. no cap π
π EXAMPLES π
- has the program issue WDC vs-device-waf plugin Command :
# nvme wdc vs-device-waf /dev/nvme0
look at her go π§
π NVME π
part of the nvme-user suite. one of us, one of us π«Ά
and that's the whole page, bestie π this was the NVMe manual, dated 10/30/2026, and you just read NVME-WDC-VS-DEVIC(1) β go forth and calculate those write amplification factors, you absolute legend πβ¨
π¦ where this page comes from
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms