一个小调整,竟然让交换机、路由器的CPU占用率降低了50%

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

下午好,我的网工朋友。

在信息时代下,不仅仅在网络工程领域,高CPU占用率都是一个非常常见的问题,尤其是在交换机、路由器等设备上。

这种情况不仅会影响网络性能,还可能导致服务中断和数据丢失。

今天就和你来探索一下当遇见交换机、路由器等设备CPU占用率过高的故障时应该怎样解决。

今日文章阅读福利:《 cisco路由器配置(实战篇) 》

私信发送暗号“思科”,即可获取思科官方教材资源,以及顺手给你打包了一些别的好东西,进一步提升你的技术视野。

01 CPU占用率是啥意思?

CPU占用率,就是一个时间段内,CPU执行代码的时间与时间段总长度的比率。CPU占用率常常是衡量设备性能的重要指标之一。

CPU占用率高,是设备本身的一种现象,直观表现为display cpu-usage命令查询结果中整机CPU占用率“CPU usage”偏高,如超过70%。在网络运行中CPU高常常会导致其他业务异常,如BGP震荡、VRRP频繁切换、甚至设备无法登录。以下讨论的原因及步骤基于CPU占用率高这个现象。

通常,整机CPU占用率过高,是由于某些任务的CPU占用率居高不下导致的。具体导致某任务CPU占用率高的可能原因:

  • 上送CPU报文过多,如环路或DoS报文攻击
  • STP网络频繁震荡,收到大量TC报文,造成设备频繁删除MAC表和ARP表项
  • 设备产生海量日志,占用大量CPU资源

02 故障诊断流程

详细处理流程如下图所示。

03 故障处理步骤

01 检查占用CPU高的任务名称

执行命令display cpu-usage,查看各任务的CPU占用率。

记录CPU占用率超过70%的任务名称。

这个取值并非绝对数值,有可能某些任务执行时就需要占用70%的CPU而对业务不会造成影响,也有可能某些任务占用CPU 30%时就会对业务造成影响。应该根据实际情况判断。

02 检查是否上送CPU的报文太多

执行命令display cpu-defend statistics,查看上送CPU报文的统计信息,关注丢弃计数。

<Huawei> display cpu-defend statistics all
-----------------------------------------------------------------------        
Packet Type               Pass Packets        Drop Packets                      
-----------------------------------------------------------------------        
8021X                                0                   0                      
arp-miss                             1                   0                      
arp-reply                            5                   0                      
arp-request                    1450113               25597                      
bfd                                  0                   0                      
bgp                                  0                   0                      
dhcp-client                     114693              136586                      
dhcp-server                          0                   0                      
dns                                  0                   0                      
fib-hit                              0                   0                      
ftp                                717                   0                      
fw-dns                               0                   0                      
fw-ftp                               0                   0                      
fw-http                              0                   0                      
fw-rtsp                              0                   0                      
fw-sip                               0                   0                      
gvrp                                 0                   0                      
http                               798                   0                      
hw-tacacs   0                   0                      
icmp                                10                   0                      
igmp                                 0                   0                      
ipsec                                0                   0                      
isis                                 0                   0                      
lacp                                 0                   0                      
lldp                             33959                   0                      
ntp                                  0                   0                      
ospf                              1569                   0                      
pim                                  0                   0                      
pppoe                                0                   0                      
radius                               0                   0                      
rip                                  0                   0                      
snmp                                 0                   0                      
ssh                                  0                   0                      
stp                                  0                   0                      
tcp                               7671                   0                      
telnet                           71149                   0                      
ttl-expired                        656                   0                      
udp-helper                           0                   0                      
unknown-multicast                    6                   0                      
unknown-packet                   94189                   0                      
vrrp                                 0                   0                      
-----------------------------------------------------------------------
  • 如果某种类型报文“Drop”计数较大,且对应上一步中占用的CPU使用率较高,可以判断为发生了报文攻击。
  • 如果没有发现有流量过大的报文,请执行步骤3。

03 检查是否TC报文过多

支持STP的设备上,STP使能情况下,设备在接收到TC-BPDU报文时,会删除MAC地址表项和ARP表项。如果有人伪造TC-BPDU报文恶意攻击,设备短时间内会收到很多TC-BPDU报文,频繁的删除操作会导致CPU占用率比较高。

执行命令display stp,查看接口下收到的TC报文和TCN报文计数。

<Huawei> display stp interface Eth2/0/1                                      
----[CIST][Port2(Ethernet2/0/1)][FORWARDING]----                                
Port Protocol       :Enabled                                                  
Port Role           :Designated Port                                          
Port Priority       :128                                                      
Port Cost(Dot1T )   :Config=auto / Active=199999                              
Designated Bridge/Port   :4096.00e0-fc01-0005 / 128.2                          
Port Edged          :Config=default / Active=disabled                          
Point-to-point      :Config=auto / Active=true                                
Transit Limit       :147 packets/hello-time                                    
Protection Type     :None                                                      
Port STP Mode       :MSTP                                                      
Port Protocol Type  :Config=auto / Active=dot1s                                
PortTimes           :Hello 2s MaxAge 20s FwDly 15s RemHop 20                  
TC or TCN send      :1                                                        
TC or TCN received  :0                                                        
BPDU Sent           :124008                                                    
         TCN: 0, Config: 0, RST: 0, MST: 124008                                
