目錄

簡介

必要條件

需求

採用元件

背景資訊

監視

疑難排解

EEM指令碼

結論

相關資訊

簡介

本文檔介紹如何監控CPU使用率以對SNMP進程上的CPU使用率過高進行故障排除。

必要條件

需求

思科建議您瞭解Cisco IOS®-XE WLC 9800系列的基本知識。

採用元件

本檔案中的資訊是根據硬體版本Cisco IOS®-XE WLC 9800系列，並不限於特定軟體版本。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景 資訊

我們需要確認SNMP是否是使用率較高的協定。為了進一步調查，請在發現問題的非工作時間內收集這些日誌，因為這會影響效能，

監視

範例：

辨識碼 執行階段（毫秒） 已叫用 uSecs 5Sec 1Min 5Min TTY 程序

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.請運行以下命令

會議時間

內部服務

end

wr

步驟 2.啟用snmp統計的EEM指令碼（在控制器CLI中複製並貼上此指令碼）：

會議時間

no event manager applet snmp-1

事件管理器小程式snmp-1

事件無maxrun 2000

操作10 cli命令「enable」

動作11 cli指令「terminal leng 0」

動作11.1置入「Script starts」

操作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|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」時間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」

操作30 cli命令「test snmp cpu-stats start」

動作35設定專案1

動作36，同時$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置入「指令碼結尾」

end

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)時間(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

bsnMobileStation使用者名稱

bsnMobileStationAPMacAddr

bsnMobileStationAPIfSlotId

bsnMobileStationEssIndex

bsnMobileStationSsid

bsnMobileStationID

bsn移動站狀態

bsnAPIfDot11BeaconPeriod

bsnGlobalDot11PrivacyOptionImplemented

bsnGlobalDot11MultiDomainCapabilityImplemented

bsnGlobalDot11MultiDomainCapabilityEnabled

bsnGlobalDot11CountryIndex

bsnGlobalDot11負載均衡

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。