目录

简介

先决条件

要求

使用的组件

背景信息

监控

故障排除

EEM脚本

结论

相关信息

简介

本文档介绍如何监控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的详细信息，请参阅以下链接：

- https://www.cisco.com/c/en/us/support/docs/wireless/catalyst-9800-series-wireless-controllers/217460-monitor-catalyst-9800-wlc-via-snmp-with.html。