소개
이 문서에서는 데이터 플레인과 관련된 Catalyst 9800의 높은 CPU 사용량이 예상되는 이유를 설명합니다.
사용되는 구성 요소
배경 정보
9800-CL 및 9800-L은 9800-40 및 9800-80과 달리 하드웨어 데이터 플레인 포워딩 칩이 없습니다. 따라서 CPU에서 실행되는 소프트웨어 프로세스에 의해 데이터 플레인이 에뮬레이션됩니다.
이 소프트웨어의 에뮬레이트된 데이터 플레인의 특징은 데이터 플레인 프로세스가 거의 항상 CPU 코어를 100% 사용한다는 것입니다. 네트워크 트래픽이 거의 없거나 전혀 없는 경우에도 패킷이 도착했는지 확인하기 위해 네트워크 인터페이스를 지속적으로 폴링하는 것이 유일한 작업이기 때문입니다.
증상
Catalyst 9800은 주어진 CPU 코어에서 높은 CPU 사용률을 표시할 수 있습니다. CPU 소프트웨어의 심각한 문제인지 아니면 무시할 수 있는 데이터 플레인 증상인지 확인하는 것이 매우 중요합니다.
9800 웹 UI 홈 페이지에는 각 CPU 코어의 사용률을 보여 주는 CPU 트렌드 위젯이 있습니다. 이 위젯은 CPU 코어 전용도 보여줍니다.
이 예에서는 9800-CL 중간 OVA(높은 처리량이 아님)가 구축되어 있으며, 이 OVA에는 컨트롤 플레인 코어 4개와 데이터 플레인 코어 2개가 있습니다.
이 경우 코어 4와 5의 활용도가 높으면 무시할 수 있습니다.
9800 웹 UI의 CPU 사용률 위젯
CLI에서 show platform software cpu alloc 명령은 각 CPU 코어에 할당된 역할을 표시합니다(이전 웹 UI 위젯에 표시된 것처럼).
명령 show process cpu platform sorted는 각 코어 및 상위 프로세스의 CPU 사용률을 보여줍니다.
ucode_pkt_PPE0 프로세스는 데이터 플레인을 에뮬레이트하는 소프트웨어 프로세스이므로 CPU 활용에 기여하는 프로세스 목록에서 해당 프로세스를 무시할 수 있습니다.
9800-L은 마지막 5개의 CPU 코어를 데이터 평면에 정적으로 할당합니다. 일반적으로 코어 7에서만 실행되는 ucode_pkt_PPE0 프로세스로 인해 높은 사용률(및 예상되는 사용률)을 보여줍니다.
다음은 코어 2와 3이 데이터 플레인 전용인 9800-CL OVA의 작은 예입니다.
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 명령이 있습니다.
웹 UI에서 Monitor(모니터)->System(시스템)->CPU utilization(CPU 사용률)으로 이동합니다. 오른쪽에는 Datapath 사용률이 있습니다.
가장 중요한 메트릭은 백분율 형태의 PP입니다. 이 예에서 데이터 경로는 99.56% 유휴 상태이므로 네트워크 패킷 처리로 인해 논리적으로 0.44% 사용 중이므로 매우 낮습니다.
PP는 Packet Processed의 약어이며, RX는 트래픽 수신에 소요된 시간 및 TM이 트래픽을 전송하는 데 소요된 시간을 나타냅니다. 유휴 시간은 기본적으로 PP(100% - PP)의 반대이며, 이는 데이터 플레인이 어떤 작업을 위해 기다리는 시간입니다.
데이터 경로 사용률
이 대시보드의 CLI 명령은 다음과 같습니다.
show platform hardware chassis active qfp datapath utilization sum