简介
本文档介绍如何监控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
步骤2.启用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|Jul|Aug|Sep|Oct|Nov|Dec)([1-9]|0[1-9]|[1-2][0-9]|3[0-1])(20[1-9][0-9])" "$_cli_result"时间2月日年
操作22显示“$time2”
操作23输入“$month”
操作24输入“$day”
操作25将“$year”置于
操作26 cli命令“show clock | append flash:/snmp-cpu-logs-$year$month$day.txt"
操作27 cli命令“show snmp stats hosts | append flash:/snmp-cpu-logs-$year$month$day.txt"
action 30 cli命令“test snmp cpu-stats start”
动作35设置第1步
操作36而$iter le 6
action 40 cli命令"show snmp cpu-stats | append flash:/snmp-cpu-logs-$year$month$day.txt"
操作40.1置入“迭代器:$iter”
操作41等待300
操作43 cli命令“show clock | append flash:/snmp-cpu-logs-$year$month$day.txt"
动作44增量第1步
操作45 end
action 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
步骤3.使用以下命令运行之前的脚本:#event manager run snmp-1
注意:在非工作时间,当发现问题时,使用命令启用脚本,
等待脚本结束CLI中的提示。通常需要30分钟。
步骤4.运行上述脚本最多需要30-40分钟,并且会提示“脚本结束”消息,
在看到“脚本结束”消息后,需要完成“迭代器”
脚本结束后,请转到GUI > Administration > File Manager > Bootflash。右键点击snmp-cpu-logs.txt日志下载并与TAC共享。
步骤5.检查问题发生时用于轮询WLC的MIB文件。
示例参考输出可能如下所示:
DR 5sec% 1min% 5min% Running(ms)Time(usecs)Invoked 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 subagent cache
使用此命令时,将在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
bsnGlobalDot11PrivacyOption已实施
bsnGlobalDot11MultiDomainCapability已实施
bsnGlobalDot11MultiDomainCapabilityEnabled
bsnGlobalDot11CountryIndex
bsnGlobalDot11负载均衡
bsnGlobalDot11bDot11g支持
SNMP上的“bsn station”对象需要排队时间才能获取其他详细信息。
提示:最佳实践是根据网络中的节点数量减少轮询间隔,并删除不需要的MIB
相关信息
有关C9800上SNMP的详细信息,请参阅以下链接: