如何看待Cisco交換機與路由器多CPU
交換機有很多值得學習的地方,這里我們主要介紹Cisco交換機與路由器多CPU的特點。Cisco交換機和路由器到底有幾個CPU,都分布在哪個模塊上?這些是否能通過命令查出,查出來是否有問題,本文來深入分析一下。
分析依據
要查Cisco交換機和路由器上的多CPU,必須有CISCO-PROCESS MIB,從該MIB中表cpmCPUTotalTable 查找到對象cpmCPUTotal5minRev(即5分鐘CPU收到的占有率),通過通過這個表的CPU索引 cpmCPUTotalPhysicalIndex 找到CPU所在位置;最好后通過索引,從entPhysicalName 對象找到CPU分布在那些模塊,cpmCPUTotal5minRev的值需要確認IOS版本,再確認不同的對象。綜上,分三步查找:
1、cpmCPUTotal5minRev (.1.3.6.1.4.1.9.9.109.1.1.1.1.5) (以IOS在12.0(3)T-12.2(3.5) 之間為例),查找該設備有幾個CPU,同時每個CPU占有率多少。
2、cpmCPUTotalPhysicalIndex (.1.3.6.1.4.1.9.9.109.1.1.1.1.2) 查找CPU在cpmCPUTotalTable 中的索引。
3、entPhysicalName (.1.3.6.1.2.1.47.1.1.1.1.7) 通過引用索引,定位CPU在哪個板卡上。
實例分析(Cisco catalyst 6509)
1、查找CPU的個數,及5分鐘占有率。
C: >snmpwalk 10.1.0.2 .1.3.6.1.4.1.9.9.109.1.1.1.1.5
cisco.ciscoMgmt.109.1.1.1.1.5.1 : Unsigned32: 6
cisco.ciscoMgmt.109.1.1.1.1.5.2 : Unsigned32: 7
cisco.ciscoMgmt.109.1.1.1.1.5.3 : Unsigned32: 91
cisco.ciscoMgmt.109.1.1.1.1.5.4 : Unsigned32: 91
該Cisco交換機有4個CPU,分別占用為 6% 、7%、91%、91%。
2、查找CPU的索引。
C: >snmpwalk 10.1.0.2 .1.3.6.1.4.1.9.9.109.1.1.1.1.2
cisco.ciscoMgmt.109.1.1.1.1.2.1 : INTEGER: 4017
cisco.ciscoMgmt.109.1.1.1.1.2.2 : INTEGER: 4001
cisco.ciscoMgmt.109.1.1.1.1.2.3 : INTEGER: 1007
cisco.ciscoMgmt.109.1.1.1.1.2.4 : INTEGER: 5007
3、通過索引,定位CPU在哪些板卡上。
C: >snmpget 10.1.0.2 .1.3.6.1.2.1.47.1.1.1.1.7.4017
47.1.1.1.1.7.4017 : OCTET STRING- (ascii): CPU of Routing Processor 5
C: >snmpget 10.1.0.2 .1.3.6.1.2.1.47.1.1.1.1.7.4001
47.1.1.1.1.7.4001 : OCTET STRING- (ascii): CPU of Switching Processor 5
C: >snmpget 10.1.0.2 .1.3.6.1.2.1.47.1.1.1.1.7.5007
47.1.1.1.1.7.5007 : OCTET STRING- (ascii): CPU of Sub-Module 1 DFC Card
C:>snmpget 10.1.0.2 .1.3.6.1.2.1.47.1.1.1.1.7.1007
47.1.1.1.1.7.1007 : OCTET STRING- (ascii): CPU of Sub-Module 2 DFC Card
通過參看Cisco交換機的板卡,定位對應關系,從上面的分析上看,可以看出6509 配置的5個模塊,CPU的分布如下:板卡號 模塊名 子模塊名 Cpu個數 CPU占用率。
1 16口SFM 1000MB模塊 DFC 卡 1 91%。
2 16口SFM 1000MB模塊 DFC 卡 1 91%。
3 8口1000 MB 模塊 - 0。
4 48口100 MB 模塊 - 0。
5 SUP 720 引擎 PFC和MSFC2 2 PFC 6%, MSFC2 7%。
為什么DFC卡 CPU 占有率如此高?
DFC中有一個進程為 lcp schedular ,這個進程在系統初始化的時候,占用CPU時間為100% ,之后其他的進程需要CPU時間時,分配給其他的進程,也就是說lcp scheduler 占用的都是沒有用的CPU時間, lcp scheduler 進程是接管所有沒有用的CPU時間來動態分配CPU。某些網管軟件和命令 show process cpu 不關心DFC的cpu ,所以查不到。