简介
本文档介绍如何监控CPU利用率以对SNMP进程的CPU使用率过高进行故障排除。
先决条件
要求
Cisco建议您具备Cisco IOS®-XE WLC 9800系列的基本知识。
使用的组件
本文档中的信息基于硬件版本Cisco IOS®-XE WLC 9800系列,并不限于特定的软件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景 信息
我们需要确认SNMP是否是利用率较高的协议。为了进一步调查,请在发现问题的非工作时间内收集这些日志,因为它可能会影响性能,
监控
示例:
ID Runtime (ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
736 6846005 11045858 619 88.09% 9.15% 3.28% 0 SNMP引擎
故障排除
打开两个WLC CLI会话以收集这些日志:
Session-1:show snmp stats hosts
Debug snmp packet Debug snmp detail terminal monitor
Session-2:这些统计信息显示一段时间内的输出,并使内部服务可以运行此信息。
Conf t Service internal end wr test snmp cpu-stats start show snmp cpu-stats test snmp cpu-stats stop
此外,如果发现问题,请检查SNMP服务器上用于轮询的MIB。
EEM脚本
请按照非生产时间的步骤进行操作。
步骤1.请运行以下命令
会议时间
内部服务
结束
wr
第二步:启用EEM脚本的snmp统计信息(复制并粘贴控制器的CLI中的此脚本):
会议时间
no event manager applet snmp-1
事件管理器小程序snmp-1
event none maxrun 2000
操作10 cli命令“enable”
操作11 cli命令“terminal leng 0”
操作11.1放入“脚本开始”
操作12 cli命令“debug snmp packet”
操作13 cli命令“debug snmp detail”
操作14 cli命令“debug snmp request”
操作20.1 cli命令“show clock”
操作21 regexp "(Jan|Feb|Mar|Apr|May|Jun|Jug|Aug|Sep|Oct|Nov|Dec) ([1-9]|0[1-9]|[1-2][0-9]|3[0-1]) (20[1-9][0-9])" "$_cli_result" time2月日年
动作22置入“$time2”
动作23置入“$month”
动作24置入“$day”
动作25将“$year”置于
操作26 cli命令“show clock | append flash:/snmp-cpu-logs-$year$month$day.txt"
action 27 cli command "show snmp stats hosts | append flash:/snmp-cpu-logs-$year$month$day.txt"
操作30 cli命令“test snmp cpu-stats start”
action 35设置iter 1
action 36 while $iter le 6
操作40 cli命令“show snmp cpu-stats | append flash:/snmp-cpu-logs-$year$month$day.txt"
操作40.1放入“Iterator:$iter”
操作41等待300
操作43 cli命令“show clock | append flash:/snmp-cpu-logs-$year$month$day.txt"
操作44增量第1步
行动45结束
操作50 cli命令“test snmp cpu-stats stop”
操作55 cli命令“no debug snmp packet”
操作56 cli命令“no debug snmp detail”
操作57 cli命令“no debug snmp request”
操作58将“脚本结束”
结束
wr
第三步:使用以下命令运行之前的脚本:#event manager run snmp-1
注意:在非工作时间,如果发现问题,请使用命令启用脚本,
等待脚本结束CLI中的提示。通常需要30分钟。
第四步:运行前面的脚本最多需要30-40分钟,并且会提示“Script ends”消息,
在看到消息“脚本结束”后,需要完成“迭代器”
脚本完成后,转至GUI > Administration > File Manager > Bootflash。右键点击snmp-cpu-logs.txt日志下载并与TAC共享。
第五步:检查在出现问题时用于轮询WLC的MIB文件。
示例参考输出可能如下所示:
DR 5sec% 1min% 5min%运行(ms)时间(usecs)调用的OID
556272A00320 0.00 6.03 3.30 59 59408 44 vmMembershipSummaryEntry.2
556272A00320 50.48 9.68 4.09 59 59659 44 vmMembershipSummaryEntry.3
556272A00320 0.23 1.60 2.23 0 8333 6 clcCdpApCacheApName
556272A00320 0.19 1.62 2.24 2 6999 5 bsnDot11EssMacFiltering
556272A00320 0.23 1.60 2.23 2 3792 24 bsnDot11EssAdminStatus
556272A00320 0.23 1.60 2.23 2 4000 2 bsnDot11EssSecurityAuthType
556272A00320 0.23 1.60 2.23 2 3541 24 bsnDot11EssRowStatus
556272A00320 0.23 1.60 2.23 2 3500 2 bsnDot11EssWmePolicySet
C9800-40的SNMP利用率高于70-90%是正常的。
结论
如果使用SNMP轮询不同的OID,则需要将CLI配置为最佳实践,以减小对C9800 CPU的可能影响:C9800config)#snmp-server子代理缓存
使用此命令,缓存将在60秒后清除。要更改间隔,请使用以下CLI:
C9800(config)#snmp-server subagent cache timeout ?
<1-100>缓存超时间隔(默认60秒)
如果要在SNMP流程中更多地使用核心,请使用MIB限制来自服务器的SNMP轮询。禁用SNMP MIB/服务器的高队列时间对象标识符。
可以禁用或删除MIB中的高排队SNMP对象。
以下是可在不需要时禁用的参考列表:
clcCdpApCacheApName
bsnDot11EssMacFiltering
bsnDot11EssAdminStatus
bsnDot11EssSecurityAuthType
bsnDot11EssRowStatus
bsnDot11EssWmePolicySetting
bsnMobileStationIpAddress
bsnMobileStationUsername
bsnMobileStationAPMacAddr
bsnMobileStationAPIfSlotId
bsnMobileStationEssIndex
bsnMobileStationSsid
bsnMobileStationAID
bsnMobileStationStatus
bsnAPIfDot11BeaconPeriod
bsnGlobalDot11PrivacyOptionImplemented
bsnGlobalDot11MultiDomainCapabilityImplemented
bsnGlobalDot11MultiDomainCapabilityEnabled
bsnGlobalDot11CountryIndex
bsnGlobalDot11LoadBalancing
bsnGlobalDot11bDot11g支持
SNMP上的“bsn station”对象需要排队时间才能获取其他详细信息。
提示:最佳实践是根据网络上的节点数缩短轮询间隔并删除不需要的MIB
相关信息
有关C9800上的SNMP的详细信息,请参阅以下链接: