查看安全CPU单核使用率
问题描述
现场业务出现异常,故障现象包括但不限于卡顿、丢包、业务不通等,伴随以下情况:
(1)通过命令查看设备各转发核使用情况,发现单个或多个转发核使用率明显高于其他转发核:
display process cpu chassis x slot y cpu 1 | include kdrv
(x为框号,y为业务板所在槽位号,非堆叠模式下则没有chassis x,中低端设备没有cpu 1)
[H3C]display process cpu chassis 1 slot 6 cpu 1 | include kdrv
487 0.3% 0.2% 0.2% [kdrvdp0]
488 0.2% 0.3% 0.3% [kdrvdp1]
489 0.3% 0.2% 0.3% [kdrvdp2]
490 0.3% 0.2% 0.3% [kdrvdp3]
491 2.0% 1.9% 2.0% [kdrvdp4]
……
533 0.3% 0.2% 0.3% [kdrvdp46]
534 0.3% 0.3% 0.2% [kdrvdp47]
根据显示的结果,明显看出kdrvdp4的使用率高于其他转发核使用率,且接近打满状态(以48核设备为例:100%/48=2.08%)。
(2)日志当中出现如下告警,说明业务板某个转发核利用率高,不同分支版本日志可能会有细微差异:
%Nov 29 13:09:00:947 2021 H3C DIAG/1/CORE_EXCEED_THRESHOLD: -Chassis=2-Slot=4.1; Usage threshold CPU 1 core 4 exceeded on 95%.
%Nov 29 13:09:00:947 2021 H3C DIAG/1/CORE_EXCEED_THRESHOLD: -Chassis=2-Slot=4.1; Usage of CPU 1 core 38 exceeded the threshold (95%).
(3)日志当中出现如下告警,说明设备硬件buffer被占满:
%Nov 29 13:38:33:127 2021 H3C DRV/2/CPU_AURA: -Chassis=1-Slot=2.1; Chassis 1 Slot 6 CPU 1: The data buffer of aura 0x6 is full.
原因分析
报文在上送CPU处理之前会存入硬件buffer中,CPU从buffer中读取数据进行处理。
现场因故出现单核打满情况,CPU无法及时从buffer中获取数据,使得数据在buffer中积压,其他业务转发核也无法从buffer中读写数据进行转发处理,从而导致整体业务受影响。
查看单核工作性能利用率
计算公式:(1/核数)* 100% = 单核最高使用率
[F1090]dis process cpu slot 1
(1/24)*100%=4.1%
设备的CPU工作的时候分为上述的24个核,所有核承载CPU 100%,所以单核工作性能约4.16%。图中单核达到4.1%左右,存在多个单核被打满的情况