我知道这个线程很旧,但为了完整起见:
如果高 cpu 随机发生并且您无法确定导致此问题的进程,我们可以创建下面的脚本。
使用此脚本,我们将在进程升高超过正常或预期阈值时捕获大量进程,这不应中断任何流量,但仍建议使用 MW。但是我看到您已将其缩小为 RPD。
snmp {
health-monitor {
interval 30;
rising-threshold 60;
falling-threshold 50;
}
}
event-options {
policy MONITOR-CPU {
events snmpd_health_mon_thresh_cross;
attributes-match {
snmpd_health_mon_thresh_cross.event-name matches "Health Monitor.+CPU.+rising";
}
then {
execute-commands {
commands {
"show system processes extensive";
}
output-filename cpu-processes;
destination local-flash;
output-format text;
}
}
}
destinations {
local-flash {
archive-sites {
/var/tmp;
}
}
}
}
显示设置输出>
set snmp health-monitor interval 30
set snmp health-monitor rising-threshold 60
set snmp health-monitor falling-threshold 50
set event-options policy MONITOR-CPU events snmpd_health_mon_thresh_cross
set event-options policy MONITOR-CPU attributes-match snmpd_health_mon_thresh_cross.event-name matches "Health Monitor.+CPU.+rising"
set event-options policy MONITOR-CPU then execute-commands commands "show system processes extensive"
set event-options policy MONITOR-CPU then execute-commands output-filename cpu-processes
set event-options policy MONITOR-CPU then execute-commands destination local-flash
set event-options policy MONITOR-CPU then execute-commands output-format text
set event-options destinations local-flash archive-sites /var/tmp
您是否还检查过是否报告了任何 ddos 消息?您可以运行以下命令:
show ddos-protection protocols statistics brief
show ddos-protection statistics
show ddos-protection version
然后,根据您所看到的内容,可以缩小范围,例如:
show ddos-protection protocols ttl statistics
show ddos-protection protocols ttl violations
show ddos-protection protocols ttl flow-detection detail */*this cm needs prior config*/*
Juniper 在 KB22637 下也有此类问题的收集列表
高 CPU
CLI 命令
set cli timestamp
show chassis routing-engine (multiple snapshots, atleast 5)
show system processes extensive (multiple snapshots atleast 5)
show system users
show system connections
show system statistics
开启任务记账,收集任务记账明细输出(3次,间隔30秒)。完成后不要忘记关闭它。
set task accounting on
show task accounting detail
set task accounting off
show task memory detail
show task memeory summary
show task io
show task history
show task statistics
show task job
show task jobs
show krt queue
show krt state
日志
按照上面 Traceoptions 步骤 1 中的规定归档 /var/log
user@router# show routing-options
traceoptions {
file routing-trace size 10m files 20 world-readable;
flag task;
flag state;
flag timer;
}
此外,如果您运行的是容易出现错误的旧版本,您可能需要检查代码的生命支持:
http://www.juniper.net/support/eol/junos.html
需要提及的另一点可能是向量攻击是没有保护您的 RE 免受不需要的异常流量的影响。确保环回下有防火墙过滤器。
我在过去看到路由器上的脚本导致高 cpu 不确定 rpd 是否进入我的视野,但这是您可能不想忽视的事情。
如果您在日志中看到 RPD_MPLS_PATH_BANDWIDTH_CHANGE 有很多命中,您可能使用了非常激进的调整间隔
检查“显示系统队列:这是内核队列,可能会出现一些线索。