Cisco IOS-XE / NX-OS Device Health Check
Structured triage procedure for assessing Cisco device health across IOS-XE and
NX-OS platforms. Produces a prioritized findings report with severity
classifications and recommended actions.
Commands are labeled [IOS-XE] or [NX-OS] where they diverge. Unlabeled
commands work on both platforms.
When to Use
- - Device reported as slow, dropping traffic, or unresponsive
- Scheduled health audit of IOS-XE routers/switches or Nexus platforms
- Post-change verification after upgrades, patches, or configuration changes
- Capacity planning data collection for CPU, memory, and link utilization
- Incident response when a Cisco device is suspected as the fault domain
- NX-OS VDC isolation troubleshooting — health check scoped to a specific VDC
Prerequisites
- - SSH or console access to the device (privilege 1 minimum for IOS-XE,
show role for NX-OS) - IOS-XE 16.x/17.x or NX-OS 9.x/10.x (commands validated against IOS-XE 17.3+ and NX-OS 10.2+)
- Network reachability to management interface confirmed
- Awareness of the device's normal baseline (CPU, memory, traffic patterns)
- For NX-OS: identify which VDC you are operating in (
show vdc current)
Procedure
Follow this sequence. Each step produces data for the final report. If the device
is unresponsive, skip to Step 6 for crash recovery.
Step 1: Establish Baseline Context
Collect identity, uptime, and platform context.
[IOS-XE]
CODEBLOCK0
[NX-OS]
CODEBLOCK1
Record: hostname, OS version, uptime, hardware model, current time.
Short uptime means a recent reload or crash — investigate immediately.
On NX-OS, confirm VDC context: all subsequent commands apply to this VDC only.
Step 2: CPU Utilization
IOS-XE separates Route Processor (RP) and QuantumFlow Processor (QFP). Triage
both planes independently. NX-OS uses a unified supervisor model — show system
resources is the primary view.
[IOS-XE]
CODEBLOCK2
[NX-OS]
CODEBLOCK3
IOS-XE interpretation: Compare 5-second, 1-minute, and 5-minute RP averages.
If RP CPU is normal but QFP drops are climbing, the data plane is overloaded while
control plane is healthy — different remediation than RP overload. Key RP processes:
IP Input (traffic storms), BGP Router (route churn), Crypto IKMP (VPN storms),
IOSD (control plane congestion).
NX-OS interpretation: show system resources reports CPU as kernel + user
percentages. Normal idle should be above 60%. NX-OS control plane CPU runs hotter
than IOS-XE RP because the supervisor handles both planes. Key processes: netstack
(forwarding), bgp (route processing), stp (spanning tree), vpc (vPC keepalive).
Step 3: Memory Utilization
[IOS-XE]
CODEBLOCK4
[NX-OS]
CODEBLOCK5
IOS-XE: Calculate used percentage from processor pool: (Total - Free) / Total * 100.
Check fragmentation: if largest free block < 10% of total free, memory is fragmented.
NX-OS: show system resources reports memory as total/used/free in KB. NX-OS
reserves a larger kernel memory footprint than IOS-XE — used percentages above 60%
are typical. Watch for MemFree dropping below 15% of total.
Step 4: Interface Health
CODEBLOCK6
[IOS-XE]
CODEBLOCK7
[NX-OS]
CODEBLOCK8
For each interface with errors:
- - Calculate error rate: INLINECODE11
- CRC errors → Layer 1 issue (cabling, optics, SFP seating)
- Input errors without CRC → buffer overruns
- Output drops → congestion; check QoS policy or link capacity
- On NX-OS,
show hardware internal errors reveals ASIC-level drops not visible
in standard interface counters
Step 5: Routing Protocol Health
CODEBLOCK9
[IOS-XE]
CODEBLOCK10
[NX-OS]
CODEBLOCK11
Verify: expected route count, all neighbors in established/full state, no unexpected
withdrawals. On NX-OS, vPC peer-link state is critical — a failed peer-link orphans
traffic. BGP prefix counts that deviate >10% from baseline indicate route churn.
Step 6: Environment and Platform
[IOS-XE]
CODEBLOCK12
[NX-OS]
CODEBLOCK13
Check: power supply status, fan health, temperature readings. Any environmental
alarm escalates immediately. On IOS-XE, review crashinfo: for recent crash dumps.
On NX-OS, show cores lists supervisor and module core dumps — presence indicates
a process crash requiring investigation.
Threshold Tables
Reference: references/threshold-tables.md for detailed per-parameter thresholds.
| Parameter | Normal | Warning | Critical | Platform Notes |
|---|
| CPU 5-min avg | < 40% | 40–70% | > 70% | NX-OS: expect 5–10% higher baseline |
| CPU 5-sec spike |
< 80% | 80–90% | > 90% | IOS-XE RP only; NX-OS: use system resources |
| QFP drops/sec | < 100 | 100–1000 | > 1000 | IOS-XE only |
| Memory used | < 70% | 70–85% | > 85% | NX-OS: normal baseline is 55–65% |
| Interface error rate | < 0.01% | 0.01–0.1% | > 0.1% | Both platforms |
| Output drops/hr | < 100 | 100–1000 | > 1000 | Both platforms |
| Routing neighbors | All established | Flapping | Down | NX-OS: include vPC state |
| Temperature | Within spec | 5°C of max | At/above max | Per-sensor spec varies |
Decision Trees
Primary Triage
CODEBLOCK14
Escalation Criteria
Escalate to senior engineer or TAC when:
- - CPU sustained > 90% for 15+ minutes with no identifiable cause
- Memory below 15% free with no recent change to explain consumption
- Traceback, CPUHOG, or MALLOCFAIL in logs (IOS-XE); core dump present (NX-OS)
- Any environmental alarm (power, fan, temperature)
- More than 3 routing neighbor state changes in the last hour
- NX-OS module in non-OK state or vPC peer-link failure
- QFP drops exceeding 10,000/sec with no traffic anomaly explanation (IOS-XE)
Report Template
CODEBLOCK15
Troubleshooting
Device Unresponsive to SSH
Try console access. If console also unresponsive, check power and environment
via out-of-band management (CIMC for UCS-based, smart PDU, or console server).
On IOS-XE: collect dir crashinfo: after recovery. On NX-OS: show cores and
show system reset-reason.
NX-OS VDC Context Confusion
Health data is VDC-scoped. If metrics look wrong, verify VDC: show vdc current.
Switch VDC with switchto vdc [name]. The default VDC contains system-level
resources; admin VDC shows aggregate hardware.
CPU Spikes During Health Check
Show commands and SNMP polling can briefly spike CPU. Wait 30 seconds after
connecting before collecting CPU data. Use terminal length 0 (IOS-XE) or
terminal length 0 (NX-OS) to avoid paging pauses.
IOS-XE QFP Drops vs RP CPU
High QFP drops with normal RP CPU means the data plane is stressed but control
plane is healthy. Do not restart the device — the RP is functioning normally.
Investigate traffic patterns, ACL complexity, and NAT session counts. Use
show platform hardware qfp active feature to identify which QFP feature is
consuming resources.
NX-OS Module Issues
If show module reports a module not in "ok" state, collect show module
internal exception-log module [n] before taking action. Powercycling a linecard
(poweroff module [n] / no poweroff module [n]) can resolve transient failures
but requires change control.
Inconsistent Memory Between Platforms
IOS-XE and NX-OS report memory differently. IOS-XE show memory statistics shows
IOS memory pools; NX-OS show system resources shows Linux-level memory. NX-OS
baseline memory usage is higher (55–65% is normal) because the Linux kernel and
system daemons consume more than IOS-XE's monolithic process model.
Cisco IOS-XE / NX-OS 设备健康检查
用于评估 IOS-XE 和 NX-OS 平台上 Cisco 设备健康的结构化分类流程。生成带有严重性分类和推荐操作的优先级发现报告。
命令在差异处标记为 [IOS-XE] 或 [NX-OS]。未标记的命令在两个平台上均可使用。
使用时机
- - 设备报告为运行缓慢、丢包或无响应
- IOS-XE 路由器/交换机或 Nexus 平台的定期健康审计
- 升级、补丁或配置更改后的变更验证
- CPU、内存和链路利用率的容量规划数据收集
- 怀疑 Cisco 设备为故障域时的应急响应
- NX-OS VDC 隔离故障排除 — 针对特定 VDC 的健康检查
前提条件
- - 设备的 SSH 或控制台访问(IOS-XE 最低权限 1,NX-OS 需要 show 角色)
- IOS-XE 16.x/17.x 或 NX-OS 9.x/10.x(命令已在 IOS-XE 17.3+ 和 NX-OS 10.2+ 上验证)
- 确认管理接口的网络可达性
- 了解设备的正常基线(CPU、内存、流量模式)
- 对于 NX-OS:确认您正在操作的 VDC(show vdc current)
流程
按此顺序执行。每个步骤为最终报告生成数据。如果设备无响应,跳至步骤 6 进行崩溃恢复。
步骤 1:建立基线上下文
收集身份、运行时间和平台上下文。
[IOS-XE]
show version | include uptime|Version|bytes of memory
show inventory | include PID
show clock
[NX-OS]
show version | include uptime|system version|Memory
show inventory | include PID
show clock
show vdc current
记录:主机名、操作系统版本、运行时间、硬件型号、当前时间。
运行时间短意味着近期重新加载或崩溃 — 立即调查。
在 NX-OS 上,确认 VDC 上下文:所有后续命令仅适用于此 VDC。
步骤 2:CPU 利用率
IOS-XE 区分路由处理器(RP)和量子流处理器(QFP)。独立分类两个平面。NX-OS 使用统一的管理引擎模型 — show system resources 是主要视图。
[IOS-XE]
show processes cpu sorted | head 20
show processes cpu history
show platform software status control-processor brief
show platform hardware qfp active statistics drop
[NX-OS]
show system resources
show processes cpu sort | head 20
show module
IOS-XE 解读: 比较 5 秒、1 分钟和 5 分钟 RP 平均值。如果 RP CPU 正常但 QFP 丢包上升,则数据平面过载而控制平面健康 — 与 RP 过载的修复措施不同。关键 RP 进程:IP Input(流量风暴)、BGP Router(路由抖动)、Crypto IKMP(VPN 风暴)、IOSD(控制平面拥塞)。
NX-OS 解读: show system resources 报告 CPU 为内核 + 用户百分比。正常空闲应高于 60%。NX-OS 控制平面 CPU 运行温度高于 IOS-XE RP,因为管理引擎处理两个平面。关键进程:netstack(转发)、bgp(路由处理)、stp(生成树)、vpc(vPC 保活)。
步骤 3:内存利用率
[IOS-XE]
show memory statistics
show processes memory sorted | head 15
[NX-OS]
show system resources
show processes memory | head 15
IOS-XE: 从处理器池计算已用百分比:(Total - Free) / Total * 100。检查碎片化:如果最大空闲块 < 总空闲的 10%,则内存碎片化。
NX-OS: show system resources 以 KB 为单位报告总/已用/空闲内存。NX-OS 保留比 IOS-XE 更大的内核内存占用 — 已用百分比超过 60% 是典型的。注意 MemFree 是否降至总内存的 15% 以下。
步骤 4:接口健康
show interfaces summary
show interfaces counters errors
[IOS-XE]
show interfaces | include line protocol|drops|error|CRC
show controllers [name]
[NX-OS]
show interface [name] | include errors|drops|CRC
show hardware internal errors module [n]
对于每个有错误的接口:
- - 计算错误率:errors / (input + output packets) * 100
- CRC 错误 → 第 1 层问题(线缆、光模块、SFP 安装)
- 无 CRC 的输入错误 → 缓冲区溢出
- 输出丢包 → 拥塞;检查 QoS 策略或链路容量
- 在 NX-OS 上,show hardware internal errors 显示标准接口计数器中不可见的 ASIC 级丢包
步骤 5:路由协议健康
show ip route summary
[IOS-XE]
show ip bgp summary
show ip ospf neighbor
show ip eigrp neighbors
[NX-OS]
show bgp ipv4 unicast summary
show ip ospf neighbors
show ip eigrp neighbors
show vpc brief
验证:预期的路由数量,所有邻居处于 established/full 状态,无意外撤销。在 NX-OS 上,vPC 对等链路状态至关重要 — 失败的对等链路会导致流量孤立。BGP 前缀计数偏离基线超过 10% 表示路由抖动。
步骤 6:环境和平台
[IOS-XE]
show environment all
show platform software status control-processor brief
show logging | include %|Error|Warning|traceback | tail 50
dir crashinfo:
[NX-OS]
show environment
show module
show logging last 50
show cores
检查:电源状态、风扇健康、温度读数。任何环境告警立即升级。在 IOS-XE 上,检查 crashinfo:查找最近的崩溃转储。在 NX-OS 上,show cores 列出管理引擎和模块核心转储 — 存在表示进程崩溃需要调查。
阈值表
参考:references/threshold-tables.md 获取详细的每参数阈值。
| 参数 | 正常 | 警告 | 严重 | 平台说明 |
|---|
| CPU 5 分钟平均值 | < 40% | 40–70% | > 70% | NX-OS:基线高 5–10% |
| CPU 5 秒峰值 |
< 80% | 80–90% | > 90% | 仅 IOS-XE RP;NX-OS:使用 system resources |
| QFP 丢包/秒 | < 100 | 100–1000 | > 1000 | 仅 IOS-XE |
| 内存已用 | < 70% | 70–85% | > 85% | NX-OS:正常基线为 55–65% |
| 接口错误率 | < 0.01% | 0.01–0.1% | > 0.1% | 两个平台 |
| 输出丢包/小时 | < 100 | 100–1000 | > 1000 | 两个平台 |
| 路由邻居 | 全部已建立 | 抖动 | 断开 | NX-OS:包括 vPC 状态 |
| 温度 | 在规格内 | 距最大值 5°C | 达到/超过最大值 | 每传感器规格不同 |
决策树
主要分类
设备是否可达?
├── 否 → 检查控制台、电源、环境。恢复后收集 crashinfo。
└── 是
├── 识别平台 → IOS-XE 或 NX-OS?
│
├── [IOS-XE] CPU 问题?
│ ├── RP CPU 高,QFP 正常 → 控制平面过载
│ │ ├── BGP Router 高 → 路由抖动,检查对等稳定性
│ │ ├── IP Input 高 → 流量风暴,检查 ACL/CoPP
│ │ └── 其他进程 → 收集 show tech-support 给 TAC
│ ├── RP 正常,QFP 丢包高 → 数据平面过载
│ │ └── 检查流量速率、ACL 复杂度、NAT 会话
│ └── 两者都高 → 平台容量超限,减少负载
│
├── [NX-OS] CPU 问题?
│ ├── 检查 VDC 上下文 → 是否在正确的 VDC 中?
│ ├── 系统资源 CPU 高
│ │ ├── netstack 高 →