IP : 简单网络管理协议 (SNMP)

IP 简单网络管理协议 (SNMP) 导致高 CPU 使用率

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录

简介
先决条件
     要求
     使用的组件
     规则
SNMP引擎进程造成的高CPU利用率
     被 NMS 工作站轮询的巨大的路由和/或 ARP 表
     轮询某些 MIB
NetPro Discussion Forums -特色会话
相关的思科支持社区讨论
相关信息

简介

本文解释如何排除故障在路由器的高CPU利用率由于运行在路由器的SNMP引擎进程,特别是在低价的路由器。

先决条件

要求

本文档的读者应掌握以下这些主题的相关知识:

使用的组件

本文档中的信息根据运行Cisco IOS软件的路由器。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

SNMP引擎进程造成的高CPU利用率

有时,象这样的消息也许在路由器控制台出现:

%SNMP-3-CPUHOG: Processing [chars] of [chars]

他们意味着在设备的SNMP代理程序花些许多时间处理请求。

通过使用输出show process cpu命令,您能确定高CPU使用的原因在路由器的。

以下示例显示输出show process cpu命令

cacuk#show process cpu 
CPU utilization for five seconds: 0%/0%; 
one minute: 0%;
five minutes: 0% 

PID

Runtime(ms)

调用

uSecs

5sec

1Min

5Min

TTY

进程

1

68

258816

0

0.00%

0.00%

0.00%

0

Load Meter

2

0

1

0

0.00%

0.00%

0.00%

0

OSPF Hello

3

788132

131480

5994

0.00%

0.00%

0.00%

0

Check heaps

4

0

1

0

0.00%

0.00%

0.00%

0

Chunk Manager

5

56

131

427

0.00%

0.00%

0.00%

0

Pool Manager

69

202700

421730

480

0.00%

0.01%

0.00%

0

IP SNMP

71

1193648

211250

5650

0.00%

0.19%

0.15%

0

SNMP引擎

Object ID (OID)或管理信息库的调试snmp命令检查(MIB)当时被查询。

注意: 运行在生产网络的调试可能淹没路由器。

有发生关于简单网络管理协议(SNMP)的高CPU利用率的两个可能原因:

  1. NMS工作站和ARP表轮询的大路由

  2. 轮询的某一MIB

被 NMS 工作站轮询的巨大的路由和/或 ARP 表

网络管理站查询路由器他们的整个路由表得知其他网络。它使用此信息找到其他路由器和对网络他们的知识查询他们在他们附近。以这种方式,管理站能学习整个网络的拓扑。

路由器储存在一个被切细的格式的路由表,有助于快速路由搜索。然而,路由的SNMP答复要求按字典顺序返回每RFC1213。所以,为了路由器收到的每SNMP请求,必须词典地排序散列表,在SNMP响应PDU可以被构件前。越大路由表,越强化中央处理排序。

SNMP是低优先级进程,就CPU调度器而言,因此别的要求CPU资源的进程采取优先级。所以,而CPU峰值在此方案发生,他们不应该影响性能。

建议1 :请使用snmp-server view命令

要避免性能问题,请强制路由器过早地结束路由表的查询从网络管理系统服务器。请配置路由器回应全部的消息,当接收一个要求的开始路由表,如下:

snmp-server view cutdown iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

 
snmp-server view cutdown 1.3.6.1.2.1.4.21 excluded 
snmp-server view cutdown 1.3.6.1.2.1.4.22 excluded 
snmp-server view cutdown 1.3.6.1.2.1.3 excluded
snmp-server view cutdown 1.3.6.1.6.3.15 excluded

!--- The additional object snmpUsmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.16 excluded

!--- The additional object snmpVacmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.18 excluded

!--- The additional object snmpCommunityMIB is excluded.
 
snmp-server community public view cutdown RO
snmp-server community private view cutdown RW

警告 警告: 在上述示例中, snmpUsmMIB被排除, snmpVacmMIB被排除,并且snmpCommunityMIB被排除。同时这些对象可以用于获得关于已配置的用户和社区字符串的信息获得对设备的管理访问。推荐这些对象是从视图的已排除的在可以由公共用户访问的所有设备。

此配置拒绝请求检索路由表(ipRouteTable)和地址解析服务(ARP)表(ipNetToMediaTable),但是通过允许其他请求。如果有思科IOS�软件更旧的版本,它不会认可MIB对象ipRouteTable,因此请使用以下配置:

snmp-server view cutdown iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

snmp-server view cutdown 1.3.6.1.2.1.4.21 excluded 
snmp-server view cutdown 1.3.6.1.2.1.4.22 excluded 
snmp-server view cutdown at excluded
snmp-server view cutdown 1.3.6.1.6.3.15 excluded

!--- The additional object snmpUsmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.16 excluded

!--- The additional object snmpVacmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.18 excluded

!--- The additional object snmpCommunityMIB is excluded.
 
snmp-server community public view cutdown RO 
snmp-server community private view cutdown RW

警告 警告: 在上述示例中, snmpUsmMIB被排除, snmpVacmMIB被排除,并且snmpCommunityMIB被排除。同时这些对象可以用于获得关于已配置的用户和社区字符串的信息获得对设备的管理访问。推荐这些对象是从视图的已排除的在可以由公共用户访问的所有设备。

在这两示例中,您能替代您自己的社区字符串。

这些配置结果是路由器不再返回ARP表或IP路由表,当查询。这防止SNMP网络发现创建在有问题的路由器的CPU峰值,但是从路由器也取消程度可管理性。

