面试的时候面试官问了我“怎么查看某一核CPU的使用情况”,当时蒙了(注意不要用top命令,再按1的方法),下来之后查了一下,也没有结果,后来看网络的时候突然发现:
可以查看这个文件
- 每一行代表每个CPU核的状态统计,从CPU0依次往下;
- 每一列代表一个CPU核的各项统计:
- 第一列代表中断处理程序收到的包总数;
- 第二列即代表由于netdev_max_backlog队列溢出而被丢弃的包总数。
- 从上面的输出可以看出,这台服务器统计中,并没有因为netdev_max_backlog导致的丢包。
【补充】
netdev_max_backlog是内核从NIC收到包后,交由协议栈(如IP、TCP)处理之前的缓冲队列。每个CPU核都有一个backlog队列,与Ring Buffer同理,当接收包的速率大于内核协议栈处理的速率时,CPU的backlog队列不断增长,当达到设定的netdev_max_backlog值时,数据包将被丢弃。