BPDU Received       :0                                                        
         TCN: 0, Config: 0, RST: 0, MST: 0
  • 如果该值很大,系统视图下执行命令stp tc-protection配置对TC类型BPDU报文的抑制。配置此命令后,默认每个Hello周期处理3个TC报文。可以根据实际情况通过stp tc-protection threshold命令指定处理的报文数量门限值,可以通过stp timer hello命令修改Hello周期的时长。
  • 如果TC报文数量不多,请执行步骤4。

04 检查网络是否有环路

当设备的某个VLAN中包含较多接口时,如果有两个接口形成环路,则报文会在多个接口之间一直转发,会导致CPU占用率上升。

执行命令display current-configuration,查看是否使能了MAC地址漂移告警功能。

#
loop-detect eth-loop alarm-only
#
  • 如果没有,执行命令loop-detect eth-loop alarm-only配置当发生MAC地址漂移时产生告警。此时如果网络中有环路,当设备两个接口学习到同一个MAC表项时,会产生告警。如:
Feb 22 2022 18:42:50 Huawei L2IFPPI/4/MAC_FLAPPING_ALARM:OID 1.3.6.1.4.1.2011.5.25.42.2.1.7.12The mac-address has flap value .  (L2IfPort=0,entPhysicalIndex=0,  BaseTrapSeverity=4, BaseTrapProbableCause=549, BaseTrapEventType=1,  MacAdd=0000-c0a8-0101,vlanid=100,  FormerIfDescName=Ethernet1/0/0,CurrentIfDescName=Ethernet1/0/1,DeviceName=HUAWEI)
  • 根据告警提示信息,查看相应的接口连接以及组网需求。
  • 如果不需要环网,根据组网图,将其中一个端口shutdown处理。
  • 如果确实需要环网,关闭Loop Detection功能,并启动STP等破环协议。
  • 如果设备已经配置了loop-detect eth-loop alarm-only,但是没有看到告警,请执行步骤5。

05 检查设备是否产生海量日志

某些异常情况下如受到攻击、运行中发生了错误、端口频繁Up/Down等,设备会不停打印诊断信息或日志信息。此时对存储器要进行频繁的读写操作,会造成CPU占用率升高。

执行命令display logbuffer,查看是否有大量的异常日志。

整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/624856.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ESP32-S3+86盒线控器方案,含开发时问题技术解答

随着智能家居产品越来越多&#xff0c;线控器应用也加大&#xff0c;86盒线控器跟智能吹风机联动&#xff0c;跟中央空调联动&#xff0c;下面讲下ESP32-S386盒线控器方案在开发中遇到的问题。 一、ESP32-S386盒线控器方案&#xff1a; 1、无需网关&#xff0c;可以直接连家里…

Flutter 玩转动画 + 自定义View 实现积分或金币领取流程动画

一、效果图 二、主要涉及的知识点 AnimationController、Animation、FractionalTranslation 动画Api的运用CustomPainter 自定义View以及每个时机的把握 主要是写篇博客来记录一下这个功能的实现&#xff0c;具体代码就看源代码了&#xff0c;有疑问可以私信沟通 源代码下载…

【高阶数据结构】并查集 {并查集原理;并查集优化;并查集实现;并查集应用}

一、并查集原理 在一些应用问题中&#xff0c;需要将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个单元素集合&#xff0c;然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述这类…

Java的类和对象(一)—— 初始类和对象,this关键字,构造方法

前言 从这篇文章开始&#xff0c;我们就进入到了JavaSE的核心部分。这篇文章是Java类和对象的第一篇&#xff0c;主要介绍类和对象的概念&#xff0c;this关键字以及构造方法~~ 什么是类&#xff1f;什么是对象&#xff1f; 学过C语言的老铁们&#xff0c;可以类比struct自定义…

弹幕游戏-压力测试 Python-Locust模拟送礼物

Hey&#xff0c;读者们&#xff01;今天给大家带来一个Python性能测试的新玩法——使用Locust模拟发送礼物。是不是听起来就很酷&#xff1f;&#x1f60e; &#x1f3af;目标 想象一下&#xff0c;在直播平台上&#xff0c;你希望测试某个直播间的礼物发送功能。那么&#x…

通义千问 1.5 -7B fine-tune验证

尝试对对中文数据进行finetune验证&#xff0c;测试模型的可优化方向。下面是代码的详细情况 代码实现 from datasets import load_dataset from transformers import (AutoModelForCausalLM,AutoTokenizer,BitsAndBytesConfig,HfArgumentParser,AutoTokenizer,TrainingArgum…

Spring学习①__Spring初识

Spring Spring初识一、框架二、Spring&#xff08;春天&#xff09;简介Spring官网Spring是什么?Spring介绍拓展 Spring初识 一、框架 ​框架就是一些类和接口的集合&#xff0c;通过这些类和接口协调来完成一系列的程序实现。 JAVA框架可以分为三层&#xff1a; 表示层业务…

