• 诊断工具

    • 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.通过_hidecmddiagnose进入诊断视图;

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使用率高问题定位相关推荐

  1. 电脑CPU占用率100%如何处理 电脑CPU占用率100%解决方法

    电脑CPU占用率100%如何处理 电脑CPU占用率100%解决方法 2 年前电脑CPU占用率100%怎么解决 ?电脑没有运行太多程序,但是在任务管理器中总显示占用率100%这里就为大家介绍下,一起来看 ...

  2. win10服务器cpu占用过高,Win10 CPU占用率100%怎么办 Win10 CPU占用率过高解决方法

    Win10 CPU占用率100%怎么办 ?Win10系统CPU占用率过高的问题比较常见,下面为大家带来 Win10 CPU占用率过高解决方法 ,一起来看看. 方法1: 导致CPU占用的另一个原因可能是 ...

  3. 【错误记录】应用运行 CPU 占用率达到 90% ( 使用 CPU Profiler 监控应用运行情况 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 Android 运行时 , 进入某界面后 , 退出界面 , CPU 占用率泄漏 12 % , 某个线程没有退出 , 一直在后台运行 ; 再次进入 ...

  4. 37、弱电网络工程师必知系列:交换机CPU和CPU占用率的基础知识

    一.简介 本文简要介绍了CPU和CPU占用率的定义.CPU处理报文的原理.以及CPU占用率高造成的影响. 二.CPU和CPU占用率定义 CPU和CPU占用率定义 交换机的核心--CPU 交换机采用分布 ...

  5. 记一次CPU占用率和load高的排查

    前不久公司进行了一次大促,晚上值班.大促是从晚上8点多开始的,一开始流量慢慢的进来,观察了应用的各项指标,一切都是正常的,因为这是双11过后的第一次大促,想着用户的购买欲应该不会太强,所以我们的运维同 ...

  6. win7待机CPU占用率高的解决办法(供参考)

    刚安装原版win7专业版后,未装驱动,cpu的占用率 安装完所有驱动,并更新sp1后,CPU的占用率一直很高,即使待机,cpu的占用率也一直在20-30%,CPU温度总是在85-90℃,显然这样是有其 ...

  7. 性能优化之CPU占用率高(一)

    文章部分摘于,点击查看原文​​​​​​​ 当我们cpu使用率高的情况下会出现什么情况? 我们访问程序的速度比较慢,运行时间长. 系统崩溃,无法访问程序. 什么情况会导致Java应用程序的CPU使用率飙 ...

  8. [原]调试实战——程序CPU占用率飙升,你知道如何快速定位吗?

    前言 如果我们自己的程序的CPU Usage(CPU占用率)飙升,并且居高不下,很有可能陷入了死循环.你知道怎么快速定位并解决吗?今天跟大家分享几种定位方法,希望对你有所帮助. 如何判断是否有死循环? ...

  9. 深度解读鸿蒙轻内核CPU占用率

    摘要:CPUP(Central Processing Unit Percentage,CPU占用率)分为系统CPU占用率和任务CPU占用率.用户通过系统级的CPU占用率,判断当前系统负载是否超出设计规 ...

最新文章

  1. IDEA----破解
  2. 剑指Offer(Java实现)把二叉树打印成多行
  3. ESP8266-SDK编写的TM1668程序驱动数码管
  4. Spring Boot——RabbitMQ
  5. linux screen 进程,screen 命令使用
  6. SAP Fiori应用的搜索问题
  7. 解决链接错误:error LNK2001: 无法解析的外部符号 __iob
  8. redis 缓存预热_Redis:缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
  9. php 自定义 $_SERVER
  10. ERP实施--常见问题
  11. 独立游戏开发者---孤独前行的梦想家
  12. 阿里云播放器组件 vue-aliplayer
  13. 【报告分享】 2020-2021智能手机消费趋势与用户忠诚和流失度报告-企鹅智库(附下载)
  14. mysql-mmm vip 切换问题_mysql-mmm复制延迟的想法
  15. pdf文件删除空白页技巧介绍
  16. ICPC 2017 Daejeon-Slot Machines
  17. Android应用源码仿微信凡信聊天项目源码
  18. Django-路由Routers-SimpleRouter-DefaultRouter使用方法
  19. 在word中用vba为选中区域自动添加行号或删除行号
  20. ZeroDivisionError:Integer division or modulo by zero

热门文章

  1. 【Flink】TableException: A raw type backed by type information has no serializable
  2. [Spark] Yarn local-dirs are bad 导致节点处于不健康状态
  3. 【elasticsearch】 基于_version进行乐观锁并发控制
  4. 【Kafka】Kafka Failed to send SSL Close message IOException: Broken pipe
  5. 95-30-020-java.util-Map
  6. 95-240-052-原理-State-MemoryStateBackend
  7. git pull 报错:git - error: RPC failed curl 18 transfer closed with outstanding read data remaining 解决
  8. 【linux系统编程】基础开发工具:yum
  9. 全网最全的 Java各类技术栈 架构图汇总(建议收藏)
  10. 使用Spring Boot Operator部署SpringBoot到K8S