目錄

簡介

必要條件

採用元件

問題

解決方案

相關思科支援社群討論

簡介

tacacsd是與Tacacs AAA服務關聯的IOS XR程式。本文討論一個軟體錯誤及其症狀，這些錯誤可以導致執行IOS XR 4.2.X或更低版本的路由器觀察到持續的高的CPU使用率。

必要條件

本文件沒有特定需求。

採用元件

本文所述的問題適用於Cisco GSR、ASR9000、CRS和運行IOS XR的其他路由器。下列輸出是從運行4.2.X以下IOS XR版本的實驗路由器中抽取的。

問題

運行IOS XR版本4.2.X或更低版本的路由器可能會發現由於已知軟體錯誤而導致警報記錄器進程導致的CPU使用率持續較高。Show process cpu輸出將顯示alarm-logger process consuccessing maximum amount of CPU utilization。

show proc cpu | ex "0% 0% 0%"

CPU utilization for one minute: 100%; five minutes: 100%; fifteen minutes: 100%

PID 1Min 5Min 15Min Process

<snip>

53281 2% 2% 2% syslogd_helper

57379 1% 1% 1% fabricq_prp_driver

69636 1% 1% 1% correlatord

69677 6% 6% 6% syslogd

118842 1% 1% 1% sysdb_svr_local

122962 3% 3% 3% gsp

229604 2% 2% 2% eem_ed_syslog

262456 1% 1% 1% tacacsd

452726918 67% 71% 72% alarm-logger

463302887 1% 1% 1% exec

<snip>

在日誌記錄緩衝區中，您可能會看到類似以下內容的連續日誌：

tacacsd[XXXX]: %SECURITY-TACACSD-7-GENERIC_ERROR ：無法獲取對key -XXXXX/XXXX/XXXX/XXXX會話XXXXX的請求

show log

<snip>

RP/0/7/CPU0:Dec 26 04:02:03.149 : tacacsd[1110]: %SECURITY-TACACSD-6-SERVER_UP :

TACACS+ server 32.95.X.X/XXXX is UP

RP/0/7/CPU0:Dec 26 04:02:05.956 : tacacsd[1110]: %SECURITY-TACACSD-6-SERVER_DOWN :

TACACS+ server 32.95.X.X/XXXX is DOWN - Socket 43: Connection timed out

RP/0/7/CPU0:Dec 26 04:02:09.468 : tacacsd[1110]: %SECURITY-TACACSD-6-SERVER_DOWN :

TACACS+ server 199.37.X.X/XXXX is DOWN - Socket 43: Connection timed out

RP/0/7/CPU0:Dec 26 04:02:09.647 : tacacsd[1110]: %SECURITY-TACACSD-6-TIMEOUT_IGNORED :

A time out event has been ignored for context key -953829129/1073/60000000/6486405

(session 6486405)

RP/0/7/CPU0:Dec 26 04:02:11.647 : tacacsd[1110]: %SECURITY-TACACSD-7-GENERIC_ERROR :

Failed to get request for: key -953829129/1073/60000000/6486405 session 105407493

RP/0/0/CPU0:last message repeated 520 times

RP/0/7/CPU0:Dec 26 04:02:34.064 : tacacsd[1110]: %SECURITY-TACACSD-6-SERVER_UP :

TACACS+ server 32.95.X.X/XXXX is UP

RP/0/7/CPU0:Dec 26 04:02:34.064 : tacacsd[1110]: %SECURITY-TACACSD-7-GENERIC_ERROR :

Failed to get request for: key -953829129/1073/60000000/6486405 session 105407493

alarm-logger和tacsd進程詳細資訊如下所示。

show processes alarm-logger

<snip>

Job Id: 114

PID: 135303

Executable path: /c12k-os-4.2.4/sbin/alarm-logger

Instance #: 1

Version ID: 00.00.0000

Respawn: ON

Respawn count: 1

Max. spawns per minute: 12

Last started: Tue Aug 13 02:17:23 2013

Process state: Run

Package state: Normal

core: MAINMEM

Max. core: 0

Level: 91

Placement: None

startup_path: /pkg/startup/alarm-logger.startup

Ready: 0.672s

Process cpu time: 1401.018 user, 49.774 kernel, 1450.792 total

JID TID Stack pri state TimeInState HR:MM:SS:MSEC NAME

114 1 88K 10 Receive 0:00:02:0071 0:00:40:0919 alarm-logger

114 2 88K 10 Receive 3242:46:17:0308 0:00:00:0000 alarm-logger

114 3 88K 10 Reply 0:00:00:0000 0:23:08:0029 alarm-logger

114 4 88K 10 Mutex 0:00:00:0000 0:00:21:0957 alarm-logger

-------------------------------------------------------------------------------

<snip>

show processes tacacsd

<snip>

Job Id: 1110

PID: 266551

Executable path: /disk0/iosxr-infra-4.2.4/bin/tacacsd

Instance #: 1

Version ID: 00.00.0000

Respawn: ON

Respawn count: 1

Max. spawns per minute: 12

Last started: Tue Aug 13 02:23:47 2013

Process state: Run

Package state: Normal

Started on config: cfg/gl/aaa/tacacs/

Process group: central-services

core: MAINMEM

Max. core: 0

Placement: Placeable

startup_path: /pkg/startup/tacacsd.startup

Ready: 3.954s

Process cpu time: 1010.118 user, 185.932 kernel, 1196.050 total

JID TID Stack pri state TimeInState HR:MM:SS:MSEC NAME

1110 1 108K 16 Sigwaitinfo 3242:46:40:0742 0:00:00:0116 tacacsd

1110 2 108K 10 Nanosleep 0:01:03:0835 0:00:00:0019 tacacsd

1110 3 108K 10 Receive 3242:46:41:0593 0:00:00:0002 tacacsd

1110 4 108K 10 Reply 0:00:00:0000 0:08:55:0970 tacacsd

1110 5 108K 16 Receive 3242:46:40:0771 0:00:00:0000 tacacsd

1110 6 108K 10 Receive 0:07:07:0403 0:04:03:0462 tacacsd

1110 7 108K 10 Receive 0:00:01:0389 0:03:28:0939 tacacsd

1110 8 108K 10 Receive 0:00:01:0332 0:03:03:0622 tacacsd

-------------------------------------------------------------------------------

<snip>

高CPU是由系統日誌消息泛洪導致警報記錄器緩衝區滿引起的。因此，警報記錄器進程仍然處於繁忙狀態，試圖同時處理消息並面臨緩衝區滿載的情況。  在這種情況下，TACACS進程是無法承受的警報記錄程式。由於警報記錄器是受害者，重新啟動警報記錄器進程將無濟於事，因為共用記憶體緩衝區在進程重新啟動後仍保持穩定。

解決方案

此問題已通過軟體錯誤CSCuh98484解決並修復 — Tacsd「Failed to get request for key」錯誤導致高CPU。此處提供錯誤詳細資訊

請注意，重新啟動tacacsd進程是一種應停止日誌的解決方法，並且CPU利用率應恢復為正常水準。重新啟動tacacsd進程不會影響任何功能或資料包轉發，會使進程處於初始狀態。

此錯誤已在以下IOS XR版本中修正。

4.3.2.SP2

4.3.2.SP3

4.3.2.SP5

4.3.2.SP6

4.3.2.SP7

4.3.2.SP8