Cisco的交换机和路由器到底有几个CPU,都分布在哪个模块上?这些是否能通过命令查出,查出来是否有问题,本文来深入分析一下。(本文参考Cisco的文档和现场实例进行编写的)
问题
Cisco的交换机和路由器到底有几个CPU,都分布在哪个模块上?这些是否能通过命令查出,查出来是否有问题,本文来深入分析一下。(本文参考Cisco的文档和现场实例进行编写的)
分析依据
要查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 6509交换机有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
通过参看交换机的板卡,定位对应关系:
从上面的分析上看
可以看出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 ,所以查不到。
参考:
How to Collect CPU Utilization on Cisco IOS Devices Using SNMP