「思唯網絡學院」華為交換機CPU占用率高原因判斷和解決方法一

思唯網絡學院lisa老師 發佈 2020-01-18T01:37:14+00:00

華為交換機CPU占用率高原因判斷和解決方法(一)1、CPU任務和CPU占用率簡介華為交換機啟動後,系統CPU持續運行以下任務:維護和管理設備狀態的系統任務;當前網絡環境需要運行的各種協議任務;從設備轉發麵接收和發送報文的處理任務。



華為交換機CPU占用率高原因判斷和解決方法(一)

1、CPU任務和CPU占用率簡介

華為交換機啟動後,系統CPU持續運行以下任務:維護和管理設備狀態的系統任務;當前網絡環境需要運行的各種協議任務;從設備轉發麵接收和發送報文的處理任務。

在框式交換機上,根據硬體架構劃分有如下角色:

機框、背板、電源/風扇、主控板、業務板;其中主控板、業務板上有CPU。

華為交換機運行時,主控板需要占用CPU資源的特性功能包括:

管理設備組件:管理設備內各組件並檢查其運行狀態,如板卡、電源、風扇等;管理堆疊系統:管理和維護堆疊系統內成員交換機狀態;

管理外部訪問:處理上送CPU的網絡管理流量,如Telnet、SSH、HTTP和SNMP等;

管理配置的網絡控制協議:發送和接收協議報文、進行協議運算、更新轉發表(如MSTP、MAC、FIB表等),網絡控制協議包括STP、LLDP、LNP、LACP、VCMP、DLDP、EFM、GVRP、VRRP、各路由協議等;

輔助學習MAC:堆疊系統成員交換機間同步MAC;

軟轉發報文:如L2PT軟轉發L2協議報文;學習和老化ARP表項; 處理上送CPU的所有其他報文。

集群管理系統:管理和維護集群系統內成員交換機狀態。

業務板CPU主要處理如下幾類任務:

設備上的OS任務;維護和管理本單板狀態的系統任務;分布到業務板運行的協議任務:如LACP在業務板上分布式收發報文等;維持轉發表下發和同步的任務:如單板間同步MAC等。

在任何時刻,設備的CPU上都可能有很多活躍的任務,如S5700LI、S9300就有超過200個任務,該數值與交換機形態相關,通常設備支持的特性越多,系統運行的任務也越多。

由於系統一直處於運行狀態,即使設備無任何業務配置和網絡流量,其CPU占用率也不可能為0%。

在堆疊系統中,由於需要定時維護堆疊成員狀態,並且系統大部分業務主要運行在堆疊主交換機上,因此堆疊主交換機的CPU占用率比單台設備運行時的CPU占用率高;堆疊成員交換機數量增多時,堆疊主交換機的CPU占用率也會相應升高。

當設備轉發麵上送CPU的報文速率過快(如因網絡環路導致CPU短時間內收到大量報文)或者某任務長時間占用CPU時,CPU將高負荷運行,可能無法及時調度其他任務,進而引發業務異常。

設備提供了display cpu-usage命令查看當前CPU占用率情況,顯示包括最近5秒鐘、最近1分鐘、最近5分鐘的CPU平均占用率及歷史最高CPU占用率和發生時刻,同時還由高到低列出了系統當前各任務在最近5秒鐘內的CPU占用率情況。

通常情況下,普通數據報文轉發由交換機硬體完成,無需CPU參與,因此CPU占用率高通常並不影響數據轉發。

2、CPU報文處理原理

華為交換機由硬體(晶片)轉發普通數據報文,無需CPU參與。以下場景會將報文發送給CPU處理:

1、需要交換機終結的協議報文,所有目的地址為本機的報文均需要上送CPU處理:各種協議控制報文,如STP、LLDP、LNP、LACP、VCMP、DLDP、EFM、GVRP、VRRP等;路由更新報文,如RIP、OSPF、BGP、IS-IS等;SNMP、Telnet、SSH報文;ARP、ND回應報文。

2、需要特殊處理的數據報文:帶option選項的ICMP報文;帶hop-by-hop選項的IPv6報文;TTL小於或等於1的IPv4/IPv6報文;目的IP位址為本機的報文;ARP/ND/FIB Miss報文。

3、基於ACL的特性:開啟logging功能後,通過ACL deny動作丟棄的報文;流策略重定向到CPU的報文。

4、組播特性:PIM、IGMP、MLD、MSDP協議報文;未知IP組播流。

5:其他特性:DHCP協議報文;ARP、ND廣播請求報文,二層交換機配置動態ARP檢測DAI(Dynamic ARP Inspection)時也發送ARP報文;L2PT軟轉發的L2協議報文(僅Tunnel兩端的設備為軟轉發,中間設備使用硬體轉發);N:1 VLAN mapping第一個報文上送CPU,後續報文使用硬體轉發。

華為盒式交換機採用QoS機制處理上送CPU的報文,確保重要報文優先處理。盒式交換機將上送CPU的不同類型的報文劃分到優先級不同的8個隊列,不同交換機款型支持上送CPU的報文種類可能不同。


以盒式交換機S5700LI形態為例,部分典型報文上送CPU的隊列劃分如下表1和上圖1所示,隊列ID值越大,優先級越高。



如上圖2所示,框式交換機每個晶片/邏輯的限速主要分為三類:基於協議的限速、基於隊列的限速、基於埠的所有報文統一限速。如下以V200R007版本S9300非X1E系列的業務板為例,介紹CPU限速等的預設情況(其他款型、其他版本可以通過命令display cpu-defend configuration all查看)。





交換機根據報文的層次(管理/控制/轉發)及其重要性來指定將報文發送到哪個CPU隊列。CPU隊列具有相對優先級。例如,Telnet管理報文和dhcp-client協議報文同時排隊,CPU將優先處理5號隊列的Telnet管理報文,通過該機制確保CPU高負荷下設備穩定可管理。同時,CPU還通過加權調度機制防止低優先級隊列的報文得不到處理。在穩定的網絡環境下,上送CPU的報文數量控制在適當的範圍內,CPU占用率也穩定在一個合理的區間。如果一段時間內上送CPU的報文數量過大,則CPU會因為忙於處理這些報文而表現為CPU占用率過高。

歡迎關注我的頭條號,私信交流,學習更多網絡技術!

關鍵字: