Jetson Admin Cheatsheet: Fan Control, Power Modes, jtop, and K8s One-Liners

Jetson Admin Cheatsheet: Fan Control, Power Modes, jtop, and K8s One-Liners

A pragmatic set of commands and explanations for NVIDIA Jetson Xavier / AGX admins: customize fan curves, watch temperatures, set power and clocks, install jtop across multiple nodes, and keep essential Kubernetes and container commands handy.

Context & Safety

  • Commands assume sudo access on Jetson devices (Ubuntu-based).
  • Changing fan and power settings can increase noise and power draw. Monitor temps and stability.
  • Avoid hard-coding sudo passwords in scripts on shared systems; see the security note below.

Quick Monitoring

sudo tegrastats
sudo cat /etc/nvfancontrol.conf

tegrastats streams live temperatures, clocks, and utilization. The nvfancontrol file defines the policy that maps temperature to PWM/RPM.

Customize Fan Control (nvfancontrol)

  1. Backup the config:
    sudo cp /etc/nvfancontrol.conf /etc/nvfancontrol.conf.backup
  2. Edit the file:
    sudo nano /etc/nvfancontrol.conf
  3. Reduce sensor polling frequency:
    POLLING_INTERVAL 5
  4. Add a custom profile:
    FAN_PROFILE rmax {
        #TEMP   HYST   PWM   RPM
        0       0      0     0
        30      10     60    1200
        50      8      100   1800
        65      8      150   2500
        75      8      200   3200
        85      0      255   3640
    }
  5. Set default:
    FAN_DEFAULT_PROFILE rmax
  6. Restart service:
    sudo systemctl restart nvfancontrol

Container & Kubernetes Essentials

sudo crictl ps -a
kubectl exec -it nginx-7854ff8877-2t27h -- /bin/bash
kubectl get pods -n cattle-system -w
kubectl get nodes -o wide

Power Modes & Clocks (AGX)

sudo nvpmodel -m 0
sudo nvpmodel -q
sudo jetson_clocks

Install jtop (jetson-stats)

Single node:

sudo apt update && sudo apt install python3-pip -y && sudo pip3 install jetson-stats && sudo reboot

Multiple nodes via SSH:

#!/bin/bash
PASSWORD="user_password_for_all"
nodes=("10.10.10.11" "10.10.10.12" "10.10.10.13" "10.10.10.15")
names=("worker1" "worker2" "worker3" "worker4")
for i in "${!nodes[@]}"; do
  echo "Updating ${names[i]} (${nodes[i]})"
  ssh ${names[i]}@${nodes[i]} "echo $PASSWORD | sudo -S apt update && sudo -S apt install python3-pip -y && sudo -S pip3 install jetson-stats && sudo reboot"
done

Best practice: prefer SSH keys and restricted sudoers over embedded passwords.

CUDA Quick Check

nvcc --version