NVME-SOLIDIGM-WORK(1)

πŸ’… NVME-SOLIDIGM-WORK(1) β€” the workload tracker glow-up

okay so bestie, you're looking at nvme-solidigm-workload-tracker β€” that's the page name, that's the manual, that's the vibe. It lives in the NVMe Manual, and we're about to make it make sense. πŸ¦‹


✨ NAME ✨

nvme-solidigm-workload-tracker β€” real-time capture of Workload Tracker samples. literally watching your drive's whole personality in real time. πŸ”₯


πŸŽ€ SYNOPSIS πŸŽ€

nvme [<global-options>] solidigm workload-tracker <device>
                        [--uuid-index=<id> | -U <id>]
                        [--enable | -e]
                        [--disable | -d]
                        [--sample-time=<time> | -s <time>]
                        [--type=<type> | -t <type>]
                        [--run-time=<seconds> | -r <seconds>]
                        [--flush-freq=<count> | -f <count>]
                        [--wall-clock | -w]
                        [--trigger-field=<field> | -T <field>]
                        [--trigger-threshold=<value> | -V <value>]
                        [--trigger-on-delta | -D]
                        [--trigger-on-latency | -L]

🌸 DESCRIPTION 🌸

So what does it do? It captures and displays real-time workload tracker samples for the given Solidigm NVMe device. That's the whole assignment. It lets you monitor and analyze the device's workload characteristics β€” think of it as a vibe check, but for your SSD. πŸ‘‘

The <device> parameter is mandatory, no skipping it, that's not optional energy. And it can be either:

  • the NVMe character device (ex: /dev/nvme0), or
  • a namespace block device (ex: /dev/nvme0n1)
pick one, bestie. the drive does not read minds. 😭

πŸ’… OPTIONS πŸ’…

  • -U <id>, --uuid-index=<id> β€” specify the UUID index for the command. Valid range is 0-127. πŸŽ€
  • -e, --enable β€” enable the workload tracker before capturing samples. turning it on, basically.
  • -d, --disable β€” disable the workload tracker after capturing samples. clean exit, we love to see it.
  • -s <time>, --sample-time=<time> β€” set the sample interval. valid values are: default, 1ms, 5ms, 10ms, 50ms, 100ms, 500ms, 1s, 5s, 10s, 30s, 1m, 5m, 10m, 30m, 1h. yes, all of them, no I'm not abbreviating, iykyk. ⏱️
  • -t <type>, --type=<type> β€” set the tracker type. valid types are: Base, CmdQ, Pattern, RandSeq, Throttle, Power, Defrag. pick your main character. ✨
  • -r <seconds>, --run-time=<seconds> β€” limit runtime capture time, in seconds. a lil timer so it doesn't run forever, ngl.
  • -f <count>, --flush-freq=<count> β€” number of samples (1 to 126) to wait before extracting data. default is 100 samples.
  • -w, --wall-clock β€” log the current wall timestamp when the entry was retrieved. timestamps, but make it wall-clock. πŸ•°οΈ
  • -T <field>, --trigger-field=<field> β€” field name to stop trigger on.
  • -V <value>, --trigger-threshold=<value> β€” field value to trigger stop sampling.
  • -D, --trigger-on-delta β€” trigger on delta to stop sampling. delta said stop, so it stops. πŸ’€
  • -L, --trigger-on-latency β€” use the latency tracker to trigger stop sampling.
  • -v, --verbose β€” increase logging verbosity. can be used multiple times, so go off, stack them. 🫢

🌈 GLOBAL OPTIONS 🌈

these are defined at the top-level nvme command and they're available to this subcommand too. the big-sister options, fr fr.

  • --dry-run β€” print the command that would be executed, but don't actually execute it. window shopping. πŸ›οΈ
  • --no-ioctl-probing β€” disable probing for 64-bit IOCTL support.
  • --no-retries β€” disable retry logic on transient errors.
  • -o <fmt>, --output-format=<fmt> β€” set the reporting format to normal, tabular, 'json, or binary. only one output format may be used at a time. one format, one vibe. πŸ’…
  • --output-format-version=<version> β€” select the output format version. version 1 uses the original field naming, while version 2 (the default) provides more consistent and script-friendly field names. other versions are rejected. 😀
  • --quiet β€” suppress informational messages. errors are still reported, and --quiet cancels any --verbose for the library log level. so quiet really means quiet. 🀫
  • --set-options=<key=value>[,<key=value>...] β€” set libnvme library options for this invocation. supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir.
  • --timeout=<ms> β€” set the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff). no cap, literally no time limit. ⏳
  • -v, --verbose β€” increase the level of detail in the output. may be specified multiple times to further increase verbosity.
these options can also be set as machine-wide defaults in nvme-cli.conf(5). a command-line flag always overrides the file. flag supremacy, periodt. πŸ‘‘

πŸ”₯ EXAMPLES πŸ”₯

  1. enable the workload tracker and capture samples:
# nvme solidigm workload-tracker /dev/nvme0 --enable
  1. capture workload tracker samples with a 1ms interval for 60 seconds:
# nvme solidigm workload-tracker /dev/nvme0 --enable --sample-time=1ms --run-time=60
  1. disable the workload tracker:
# nvme solidigm workload-tracker /dev/nvme0 --disable
  1. enable the workload tracker and capture samples with a specific sample time and type:
# nvme solidigm workload-tracker /dev/nvme0 --enable --sample-time=1ms --type=Base
  1. capture Power tracker samples with a 10-second interval for 5 minutes:
# nvme solidigm workload-tracker /dev/nvme0 --enable --type=Power --sample-time=10s --run-time=300

🧚 NVME 🧚

part of the nvme-user suite. that's the family. 🫢


and that's the page, bestie!! 🌟 this whole thing is from the NVMe Manual, dated 10/30/2026 β€” so like, remember the date, it's giving archival. mwah. πŸ’–πŸŽ€

πŸ“¦ where this page comes from