Command lines for NVIDIA Data Center GPU Manager on Linux GPU servers: starting nv-hostengine, then dcgmi for discovery, groups, health watches, diagnostics, policies, job statistics, live monitoring, NVLink and configuration, as NVIDIA's reference and built-in help print them for DCGM 4.7.0. Rows that start with dashes are options of their section's subcommand, bare numbers are field IDs for dmon, and capitals mark values to replace. dcgm-exporter and the API bindings are left out.
Groups, field groups, watches, job records and configuration targets exist only in the memory of the running host engine; a restart loses them, while a value already written to a GPU can remain.
Command
What it does
nv-hostengine
Start host engineWith no options it daemonizes and listens on TCP 127.0.0.1:5555, the endpoint dcgmi uses by default.
sudo systemctl enable --now nvidia-dcgm
Enable and start the serviceStarts the packaged systemd unit immediately and on every boot; that unit runs the host engine as root.
systemctl is-active nvidia-dcgm
Check the service is activePrints active when the unit is running; follow it with a real dcgmi request to prove readiness.
systemctl cat nvidia-dcgm.service
Show unit file and drop-insPrints all the pieces systemd will merge into the effective unit, so overrides are visible before a restart.
sudo systemctl edit nvidia-dcgm.service
Open a drop-in overrideAdds options or environment variables without touching the packaged unit; systemd reloads itself but does not restart the service.
sudo systemctl daemon-reload
Reload unit filesNeeded after editing unit or drop-in files by hand; the running host engine keeps its old settings until restarted.
sudo systemctl restart nvidia-dcgm.service
Restart the host engine serviceStarts a new process from the effective unit; groups, watches, jobs and stored targets of the old one are lost.
systemctl status nvidia-dcgm.service --no-pager
Show service statusPart of the verification sequence after a change, before listing GPUs with dcgmi again.
Delete a field groupRemoves it from the running host engine; field groups also disappear when that process exits.
dcgmi fieldgroup --list --json
Field groups as JSONPrints a plain-text count and then one JSON document per field group, not a single document.
Background health watches 16
PCIe, memory, NVLink, thermal and power, and ConnectX watches can need about 60 seconds of samples before the first useful check.
Command
What it does
dcgmi health -s a
Start health watchReplaces the group's watch mask with every system: PCIe, memory, InfoROM, thermal and power, NVLink, driver, ConnectX, IMEX and NVSwitch.
dcgmi health -c
Check healthEvaluates the samples retained by the enabled watches for all GPUs and reports Healthy, Warning or Failure.
dcgmi health --set pmi --group 1
Set selected watchesLetters combine, except that a must stand alone; each --set overwrites the previous selection for the group.
dcgmi health --set pmitnd --group GROUP-ID --update-interval 30 --max-keep-age 600
Watch with explicit samplingSamples the driver every 30 seconds and keeps 600 seconds of data, which are also the defaults.
dcgmi health -s p
Watch PCIe healthFlags an excessive replay rate and bus or fabric related XIDs; needs about a minute of samples first.
Watch InfoROM healthRaises an incident when the InfoROM is reported as corrupt.
dcgmi health -s d
Watch driver healthReports recovery states in which the driver needs a traffic drain, a GPU reset or a reboot.
dcgmi health -s t
Watch thermal and power healthLooks for clock slowdowns caused by heat or power, threshold violations and unreadable power readings.
dcgmi health -s n
Watch NVLink healthChecks link errors and their rates, bit-error-rate thresholds and the state of the fabric.
dcgmi health -s e
Watch IMEX healthAdded in 4.7.0: follows the IMEX daemon and domain state independently of the NVLink selector.
dcgmi health -s x
Watch ConnectX healthReports an unhealthy ConnectX device and its fatal or nonfatal PCIe AER errors.
dcgmi health --fetch --group 1
Show enabled watchesLists which systems are watched for the group; the SM row it shows cannot be selected with --set.
dcgmi health --check --group g --json
Check all GPUs as JSONg is the built-in alias for all GPUs; s, i, c and a mean NVSwitches, GPU instances, compute instances and everything.
dcgmi health -g 1 -c
Check one groupPrints the overall result and each incident, such as excessive PCIe replays; it reads retained data and runs no active test.
dcgmi health --clear --group 1
Disable health watchesTurns off every watch for the group; otherwise watches stay active in the host engine after dcgmi exits.
Diagnostic levels and named tests 25
NVIDIA states that DCGM diagnostics do not replace its offline field diagnostics and do not determine RMA eligibility; a failure can also originate in the host, libraries, cooling or power.
Command
What it does
dcgmi diag -r 1
Quick diagnosticLevel 1 runs the built-in software deployment checks and normally finishes in seconds; use it as a readiness check.
dcgmi diag -r 2
Medium diagnosticLevel 2 adds the memory and pcie tests to level 1 and normally takes about two minutes.
dcgmi diag -r 3
Long diagnosticLevel 3 adds diagnostic, memory_bandwidth, targeted_stress and targeted_power; expect roughly a quarter of an hour.
dcgmi diag -r 4
Extended diagnosticLevel 4 adds memtest and pulse_test to the level 3 set and runs longest.
dcgmi diag -r short
Level 1 by namequick and short are aliases for level 1; medium, long and xlong select levels 2 to 4.
dcgmi diag --run 1 --entity-id gpu:0
Quick suite on one GPUWithout a target the run covers all GPUs and all NVIDIA CPUs; --entity-id narrows it.
dcgmi diag --run 1 --entity-id gpu:0 --verbose
Show which subcheck failedAdds informational and warning messages for each test to the report.
dcgmi diag --run 2 --entity-id gpu:0 --json
Medium suite as JSONJSON keeps per-entity status, warnings and error codes for scripts, but its schema is release-specific.
Monitor CPU coresFollows utilization and clock speed for four cores, sampling every 1,000 ms.
Field IDs for dmon and field groups 46
Command
What it does
150
GPU temperatureDCGM_FI_DEV_GPU_TEMP_CELSIUS: the current GPU temperature reading in degrees Celsius.
140
Memory temperatureDCGM_FI_DEV_MEMORY_TEMP_CELSIUS: the temperature reported for the GPU memory.
158
Slowdown temperatureDCGM_FI_DEV_GPU_TEMP_SLOWDOWN_CELSIUS: the threshold at which the GPU begins to slow down.
155
Power usageDCGM_FI_DEV_BOARD_POWER_WATTS: board power draw in watts.
157
Instantaneous power usageDCGM_FI_DEV_BOARD_POWER_RAW_WATTS: the instantaneous reading in watts, next to the regular value in field 155.
160
Power limitDCGM_FI_DEV_BOARD_POWER_LIMIT_REQUESTED_WATTS: the power limit currently set for the GPU, in watts.
156
Energy since driver loadDCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION in mJ; deprecated in favour of field 1611, which counts whole joules.
203
GPU utilizationDCGM_FI_DEV_GPU_UTIL: integer percent; field 1613 reports the same measurement as a 0.0 to 1.0 ratio.
1613
GPU utilization ratioDCGM_FI_DEV_GPU_UTIL_RATIO: a double between 0.0 and 1.0, one of the base-unit fields added in 4.7.0.
204
Memory copy utilizationDCGM_FI_DEV_MEM_COPY_UTIL: an integer percentage; the ratio form is field 1614.
206
Encoder utilizationDCGM_FI_DEV_ENC_UTIL: an integer percentage; field 207 is the decoder counterpart.
250
Framebuffer totalDCGM_FI_DEV_FB_TOTAL in MiB; field 1625 gives the capacity in bytes.
251
Framebuffer freeDCGM_FI_DEV_FB_FREE in MiB; field 1626 gives the same value in bytes.
252
Framebuffer usedDCGM_FI_DEV_FB_USED in MiB; field 1627 gives the same value in bytes.
254
Framebuffer used ratioDCGM_FI_DEV_FB_USED_RATIO: used memory divided by total minus reserved, from 0.0 to 1.0.
100
SM clockDCGM_FI_DEV_SM_CLOCK in MHz; field 1603 reports hertz.
101
Memory clockDCGM_FI_DEV_MEM_CLOCK in MHz; field 1604 reports hertz.
190
Performance stateDCGM_FI_DEV_GPU_PSTATE: P-state number, where 0 is the highest of 16 states.
191
Fan speedDCGM_FI_DEV_FAN_SPEED in percent, which can exceed 100; field 1612 is the ratio form.
112
Clock event reasonsDCGM_FI_DEV_CLOCKS_EVENT_REASONS: bitmask of the clock event reasons active now, such as HW_SLOWDOWN or SW_THERMAL.
202
PCIe replay counterDCGM_FI_DEV_PCIE_REPLAY_TOTAL; the error-injection walkthrough writes 99999 into it to trip a policy.
230
XID errorDCGM_FI_DEV_XID_ERROR: the reading is the number of the XID that occurred.
310
Single-bit ECC errors, volatileDCGM_FI_DEV_ECC_SBE_VOL_TOTAL: the overall volatile count; fields 314, 316 and 318 split it into L1 cache, L2 cache and device memory.
311
Double-bit ECC errors, volatileDCGM_FI_DEV_ECC_DBE_VOL_TOTAL: the overall volatile count, one of the things the memory health watch evaluates.
312
Single-bit ECC errors, aggregateDCGM_FI_DEV_ECC_SBE_AGG_TOTAL: persistent counter that only ever increases.
313
Double-bit ECC errors, aggregateDCGM_FI_DEV_ECC_DBE_AGG_TOTAL: persistent counter of double-bit errors that is monotonically increasing.
390
Pages retired for single-bit errorsDCGM_FI_DEV_PAGE_RETIRED_SBE_TOTAL: a count that only ever increases.
391
Pages retired for double-bit errorsDCGM_FI_DEV_PAGE_RETIRED_DBE_TOTAL: monotonically increasing, like field 390 for single-bit errors.
392
Pages pending retirementDCGM_FI_DEV_PAGE_RETIRED_PENDING: 1 when any page waits to be retired, otherwise 0.
393
Rows remapped, uncorrectableDCGM_FI_DEV_ROW_REMAP_UNCORRECTABLE_TOTAL: remapped rows caused by errors that could not be corrected.
394
Rows remapped, correctableDCGM_FI_DEV_ROW_REMAP_CORRECTABLE_TOTAL: remapped rows caused by errors that were corrected.
395
Row remap failureDCGM_FI_DEV_ROW_REMAP_FAILED: tells if a row remapping attempt did not succeed.
1001
Graphics engine activityDCGM_FI_PROF_GR_ENGINE_UTIL_RATIO: share of time a graphics or compute context is bound and busy; dmon column GRACT.
1002
SM activityDCGM_FI_PROF_SM_UTIL_RATIO: share of cycles in which a streaming multiprocessor has work assigned.
1003
SM occupancyDCGM_FI_PROF_SM_OCCUPANCY_RATIO: resident warps relative to the theoretical maximum per SM.
1004
Tensor Core activityDCGM_FI_PROF_TENSOR_UTIL_RATIO: share of cycles a tensor pipe is busy; dmon column TENSO.
1005
Memory interface activityDCGM_FI_PROF_DRAM_UTIL_RATIO: share of cycles spent moving data to or from device memory; column DRAMA.
1009
PCIe transmit bytesDCGM_FI_PROF_PCIE_TX_BYTES: header plus payload sent by the GPU, so device-to-host copies appear here.
1010
PCIe receive bytesDCGM_FI_PROF_PCIE_RX_BYTES: header plus payload arriving at the GPU, so host-to-device copies appear here.
1011
NVLink transmit bytesDCGM_FI_PROF_NVLINK_TX_BYTES: aggregate over all links for a GPU entity, or one link for a link entity.
1012
NVLink receive bytesDCGM_FI_PROF_NVLINK_RX_BYTES: per GPU it sums every link; select a gpu_link entity for a single port.
1200
NVLink transmit packetsDCGM_FI_DEV_NVLINK_TX_PACKET_TOTAL: NVLink5 and later only; unsupported on NVLink4 and older.
1202
NVLink receive packetsDCGM_FI_DEV_NVLINK_RX_PACKET_TOTAL: cumulative counter that needs NVLink5 or newer hardware.
1100
CPU utilizationDCGM_FI_DEV_CPU_UTIL_RATIO: total utilization of an NVIDIA CPU core as a ratio.
1110
CPU temperatureDCGM_FI_DEV_CPU_TEMP_CELSIUS: degrees Celsius for an NVIDIA CPU entity.
1130
CPU power usageDCGM_FI_DEV_CPU_POWER_WATTS: present draw of an NVIDIA CPU in watts.
Topology and NVLink 11
Command
What it does
dcgmi topo -g GROUPID
Group topologyReports the group's CPU core affinity, whether it is NUMA optimal and its slowest interconnect path.
dcgmi topo --gpuid 0
Topology of one GPUShows the GPU's CPU core affinity and how it reaches each other GPU: PCIe path class and direct NVLinks.
dcgmi topo --group 1 --json
Group topology as JSONWorst Path in the report names the slowest PCIe relationship among the GPUs of the group.
dcgmi topo
Topology of all GPUsWith no target option it queries the built-in all-GPU group.
dcgmi nvlink --link-status --show-entity-ids
Link states with entity IDsShows each supported port as port:packed-ID, the number to pass to dmon as link:ID.
dcgmi nvlink --link-status
NVLink link statesOne character per port for every GPU and NVSwitch: U up, D down, X disabled, _ not supported.
dcgmi nvlink --errors --gpuid 0
NVLink error countersMost values are cumulative and reading does not clear them, so compare a report before and after the workload.
dcgmi nvlink --errors --gpuid 0 --json
NVLink errors as JSONOnly the error report supports JSON; link-status output is text only.
dcgmi dmon --field-id 1200,1202 --entity-id gpu:0
NVLink traffic for a GPUWith a GPU as target the two packet counters are summed over every link of that GPU.
Inject a temperature value--offset timestamps the sample that many seconds in the future; 1 second is the default.
dcgmi test --introspect --gpuid 0 --field 150
Inspect cached field dataShows sample count, timestamps, monitor interval, retention age and watchers for the field.
dcgmi test --pause
Pause all metric collectionEvery watcher of the host engine receives unavailable values until --resume or a restart.
dcgmi test --resume
Resume metric collectionEnds a collection pause that would otherwise persist for all clients of the host engine.
No row on this page matches that filter.
Notes
Diagnostics
dcgmi diag -r 1 runs only the software deployment checks and normally finishes in seconds, and dcgmi diag -r 2 adds the memory and PCIe tests for a run of about two minutes. dcgmi diag -r 3 adds the diagnostic, memory bandwidth, targeted stress and targeted power tests and normally lasts about fifteen minutes; dcgmi diag -r 4 puts memtest and the pulse test on top. Each level includes the ones below it. The longer suites load GPU compute, memory, power and interconnect, so they belong on drained nodes, and a single test can be run by name, as in dcgmi diag -r nvbandwidth. NVIDIA says the diagnostics do not replace its offline field diagnostics and do not determine RMA eligibility. They run through nv-hostengine, and dcgmi -v prints the build information NVIDIA asks for in a problem report. In a shell, exit status 226 means the diagnostic ran and reported an error.
Health and monitoring
dcgmi health -s a replaces the group's watch mask with every subsystem (PCIe, memory, InfoROM, thermal and power, NVLink, driver, ConnectX, IMEX, NVSwitch) and dcgmi health -c evaluates what those watches have retained. It is passive: no test load is applied, and several watches need about a minute of samples before the first useful check. dcgmi dmon --field-id 150,155 --count 5 prints temperature and power per GPU; dmon always needs a field list or a field group, and dcgmi dmon --list shows the IDs with their short column names.
Groups, stats and topology
dcgmi discovery -l lists GPUs with their DCGM IDs. Many commands act on a group: dcgmi group -c NAME creates one and dcgmi group -g GROUPID -a ENTITYID adds members, after which health, configuration, diagnostics and statistics can target that subset. dcgmi stats -e starts the process-accounting watches, which have to be running before the workload; a job is then bracketed with dcgmi stats --jstart batch-4815 --group 1 and dcgmi stats --jstop batch-4815. dcgmi topo -g GROUPID reports CPU affinity, NUMA optimality and the slowest interconnect path of a group. dcgmi config --get shows current and target settings such as compute mode, power limit and ECC. Groups, watches, job records and configuration targets live in the memory of the host engine and are gone after it restarts.
Questions
What is the difference between dcgmi diag -r 1, 2, 3 and 4?
dcgmi diag -r 1 runs the software deployment checks in seconds. dcgmi diag -r 2 adds the memory and PCIe tests and takes about two minutes. dcgmi diag -r 3 adds the diagnostic, memory bandwidth, targeted stress and targeted power tests and takes about 15 minutes. dcgmi diag -r 4 adds memtest and the pulse test and runs longest. Each level includes the lower ones.
Does dcgmi need nv-hostengine to be running?
Yes. dcgmi sends its requests to a DCGM host engine, by default on localhost. On a packaged install start it with sudo systemctl enable --now nvidia-dcgm and confirm with dcgmi discovery -l. Only dcgmi --version and the help output work without a connection.
Which dmon field IDs show GPU temperature, power, utilization and memory?
Field 150 is GPU temperature in degrees C, 155 is power usage in watts, 203 is GPU utilization in percent and 252 is used framebuffer in MiB. Pass them as a comma-separated list, as in dcgmi dmon --field-id 150,155 --count 5; dcgmi dmon --list prints every ID.
Is dcgmi health the same as dcgmi diag?
No. Health watches are passive: dcgmi health -c evaluates samples that the enabled watches collected during normal operation and applies no load. A diagnostic such as dcgmi diag -r 3 actively exercises the hardware and should run on GPUs taken out of service. A node can be healthy and still fail a diagnostic.
How do I record GPU statistics for one scheduler job?
Enable the watches once with dcgmi stats -e, call dcgmi stats --jstart batch-4815 --group 1 with your own job ID just before the workload, dcgmi stats --jstop batch-4815 after it, and read the result with dcgmi stats --job batch-4815 --verbose.
Do DCGM groups and watches survive a restart of the host engine?
No. Groups, field groups, watches, job records, health settings and configuration targets are in-memory objects of the running host engine and are lost when it restarts, so sudo systemctl restart nvidia-dcgm.service means recreating them. Field-based policies are the exception: the host engine persists them.