简介
本文档介绍如果Catalyst 9800与数据平面相关,为何会出现CPU使用率较高的问题。
使用的组件
背景信息
与9800-40和9800-80不同,9800-CL和9800-L没有硬件数据平面转发芯片。因此,数据平面由软件进程(在CPU上运行)模拟。
此软件模拟数据平面的一个特殊之处在于,数据平面进程几乎总是使用100%的CPU核心,因为它唯一的工作是持续轮询网络接口以查看数据包是否已到达,即使几乎没有网络流量时也是如此。
症状
Catalyst 9800有时会在给定CPU核心上显示较高的CPU使用率。确定它是否真的是高CPU软件问题或您可以忽略的数据平面症状非常重要。
9800 Web UI主页有一个CPU趋势构件,可显示每个CPU核心的利用率。该构件还向您展示CPU核心的专用功能。
在本示例中,您可以看到部署了9800-CL中型OVA(非高吞吐量),它具有4个控制平面核心和2个数据平面核心。
在这种情况下,如果核心4和5显示高利用率,您可以忽略它。
9800 Web UI上的CPU利用率构件
在CLI中,命令show platform software cpu alloc显示分配给每个CPU核心的角色(如前面的Web UI构件所示)。
命令show process cpu platform sorted显示每个核心和排名靠前的进程的CPU利用率。
ucode_pkt_PPE0进程是模拟数据平面的软件进程,因此可以从导致CPU使用率的进程列表中忽略该进程。
9800-L将最后的5个CPU核心静态分配给数据平面。由于运行的是ucode_pkt_PPE0进程,通常只有核心7显示高利用率(并且是预期结果)。
下面是一个小型9800-CL OVA的示例,其中核心2和3专用于数据平面。
ucode_pkt_PPE0进程显示非常高的利用率,但这是正常的,并且即使在网络流量很少的情况下也是预期的。
myc9800-CL#show processes cpu platform sorted
CPU utilization for five seconds: 4%, one minute: 5%, five minutes: 6%
Core 0: CPU utilization for five seconds: 2%, one minute: 2%, five minutes: 1%
Core 1: CPU utilization for five seconds: 2%, one minute: 2%, five minutes: 2%
Core 2: CPU utilization for five seconds: 2%, one minute: 1%, five minutes: 2%
Core 3: CPU utilization for five seconds: 99%, one minute: 99%, five minutes: 99%
Pid PPid 5Sec 1Min 5Min Status Size Name
--------------------------------------------------------------------------------
20268 19784 99% 99% 99% S 271872 ucode_pkt_PPE0
28292 8568 1% 1% 1% S 1087088 linux_iosd-imag
19801 19314 1% 1% 1% S 250064 fman_fp_image
32539 32538 0% 0% 0% S 1692 inet_gethost
32538 31946 0% 0% 0% S 364 inet_gethost
32507 29493 0% 0% 0% S 5592 confd-startup.s
如何验证数据平面利用率
如果数据平面CPU使用率始终很高,您可能会想知道如何验证Catalyst 9800是否网络流量过多。有特定构件和CLI命令可用于此功能。
在Web UI中,转至Monitor -> System -> CPU utilization。在右侧,您有Datapath利用率。
最重要的度量是百分比形式的PP。在本例中,数据路径空闲率为99.56%,因此从逻辑上讲,它有0.44%的流量会忙于处理网络数据包,这是非常低的。
PP代表Packet Processed,RX表示接收流量所用的时间和TM传输流量所用的时间。Idle基本上与PP(100% - PP)相反,PP是数据平面等待执行某件事的时间。
数据路径利用率
此控制面板的等效CLI命令为:
show platform hardware chassis active qfp datapath utilization sum