tegrastats 真实输出逐字段拆解(Orin Nano 实测)
测试设备:NVIDIA Jetson Orin Nano 8GB
系统状态:空闲轻载(未运行推理任务)
采集命令:sudo tegrastats
采样时间:2026-07-12 09:57:53
📊 原始输出全文
07-12-2026 09:57:53 RAM 3157/7607MB (lfb 35x4MB) SWAP 917/3804MB (cached 2MB)
CPU [6%@1344,4%@849,4%@729,5%@729,4%@729,2%@729] EMC_FREQ 1%@2133 GR3D_FREQ 0%@[305]
NVDEC off NVJPG off NVJPG1 off VIC off OFA off APE 200
cpu@51.4C soc2@50.1C soc0@51.1C gpu@52.0C tj@52.2C soc1@52.2C
VDD_IN 5533mW/5533mW VDD_CPU_GPU_CV 635mW/635mW VDD_SOC 1550mW/1550mW
🔍 逐字段拆解手册
1️⃣ 内存子系统(RAM / SWAP)
| 字段 | 数值 | 含义 | 诊断信号 |
|---|---|---|---|
RAM 3157/7607MB |
已用 3157MB / 总 7607MB | 系统物理内存(统一内存架构,同时作显存) | > 90% 时触发 OOM 风险 |
(lfb 35x4MB) |
Largest Free Block:35 个 4MB 连续块 | 内存碎片化程度指标 | 数值越小或块尺寸越小 → 碎片严重,大分配失败 |
SWAP 917/3804MB |
已用 917MB / 总 3804MB | 交换分区占用 | 8GB 板子已用 1GB swap → 说明之前跑过大模型,内存吃紧 |
🔴 反例:
- 若
lfb显示0x4MB→ 无法分配连续 4MB,cudaMalloc失败 - 若
SWAP持续增长 → 物理内存不足,推理速度暴跌(swap 读写带宽 < 1GB/s)
2️⃣ CPU 核心状态
| 字段 | 数值 | 含义 |
|---|---|---|
CPU [6%@1344, 4%@849, 4%@729, 5%@729, 4%@729, 2%@729] |
每个核心:占用率% @ 频率MHz | 6 个核心独立显示(Orin 8 核?这里只显示 6 个,可能屏蔽了 2 个) |
解析:
- 核心 0:6% 占用 @ 1344 MHz(活跃)
- 核心 1~5:4%、4%、5%、4%、2% 占用 @ 729 MHz(未锁频,处于动态降频状态)
✅ 验收标准:跑推理时,若 sudo jetson_clocks 已执行,频率应显示为固定最高值(如 @2400 不再变动)。
反例:若跑模型时频率仍显示 729MHz → 未锁频,性能损失 60% 以上。
3️⃣ 内存带宽控制器(★ 关键隐性瓶颈)
| 字段 | 数值 | 含义 |
|---|---|---|
EMC_FREQ 1%@2133 |
EMC 频率:1% 占用 @ 2133 MHz | EMC = External Memory Controller,控制 DRAM 带宽 |
重要性:
- 许多 Jetson 推理任务 GR3D 占用不到 100%,但 EMC_FREQ 已满 → 真实瓶颈是内存带宽,而非 GPU 算力
- 对应 Roofline Model 中的“内存受限”场景
🔴 反例:
GR3D_FREQ 45%@[918] EMC_FREQ 100%@[3200]
→ GPU 只用 45%,但内存带宽已饱和 → 优化方向:减少全局内存访问、使用共享内存/TensorRT 融合。
4️⃣ GPU 核心状态(★ 推理主力)
| 字段 | 数值 | 含义 |
|---|---|---|
GR3D_FREQ 0%@[305] |
GPU 3D 引擎:0% 占用 @ 305 MHz | 当前未运行图形/CUDA 负载 |
运行推理时:
- 应看到
GR3D_FREQ 95%@[918]或更高 - 若跑模型时
GR3D< 80%,但 EMC 满 → 内存瓶颈 - 若
GR3D< 80%,EMC 也不满 → CPU/IO/同步开销(检查 kernel 启动延迟)
✅ 验收:跑 jetson-inference 分类模型时,GR3D 应 > 90%。
5️⃣ 硬件加速器状态(多媒体引擎)
| 字段 | 状态 | 用途 |
|---|---|---|
NVDEC off |
未激活 | 硬件视频解码(H.264/H.265) |
NVJPG off |
未激活 | 硬件 JPEG 编码 |
NVJPG1 off |
未激活 | 第二个 JPEG 引擎(Orin 双路) |
VIC off |
未激活 | 视频图像合成/格式转换 |
OFA off |
未激活 | 光流加速器(Orin 特有,用于 VSLAM/动作识别) |
APE 200 |
200 MHz | 音频处理引擎(常驻低频) |
🔴 反例:若你使用 OpenCV 做视频解码且 NVDEC 显示 off → 说明没有调用硬件解码器,在用 CPU 软解,功耗飙升。
6️⃣ 温度传感器(⚠️ 降频警戒线)
| 字段 | 数值 | 含义 |
|---|---|---|
cpu@51.4C |
CPU 核心温度 51.4°C | |
soc2@50.1C |
SoC 区域 2 温度 | |
soc0@51.1C |
SoC 区域 0 温度 | |
gpu@52.0C |
GPU 核心温度 | |
**tj@52.2C** |
Temperature Junction(结温) | 最关键:超过 89°C 开始降频,95°C 强制降频保护 |
soc1@52.2C |
SoC 区域 1 温度 |
✅ 验收:锁频跑满负载时,tj 应稳定在 60-75°C(被动散热)或 50-60°C(主动风扇)。
反例:tj@94.5C → 已触发热降频,sudo jetson_clocks 锁频失效,性能减半。
7️⃣ 功耗域(Power Rails)
| 字段 | 数值 | 含义 |
|---|---|---|
VDD_IN 5533mW/5533mW |
总功耗:5533mW(5.53W)瞬时/平均 | 当前为空闲功耗(Orin Nano Super MAXN 模式满载可达 25W) |
VDD_CPU_GPU_CV 635mW |
CPU + GPU + 计算机视觉(CV)功耗 | 计算核心主功耗 |
VDD_SOC 1550mW |
SoC 其余部分:内存控制器、IO、PCIe 等 | 数据搬运功耗 |
诊断规则:
| 场景 | 总功耗 | 结论 |
|---|---|---|
| 空闲 | 5-7W | 正常 |
| 跑 AI 模型 | 15-25W | 正常(MAXN 模式) |
| 跑模型却 < 10W | 功耗低 → 可能未锁频或驱动问题 | 检查 nvpmodel -q |
反例:VDD_IN 7800mW 但 GR3D 20% → CPU 在软解视频/数据预处理,需改用硬件加速。
🎯 快速诊断口诀(记忆版)
看内存:lfb 小 → 碎片多,SWAP 涨 → 内存爆
看 CPU:频率跳 → 没锁频,跑分假
看 EMC:满 100 → 带宽墙,优化访存
看 GPU:不满载 → 找 EMC/CPU/同步
看温度:超 85 → 降频警告,加强散热
看功耗:跑不满 → 查 nvpmodel 模式
📋 性能测试前验收清单(基于 tegrastats)
| 检查项 | 命令/操作 | 通过标准 |
|---|---|---|
| 频率锁定 | sudo jetson_clocks --show |
显示固定最高频率 |
| 功耗模式 | sudo nvpmodel -q |
显示 MAXN / 最高性能档 |
| 空闲温度 | sudo tegrastats 看 tj |
< 60°C(被动散热) |
| 无 swap 积压 | 看 SWAP 字段 |
重启后 SWAP < 100MB |
| 无异常功耗 | VDD_IN |
空闲时 < 10W |
评论
0