以前没有陈列CPU峰值的路由器可能开始如此执行,如果有在他们的路由表上的一个变化。要求的相当数量周期应答到IP路由表请求是路由数量的功能在路由表里。如果路由数量增加, CPU利用率增加。

建议2 :打开CEF

如果使用,一个变化做在Cisco IOS代码上允许SNMP查询Cisco express forwarding (CEF)表路由条目CEF交换。这极大改进情况。当CEF启用, SNMP代理程序回应对路由的一得到next/get容量与信息的操作或ARP表从转发信息库(FIB)。FIB按字典顺序存储,并且排序不是需要的。没有启用的CEF, SNMP代理程序回应从路由信息库(RIB)的信息,必须排序到导致高CPU的字典命令。

跟随下面Bug ID链接并且请参阅详细Bug信息。

CSCdk54265 (仅限注册用户) - CPU HOG通过从网络管理站的SNMP被生成,当轮询路由表。

轮询某些 MIB

使用SNMP,网络管理应用程序从设备频繁地获取信息。一示例是资源管理器要素(RME),在产品内CiscoWorks 2000套件的应用程序。RME能获取在CISCO-FLASH-MIB定义的闪存信息。如果设备有一个ATA闪存盘,能造成CPU利用率跳。

跟随下面Bug ID链接并且请参阅详细Bug信息。

CSCdt97325 (仅限注册用户)

要验证和应用应急方案,请遵从这些步骤:

  1. 如果设备有一张ATA闪存卡在其slot之一中,请验证:

    Router#show disk1: 
    ******** ATA Flash Card Geometry/Format Info ******** 
    
    ATA CARD GEOMETRY 
        Number of Heads:        12 
        Number of Cylinders     906 
        Sectors per Cylinder    63 
        Sector Size             512 
        Total Sectors           684936 
    
    ATA CARD FORMAT 
        Number of FAT Sectors  84 
        Sectors Per Cluster    32 
        Number of Clusters     21372 
        Number of Data Sectors 684117 
        Base Root Sector       169 
        Base FAT Sector        1 
        Base Data Sector       201 
    
    Router# 
    
    

    如果不是肯定的或,如果不得到show diskX命令的输出,请运行show tech命令并且执行磁盘的一搜索。

  2. 一旦知道您有一个ATA闪存盘,您能应用以下应急方案防止在FLASH-MIB的SNMP查询:

    Router(config)#snmp-server view <any_word> iso included
    
    !--- ISO is used as a starting point as it is the snmp 'root'.
     
    Router(config)#snmp-server view <any_word> ciscoFlashMIB excluded 
    
    !--- The additional object snmpUsmMIB is excluded.
    
    Router(config)#snmp-server view <any_word> 1.3.6.1.6.3.15 excluded
    
    !--- The additional object snmpVacmMIB is excluded.
    
    Router(config)#snmp-server view <any_word> 1.3.6.1.6.3.16 excluded
    
    !--- The additional object snmpCommunityMIB is excluded.
    
    Router(config)#snmp-server view <any_word> 1.3.6.1.6.3.18 excluded
    Router(config)#snmp-server community <read_community_string> view <any_word> ro 
    Router(config)#snmp-server community <write_community_string> view <any_word> rw 
    Router(config)#exit
    Router#

    注意: 选择在每条线路的同一个词<any_word>的在上述配置里。

    警告 警告: 在上述示例中, snmpUsmMIB被排除, snmpVacmMIB被排除,并且snmpCommunityMIB被排除。同时这些对象可以用于获得关于已配置的用户和社区字符串的信息获得对设备的管理访问。推荐这些对象是从视图的已排除的在可以由公共用户访问的所有设备。

  3. 验证它正确地实现:

    Router#show run 
    ... 
    snmp-server view <any_word> iso included
    
    !--- ISO is used as a starting point as it is the snmp 'root'.
    
    snmp-server view <any_word> ciscoFlashMIB excluded
    snmp-server view <any_word> internet.6.3.15 excluded
    
    !--- The additional object snmpUsmMIB is excluded.
    
    snmp-server view <any_word> internet.6.3.16 excluded
    
    !--- The additional object snmpVacmMIB is excluded.
    
    snmp-server view <any_word> internet.6.3.18 excluded 
    
    !--- The additional object snmpCommunityMIB is excluded.
    
    snmp-server community <write_community_string> view <any_word> RW 
    snmp-server community <read_community_string> view <any_word> RO
    

    注意: <any_word>、<write_community_string>和<read_community_string>是在配置里的那些。

    警告 警告: 在上述示例中, snmpUsmMIB被排除, snmpVacmMIB被排除,并且snmpCommunityMIB被排除。同时这些对象可以用于获得关于已配置的用户和社区字符串的信息获得对设备的管理访问。推荐这些对象是从视图的已排除的在可以由公共用户访问的所有设备。

  4. 发出show proc cpu命令验证,如果SNMP的CPU设备断开并且寻找IP_SNMP进程。

注意: bug CSCdt97325在一些最新Cisco IOS版本也修复,因此请检查bug关于所有详细信息。

与轮询MIB涉及的其他Bug :

跟随下面Cisco Bug ID链路并且请参阅详细Bug信息。

NetPro Discussion Forums -特色会话

网络专业连接是网络专业人员的一个论坛,它共享网络解决方案、产品和技术的相关问题、建议和信息。功能链路是此技术可用的一些最近的会话。
NetPro论坛-网络管理的特色会话
网络基础设施:网络管理
 
虚拟专用网络:网络和策略管理
 

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 7270