netty cpu 占用率 高_交换机CPU使用率高问题定位
诊断工具
display工具
log工具
报文冲击导致的CPU使用率高问题
CPU使用率高问题信息采集
诊断工具
display cpu-usage [ slot x ]
display cpu-defend statistics
对于报文冲击导致CPU高的情形,可进一步通过
cpu-defend
统计查询功能确认具体的协议类型。协议上送过多判断标准:该协议对应的Drop列有大量计数,且相对于Pass计数占比较高,例如上表中的arp-request类型。
display logbuffer
- CPU使用率高往往还伴有告警、日志出现,可以通过查看日志缓冲区的历史记录,搜索CPU_USAGE_HIGH日志,以便确认CPU占用率TOP 3的任务。
报文冲击导致的CPU使用率高问题
定位思路
最常见协议冲击CPU致使用率高主要表现在bcmRX、FTS、SOCK等任务上。
bcmRX是设备硬件中断触发的的收包任务,它会将收取到的报文立刻转交软件层面的FTS任务进行分发处理。
对于属于三层协议处理的报文,往往还伴随有SOCK任务占用率高的情况出现。
故障举例
故障描述:交换机产生CPU_USAGE_HIGH告警:
备注:
如果网管需要主动监测CPU使用率,可通过OID:1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5获取。
第一步:检查CPU占用率及TOP任务
通过故障现象中的告警信息,可以确认CPU占用率TOP任务中包含有bcmRX、FTS报文收取任务,基本可以确认属于协议收报过多导致CPU占用率上升。
可以通过CPU使用率查询功能进一步核实TOP任务中是否包含有收包任务;可以通过slot指明查询的槽位号。
第二步:确认报文类型
通过cpu-defend统计查询功能,确认哪类协议存在冲击情形,可以通过各类协议的Drop列计数进行确认。如果某类协议Drop计数非常大,且Drop列计数相对于Pass列计数占比较高(例如达到20%以上),则认为属于此类协议存在冲击CPU情况。例如上表中的arp-request,后续按照第三步中的ARP协议对应处理方式进行处理。
注意,查看统计时,需要关注协议冲击位于哪个槽位,即“Statistics on slot x”。
第三步:按协议类型分别处理-1
- ARP通过
display interface
检查哪些接口存在Broadcast数量异常,并在此接口配置广播流量抑制,限制单个接口广播速率(例如限制为50pps):
broadcast-suppression pps 50.
- DHCP请确认本机是否需要开启DHCP,如果不需要请在全局undo dhcp enable;
如果需要,建议在下行接口开启dhcp error-down功能(具体信息请参考用户手册):
#dhcp snooping check dhcp-rate enable
dhcp snooping check dhcp-rate trigger error-down
并建议通过基于dhcp报文的流量统计功能,来发现哪个接口发送了过多的DHCP报文。
第三步:按协议类型分别处理-2
TCP/ARP-MISS
此种情况一般是由于网络中存在针对不存在的某些直连网段IP地址进行扫描导致的. 当有数 据报文发送到这些不存在的IP地址时,会将数据上送CPU处理,以触发ARP学习过程,建议此时在每个vlanif接口下调整ARP学习延迟时间:
#interface vlanif1000
arp-fake expire-time 30#
TTL-EXPIRED
如果不需要本机在tracert中显示,建议丢弃此类报文:
#cpu-defend policy test
deny packet-type ttl-expired#Cpu-defend-policy test global
Cpu-defend-policy test#
第三步:按协议类型分别处理-3
- Reserved-multicast
此类报文一般属路由协议报文,目的IP地址224.0.0.X,如果设备不需要此类报文(或者启用OSPF路由但未起组播功能),可以直接丢弃处理(或者升级到最新版本):
# cpu-defend policy test
deny packet-type reserved-multicast#Cpu-defend-policy test global
Cpu-defend-policy test#
第三步:按协议类型分别处理-4
- ND/ICMPV6/DHCPV6
如果本机不需要IPV6功能,建议直接丢弃此类报文:
#cpu-defend policy test
deny packet-type nd
deny packet-type icmpv6
deny packet-type dhcpv6-request
deny packet-type dhcpv6-reply
#Cpu-defend-policy test global
Cpu-defend-policy test
第三步:按协议类型分别处理-5
OSPF请检查是否存在路由表项过大,或者OSPF PEER过多情形,并根据实际情况考虑对路由进行优化,以降低路由表项数目或OSPF PEER数目。
SNMP检查是否存在频繁的网管操作,例如获取接口流量,建议适当降低网管获取交换机信息的 频率。
如果不属于上述常见协议类型,或者其它情况导致的CPU高情形,建议立刻搜集设备当前诊断信息、日志信息、本次定位过程的操作记录等,并返回华为服务处理。
CPU使用率高问题信息采集
信息搜集
- 搜集cfcard中的logfile目录下的日志信息,针对没有cfcard的盒式设备,请通过如下命令搜集:
display logbuffer
display trapbuffer
搜集设备诊断信息,命令为:
display diagnostic-information
搜集cpu-defend统计信息(10分钟内多搜集几次)
isplay cpu-defend statistics all
- 搜集TOP任务的监控信息:
1.通过_hidecmd
或diagnose
进入诊断视图;
2.通过display cpu-usage
检查cpu占用较高任务,例如EOAM较高:
[Quidway-hidecmd] display cpu-usage [ slot x ] --
可指定槽号检查
CPU Usage : 38% Max: 99%
CPU Usage Stat. Time : 2013-01-06 03:08:57
CPU utilization for five seconds: 38%: one minute: 33%: five minutes: 35%.
TaskName CPU Runtime(CPU Tick High/Tick Low) Task Explanation
BOX 0% 0/ 18f78e BOX Output_TIL 0% 0/ 0 Infinite loop event task_EXC 0% 0/ 0 Exception Agent TaskVIDL 61% 0/b7abe65c DOPRA IDLETICK 0% 0/ 143074eSTND 0% 0/ b3412 STNDStandby taskEOAM 24% 0/4994c174 EOAMEthernet OAM 802.1ag
3.通过display task
查找任务对应的taskid,例如EOAM的taskid为79:
[Quidway-hidecmd] display task [ slot x ] -- 可指定槽号name Tid VOS_Tid priority Status CPU Total(Millsecs)==============================================================================BOX 0x6ec5230 1 8 sleep 36830_TIL 0x6ebaf90 2 250 eventblock 0_EXC 0x6eb0cf0 3 135 eventblock 0VIDL 0x6ea6a50 4 1 preemptready 79669745TICK 0x6e9c7b0 5 205 preemptready 476396STND 0x6daa8b0 6 80 eventblock 18097FTPS 0x6dbc240 7 100 sleep 230536DEV 0x6e7ffd0 8 140 eventblock 14818TCTL 0x6c6a460 77 100 eventblock 45NAP 0x6c601c0 78 100 eventblock 45EOAM 0x6c55f20 79 100 eventblock 29468818TRAF 0x6c4bc80 80 100 eventblock 25659SLAG 0x6c419e0 81 100 eventblock 56
4.根据taskid设置监控阀值。阀值的设置可参考相应任务的现有占用率,如上面的EOAM模块CPU利用率为24%,那么我们设置监控比这个值低一点,例如设置成20%,具体命令为:
set task-monitor-record threshold [threshold] taskid [taskid]
[Quidway-hidecmd]set task-monitor-record threshold 20 taskid 79 [ slot x ] – 可指定槽号Task Monitor has been set on slot 5, TaskId is 79, Threshold is 5
5.查看任务监控记录,具体命令为:
display task-monitor-record
[Quidway-hidecmd] display task-monitor-record [ slot x ] – 可指定槽号=========== Task Cpu-usage Monitor Record (slot: 5) ===========Current Index: 0
6.最后,必须要关闭任务监控,具体命令为:
set task-monitor-record threshold 1 taskid 0
。设置taskid为0,就表示关闭任务监控记录。
[Quidway-hidecmd]set task-monitor-record threshold 1 taskid 0[ slot x] –
可指定槽号Task Monitor has been closed on slot 5
7.如果是接口板CPU占用率高,需要按照上述1~6步骤搜集相应接口板槽位的任务监控信息(相应的命令行中指定slot即可)。
技
术
是
用
来
学
的
,
不
是
用
来
收
藏
的
!
瑞哥建了一个微信群,不在群的朋友,可以加瑞哥微信(备注单位+姓名)
进群前先转发本图文至朋友圈,添加后截图给瑞哥,立即拉群!
一个有态度的优质教程集聚地
帮助过上万位网友解决教程需求问题
教程仅用于学习交流,禁止用于商业交易©
猜您喜欢往期精选▼
交换机丢包问题定位
一篇文章带你了解跨设备链路聚合DRNI技术
努力学习,勤奋工作,让青春更加光彩
再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达
netty cpu 占用率 高_交换机CPU使用率高问题定位相关推荐
- 电脑CPU占用率100%如何处理 电脑CPU占用率100%解决方法
电脑CPU占用率100%如何处理 电脑CPU占用率100%解决方法 2 年前电脑CPU占用率100%怎么解决 ?电脑没有运行太多程序,但是在任务管理器中总显示占用率100%这里就为大家介绍下,一起来看 ...
- win10服务器cpu占用过高,Win10 CPU占用率100%怎么办 Win10 CPU占用率过高解决方法
Win10 CPU占用率100%怎么办 ?Win10系统CPU占用率过高的问题比较常见,下面为大家带来 Win10 CPU占用率过高解决方法 ,一起来看看. 方法1: 导致CPU占用的另一个原因可能是 ...
- 【错误记录】应用运行 CPU 占用率达到 90% ( 使用 CPU Profiler 监控应用运行情况 )
文章目录 一.报错信息 二.解决方案 一.报错信息 在 Android 运行时 , 进入某界面后 , 退出界面 , CPU 占用率泄漏 12 % , 某个线程没有退出 , 一直在后台运行 ; 再次进入 ...
- 37、弱电网络工程师必知系列:交换机CPU和CPU占用率的基础知识
一.简介 本文简要介绍了CPU和CPU占用率的定义.CPU处理报文的原理.以及CPU占用率高造成的影响. 二.CPU和CPU占用率定义 CPU和CPU占用率定义 交换机的核心--CPU 交换机采用分布 ...
- 记一次CPU占用率和load高的排查
前不久公司进行了一次大促,晚上值班.大促是从晚上8点多开始的,一开始流量慢慢的进来,观察了应用的各项指标,一切都是正常的,因为这是双11过后的第一次大促,想着用户的购买欲应该不会太强,所以我们的运维同 ...
- win7待机CPU占用率高的解决办法(供参考)
刚安装原版win7专业版后,未装驱动,cpu的占用率 安装完所有驱动,并更新sp1后,CPU的占用率一直很高,即使待机,cpu的占用率也一直在20-30%,CPU温度总是在85-90℃,显然这样是有其 ...
- 性能优化之CPU占用率高(一)
文章部分摘于,点击查看原文 当我们cpu使用率高的情况下会出现什么情况? 我们访问程序的速度比较慢,运行时间长. 系统崩溃,无法访问程序. 什么情况会导致Java应用程序的CPU使用率飙 ...
- [原]调试实战——程序CPU占用率飙升,你知道如何快速定位吗?
前言 如果我们自己的程序的CPU Usage(CPU占用率)飙升,并且居高不下,很有可能陷入了死循环.你知道怎么快速定位并解决吗?今天跟大家分享几种定位方法,希望对你有所帮助. 如何判断是否有死循环? ...
- 深度解读鸿蒙轻内核CPU占用率
摘要:CPUP(Central Processing Unit Percentage,CPU占用率)分为系统CPU占用率和任务CPU占用率.用户通过系统级的CPU占用率,判断当前系统负载是否超出设计规 ...
最新文章
- IDEA----破解
- 剑指Offer(Java实现)把二叉树打印成多行
- ESP8266-SDK编写的TM1668程序驱动数码管
- Spring Boot——RabbitMQ
- linux screen 进程,screen 命令使用
- SAP Fiori应用的搜索问题
- 解决链接错误:error LNK2001: 无法解析的外部符号 __iob
- redis 缓存预热_Redis:缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
- php 自定义 $_SERVER
- ERP实施--常见问题
- 独立游戏开发者---孤独前行的梦想家
- 阿里云播放器组件 vue-aliplayer
- 【报告分享】 2020-2021智能手机消费趋势与用户忠诚和流失度报告-企鹅智库(附下载)
- mysql-mmm vip 切换问题_mysql-mmm复制延迟的想法
- pdf文件删除空白页技巧介绍
- ICPC 2017 Daejeon-Slot Machines
- Android应用源码仿微信凡信聊天项目源码
- Django-路由Routers-SimpleRouter-DefaultRouter使用方法
- 在word中用vba为选中区域自动添加行号或删除行号
- ZeroDivisionError:Integer division or modulo by zero
热门文章
- 【Flink】TableException: A raw type backed by type information has no serializable
- [Spark] Yarn local-dirs are bad 导致节点处于不健康状态
- 【elasticsearch】 基于_version进行乐观锁并发控制
- 【Kafka】Kafka Failed to send SSL Close message IOException: Broken pipe
- 95-30-020-java.util-Map
- 95-240-052-原理-State-MemoryStateBackend
- git pull 报错:git - error: RPC failed curl 18 transfer closed with outstanding read data remaining 解决
- 【linux系统编程】基础开发工具:yum
- 全网最全的 Java各类技术栈 架构图汇总(建议收藏)
- 使用Spring Boot Operator部署SpringBoot到K8S