簡介
本文檔介紹如何監控CPU使用率,以便對SNMP進程上的CPU使用率過高進行故障排除。
必要條件
需求
思科建議您瞭解Cisco IOS®-XE WLC 9800系列的基本知識。
採用元件
本檔案中的資訊是根據硬體版本Cisco IOS®-XE WLC 9800系列,並不限於特定軟體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景 資訊
我們需要確認SNMP是否是利用率較高的。為了進一步調查,請在發現問題的非工作時間內收集這些日誌,因為它可能會影響效能,
監視
範例:
ID 運行時(毫秒) 已叫用 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放置「指令碼開始」
操作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"
操作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
操作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中的提示。通常要三十分鐘
步驟4.運行之前的指令碼最多需要30到40分鐘,它會提示「指令碼結束」消息,
有「Iterator」需要完成,然後您會看到消息「Script ends」
指令碼結束後,請轉到GUI >管理>檔案管理器> Bootflash。按一下右鍵snmp-cpu-logs.txt日誌下載並與TAC共用。
步驟5.檢查問題發生期間用於輪詢WLC的MIB檔案。
示例參考輸出可能如下所示:
DR 5sec% 1min% 5min% Running(ms)Time(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 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
bsnMobileStation使用者名稱
bsnMobileStationAPMacAddr
bsnMobileStationAPIfSlotId
bsnMobileStationEssIndex
bsnMobileStationSsid
bsnMobileStationAID
bsnMobileStation狀態
bsnAPIfDot11BeaconPeriod
bsnGlobalDot11PrivacyOption已實施
bsnGlobalDot11MultiDomainCapability已實施
bsnGlobalDot11MultiDomainCapabilityEnabled
bsnGlobalDot11CountryIndex
bsnGlobalDot11負載平衡
bsnGlobalDot11bDot11g支援
SNMP上的「bsn station」對象需要排隊時間才能獲取其他詳細資訊。
提示:最佳實踐是根據網路中的節點數量減少輪詢間隔,並刪除不需要的MIB
相關資訊
有關C9800上的SNMP的詳細資訊,請參閱以下連結: