目錄

簡介

必要條件

需求

採用元件

架構

Cisco IOSd上的CPU使用率

按流量劃分的CPU使用率

已安裝CPU核心

CPU核心分佈

監視CPU的最佳實踐

簡介

本文檔介紹如何從4300系列中讀取整合多業務路由器(ISR)上的中央處理器(CPU)使用情況。

必要條件

需求

思科建議您瞭解以下主題：

- Cisco IOS® XE

- ISR43XX

採用元件

本檔案中的資訊是根據硬體和軟體版本：

- ISR4321/K9

- ISR4331/K9

- ISR4351/K9

- 03.16.01a.S//15.5(3)S1a

- 03.16.04b.S/ 15.5(3)S4b

- 16.9.7

- 16.12.4

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

架構

Cisco ISR 4000系列平台運行Cisco IOS XE，它具有分散式軟體架構，運行Linux核心，其中Cisco IOS®作為多個Linux進程之一運行。 Cisco IOS作為守護程式運行，稱為Cisco IOS守護程式(IOSd)。

Cisco IOSd上的CPU使用率

為了監控IOSd上的CPU使用率，請運行show process cpu命令：

#show process cpu

CPU utilization for five seconds: 1%/0%; one minute: 1%; five minutes: 0%

PID Runtime(ms)     Invoked      uSecs   5Sec   1Min   5Min TTY Process

1           2           8        250  0.00%  0.00%  0.00%   0 Chunk Manager

2           5          18        277  0.07%  0.00%  0.00%   0 Load Meter

3           0           2          0  0.00%  0.00%  0.00%   0 DiagCard4/-1

4           0           1          0  0.00%  0.00%  0.00%   0 Retransmission o

5           0           1          0  0.00%  0.00%  0.00%   0 IPC ISSU Dispatc

輸出顯示CPU使用率的兩個值，第一個值是CPU的總使用率，第二個值是傳送到IOSd的中斷所導致的CPU使用率：

CPU總量與中斷所導致的CPU數量之間的差值是進程消耗的CPU值；為了證實新增過去五秒內所有進程的使用情況：

- 進程的CPU消耗= 1% - 0% = 1% =命令中列出的所有進程的CPU消耗

若要在頂部顯示佔用大量CPU的進程，請運行show process cpu sorted 命令：

#show process cpu sorted

CPU utilization for five seconds: 1%/0%; one minute: 0%; five minutes: 0%

PID Runtime(ms)     Invoked      uSecs   5Sec   1Min   5Min TTY Process

64         103          10      10300  0.33%  0.02%  0.00%   0 Licensing Auto U

83          26         231        112  0.27%  0.00%  0.00%   0 PuntInject Keepa

235         555       48176         11  0.11%  0.09%  0.07%   0 Inline Power

1           2           8        250  0.00%  0.00%  0.00%   0 Chunk Manager

注意：新增所有進程可以導致浮點值，IOSd會將結果舍入為下一個整數。

按流量劃分的CPU使用率

ISR4300系列設計通過稱為QuantumFlow處理器(QFP)的元素來轉發流量。

注意:QFP在ASR1K上是一個或多個物理晶片，在ISR4400上使用Cavium Octeon協處理器完成相同功能，在ISR4300上則是在主英特爾CPU的某些核心上完成相同功能。您可以將ISR4300系列上的QFP看作是一種轉發資料包的軟體。

若要確定流量消耗的CPU數量，可以運行show platform hardware qfp active datapath utilization命令：

#show platform hardware qfp active datapath utilization

CPP 0: Subdev 0            5 secs        1 min        5 min       60 min

Input:  Priority (pps)            0            0            0            0

(bps)            0            0            0            0

Non-Priority (pps)            3            2            2            1

(bps)         1448          992          992          568

Total (pps)            3            2            2            1

(bps)         1448          992          992          568

Output: Priority (pps)            0            0            0            0

(bps)            0            0            0            0

Non-Priority (pps)            3            2            2            1

(bps)        12216         8024         8024         4576

Total (pps)            3            2            2            1

(bps)        12216         8024         8024         4576

Processing: Load (pct)            0            0            0            1

命令列出優先順序資料包和非優先順序資料包的輸入和輸出CPU使用率，資訊以資料包/秒(PPS)和位元/秒(BPS)顯示，最後一行顯示由於資料包轉發產生的CPU負載總量（百分比[PCT]）。

已安裝CPU核心

ISR4300系列安裝了不同數量的CPU核心（取決於型號），要確定您的裝置上安裝的核心數量，請運行show processes cpu platform命令：

#show processes cpu platform

CPU utilization for five seconds: 30%, one minute: 29%, five minutes: 29%

Core 0: CPU utilization for five seconds: 13%, one minute: 13%, five minutes: 13%

Core 1: CPU utilization for five seconds:  2%, one minute:  3%, five minutes:  3%

Core 2: CPU utilization for five seconds:  0%, one minute:  0%, five minutes:  0%

Core 3: CPU utilization for five seconds: 99%, one minute: 99%, five minutes: 99%

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

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

1       0      0%      0%      0%  S          1863680  init

2       0      0%      0%      0%  S                0  kthreadd

或者，運行show platform software status control-processor命令：

#show platform software status control-processor

<output omitted>

Per-core Statistics

CPU0: CPU Utilization (percentage of time spent)

User:  4.80, System: 10.30, Nice:  0.00, Idle: 84.50

IRQ:  0.40, SIRQ:  0.00, IOwait:  0.00

CPU1: CPU Utilization (percentage of time spent)

User:  2.00, System:  3.40, Nice:  0.00, Idle: 94.59

IRQ:  0.00, SIRQ:  0.00, IOwait:  0.00

CPU2: CPU Utilization (percentage of time spent)

User:  0.50, System:  0.00, Nice:  0.00, Idle: 99.49

IRQ:  0.00, SIRQ:  0.00, IOwait:  0.00

CPU3: CPU Utilization (percentage of time spent)

User: 24.72, System: 75.27, Nice:  0.00, Idle:  0.00

IRQ:  0.00, SIRQ:  0.00, IOwait:  0.00

另一方面，運行show platform software status control-processor brief命令，並且以下任何命令都會顯示已安裝的核心數量：

#show platform software status control-processor brief

<output omitted>

CPU Utilization

Slot  CPU   User System   Nice   Idle    IRQ   SIRQ IOwait

RP0    0   4.30   9.80   0.00  85.90   0.00   0.00   0.00

1   0.79   0.99   0.00  98.20   0.00   0.00   0.00

2   0.50   0.00   0.00  99.50   0.00   0.00   0.00

3  24.60  75.40   0.00   0.00   0.00   0.00   0.00

CPU核心分佈

ISR4300系列的設計產生了用於資料包處理的特定核心。核心四至七保留用於ISR4331和4351上的資料包處理，而核心二和三則用於ISR4321。

在由於效能原因而包括Cisco IOS XE版本16.5.x之前，分層隊列框架(HQF)具有執行緒始終熱旋轉和高CPU使用率運行的功能，無論機箱上有何種配置或系統傳輸多少流量。在ISR4300平台上，由於QFP軟體運行在主CPU上，因此在一個或多個核心上可能表現為高CPU使用率。

但是，在包括Cisco IOS XE 16.6.x版本之後，進行了更改，以便這些平台不會使執行緒熱旋轉。在這種情況下，CPU利用率通過核心分佈更廣。

要顯示熱旋轉盤的使用率，請在Cisco IOS XE 16.6.x之前運行show processes cpu platform sorted命令:

#show processes cpu platform sorted

CPU utilization for five seconds: 28%, one minute: 29%, five minutes: 29%

Core 0: CPU utilization for five seconds: 12%, one minute: 13%, five minutes: 14%

Core 1: CPU utilization for five seconds:  2%, one minute:  3%, five minutes:  3%

Core 2: CPU utilization for five seconds:  0%, one minute:  0%, five minutes:  0%

Core 3: CPU utilization for five seconds: 99%, one minute: 99%, five minutes: 99% <<< hot-spin

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

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

2541    1955     99%     99%     99%  S       1073807360  qfp-ucode-utah <<< high CPU process

1551     929      7%      7%      7%  S       2038525952  fman_fp_image

在Cisco IOS XE 16.6.x之前，在八核架構上，您會看到相同的結果，在熱旋轉模式下使用不同的核心:

#show processes cpu platform sorted

CPU utilization for five seconds: 15%, one minute: 14%, five minutes: 15%

Core 0: CPU utilization for five seconds:  6%, one minute:  4%, five minutes:  8%

Core 1: CPU utilization for five seconds:  1%, one minute:  0%, five minutes:  2%

Core 2: CPU utilization for five seconds:  9%, one minute: 10%, five minutes:  7%

Core 3: CPU utilization for five seconds:  1%, one minute:  2%, five minutes:  1%

Core 4: CPU utilization for five seconds:  1%, one minute:  1%, five minutes:  1%

Core 5: CPU utilization for five seconds:  0%, one minute:  0%, five minutes:  0%

Core 6: CPU utilization for five seconds: 99%, one minute: 99%, five minutes: 99% <<< hot-spin

Core 7: CPU utilization for five seconds:  0%, one minute:  0%, five minutes:  0%

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

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

3432    2779     99%     99%     99%  S       1086341120  qfp-ucode-utah <<< high CPU process

2612    1893      7%      7%      7%  S       2038697984  fman_fp_image

26114   25132      4%      5%      5%  R         42803200  hman

新增和包括Cisco IOS XE 16.6.x後，您可以看到核心2和核心3之間的負載分佈：

------------------ show process cpu platform sorted ------------------

CPU utilization for five seconds: 31%, one minute: 32%, five minutes: 29%

Core 0: CPU utilization for five seconds:  3%, one minute:  3%, five minutes:  3%

Core 1: CPU utilization for five seconds:  3%, one minute:  2%, five minutes:  2%

Core 2: CPU utilization for five seconds: 39%, one minute: 41%, five minutes: 34% <<< load distributed

Core 3: CPU utilization for five seconds: 84%, one minute: 83%, five minutes: 79% <<< load distributed

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

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

26939   26344    127%    126%    116%  S       1195311104  qfp-ucode-utah <<< high CPU process

在包括Cisco IOS XE 16.6.x之後，將應用與先前輸出相同的內容，但適用於核心4至7:

------------------ show process cpu platform sorted ------------------

CPU utilization for five seconds: 30%, one minute: 24%, five minutes: 27%

Core 0: CPU utilization for five seconds: 41%, one minute: 13%, five minutes: 13%

Core 1: CPU utilization for five seconds: 23%, one minute: 11%, five minutes: 13%

Core 2: CPU utilization for five seconds: 19%, one minute: 10%, five minutes: 12%

Core 3: CPU utilization for five seconds: 38%, one minute: 12%, five minutes: 12%

Core 4: CPU utilization for five seconds: 28%, one minute: 26%, five minutes: 28% <<< load distributed

Core 5: CPU utilization for five seconds: 53%, one minute: 40%, five minutes: 37% <<< load distributed

Core 6: CPU utilization for five seconds: 18%, one minute: 16%, five minutes: 17% <<< load distributed

Core 7: CPU utilization for five seconds: 93%, one minute: 81%, five minutes: 81% <<< load distributed

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

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

26049    25462    164%    165%    170%  S           394128  qfp-ucode-utah <<< high CPU process

注意：如果您懷疑核心CPU使用有問題，請開啟技術支援中心(TAC)案例，以獲得協助並確認裝置穩定性。

監視CPU的最佳實踐

最好使用特定命令進行資料路徑利用率或IOSd使用情況，核心顯示命令的結果可能會導致錯誤陽性警報。

用於監視資料路徑利用率的命令為：

- show platform hardware qfp active datapath utilization

用於監控IOSd使用情況的命令為：

- show process cpu sorted

使用以下任何對象標識符(OID)以使用簡單網路管理協定(SNMP)監控IOSd CPU使用情況：

- busyPer =過去5秒內IOSd CPU忙碌百分比

- avgBusy1 = IOSd 1分鐘呈指數衰減的CPU忙碌百分比移動平均值

- avgBusy5 = IOSd 5分鐘呈指數衰減的CPU忙碌百分比移動平均值