视频号小店,一个不用直播就可以变现的项目!创业首选!

大家好&#xff0c;我是电商小V 想要创业或者是想要利用视频号变现的小伙伴可以说是很多的&#xff0c;因为视频号这两年的流量是非常大的&#xff0c;甚至即将超越抖音的流量&#xff0c;因为视频号背靠腾讯平台&#xff0c;也是不缺少流量的&#xff0c;并且视频号的流量是可…

高扩展性便携式1553B总线测试仪,支持麒麟操作系统

手提式便携1553B总线测试仪&#xff0c;利用订制平台的PXIe扩展槽嵌入石竹科技自主研发的高性能T系列专用1553B测试板卡和高级协议分析和测试软件FP-1553B Pro、FP-5186集成的一款模块化、功能可订制的测试仪器。 基本配置可对1553B信号进行波形采集&#xff08;提供软件示波器…

如何实现数字化校园的高效运维

随着科技开展&#xff0c;国家大力支持各级各类学校建造数字化学校&#xff0c;综合利用互联网、大数据、人工智能和虚拟现实技能探究未来教育教育新模式。因为数字化学校的快速开展&#xff0c;学校网内设备类型很多&#xff0c;网络拓扑杂乱&#xff0c;信息运用繁复。各部门…

电机控制杂谈——“双采样双更新模式”对模型预测控制/PI控制的提升有多大?

1.采样频率与PWM开关频率的关系 一般有以下两种采样模式。 如下图&#xff08;a&#xff09;所示&#xff0c;这种方式称之为单采单更模式&#xff0c;即在一个PWM周期内&#xff0c;采样一次&#xff0c;更新一次PWM占空比&#xff0c;在这种情况下&#xff0c;采样频率&…

ICode国际青少年编程竞赛- Python-5级训练场-综合练习5

ICode国际青少年编程竞赛- Python-5级训练场-综合练习5 1、 a 16 for i in range(6):Dev.step(1)Dev.turnLeft()Dev.step(a)Dev.step(-a)Dev.turnRight()while Dev.energy < 100:wait()Dev.step(1)a a - 5 i2、 for i in range(5):Dev.step(11 - i * 2)Dev.turnRight()wh…

PBR系列-光之简史

作者&#xff1a;游梦 ​ 欢迎进入官网体验使用&#xff1a;Mapmost——让人与机器联合创作成为新常态 ​说到PBR理论分为三大理论&#xff1a;物理光源、物理材质与物理相机&#xff0c;三者都与光有着千丝万缕的关系&#xff0c;原打算这期讲解物理材质&#xff0c;在梳理知…

刚刚OpenAI发布ChatGPT-4o模型,免费使用GPT4o并免费提供更多功能

就在今日凌晨1点&#xff0c;OpenAI举行了春季发布会&#xff0c;发布了GPT-4o 并免费提供更多功能。 亲测GPT-4o已经可以免费试用&#xff0c;每个人都可以使用它并从中受益&#xff0c;GPT4终于不再是少部分人的玩物。 点击加入ChatGPT4交流群&#xff1a;https://www.aijour…

记一次跨域问题

线上跨域问题&#xff0c;在自己配置确认没问题下&#xff0c;要及时找运维看看是不是nginx配置问题。 两个方面&#xff1a; 项目代码 nginx配置 SpringBoot 解决跨域问题的 5 种方案&#xff01; SpringBoot解决CORS跨域问题 SpringBoot-实现CORS跨域原理及解决方案

unordered_map、unordered_set底层封装

文章目录 一、先实现哈希桶1.1哈希桶的实现方法1.2日常普遍的哈希桶存放的数据有两种&#xff1a;字符串和整形1.3哈希桶的实现代码详解1.3.1哈希桶的两种仿函数&#xff08;int和string&#xff09;1.3.2哈希桶的节点&#xff08;如果桶非常深&#xff0c;这里考虑挂红黑树&am…

MQTT学习(二)

订阅主题和订阅确认 SUBSCRIBE——订阅主题 之前的CONNECT报文&#xff0c;分为 固定报头&#xff1a;必须存在&#xff0c;用于描述报文信息。里面有指出什么类型的报文&#xff0c;报文的等级。可变报头&#xff1a;不一定存在。主要看什么样子类型的报文。有效载荷部分&a…

Go PDF文件操作

目录 介绍 安装 gofpdf API 代码示例 结果展示 介绍 gofpdf 是一个在 Go 语言中用于生成 PDF 文档的库。 安装 gofpdf 首先&#xff0c;你需要安装 gofpdf 库。你可以使用 go get 命令来安装它&#xff1a; go get github.com/jung-kurt/gofpdf API 功能 函数名参数解释示…

25. K 个一组翻转链表 - 力扣(LeetCode)

基础知识要求&#xff1a; Java&#xff1a;方法、while循环、for循环、if else语句 Python&#xff1a; 方法、while循环、for循环、if else语句 题目&#xff1a; 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个…