central-processing-unit – 如果CPU在SMP基础设施中突然达到100%的利用率,会发生什么?

前端之家收集整理的这篇文章主要介绍了central-processing-unit – 如果CPU在SMP基础设施中突然达到100%的利用率,会发生什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个有4个cpu的Web服务器,它间歇性地遇到了数据包丢失.最后,我们将所有应用程序和数据移动到另一个具有8个cpu的系统.我们这样做是因为我们发现没有什么是错的,除了一个平均cpu利用率持续上升到80%的现象.

在故障排除期间.我检查了/ proc / interrupts文件,并将中断修复为cpu 0.还发出了“mpstat -p ALL”以查看每个cpu的利用率.当我们检查它们时,它们都不是100%.

虽然说只有平均cpu利用率达到了100%,但是由于我们没有使用监控系统定期收集cpu利用率,因此其中任何一个都可能达到100%的峰值.相反,它只是使用命令检查.更改为具有更多cpu的新系统后,数据包丢失不再发生.我遇到以下问题:

>如果在四核系统中使用其中一个cpu
是100%,它被固定到NIC中断的中断.
内核是否会安排另一个不太忙的cpu来处理
网卡中断在哪里?
>为系统添加更多cpu后,数据包丢失得到了解决
这是因为系统拥有的cpu越多,概率就越小
NIC中断占用的cpu利用率高达100%?
>向系统添加更多cpu会导致更少的上下文切换和
因此减少系统开销?

解决方法

If the utilization of one of the cpu in the quad-core system happens to be 100%,and it is being fixed to the interrupt to the NIC interrupt. Will the kernel schedule another cpu that is not very busy to handle the NIC interrupt in its place?

通常,没有.无论如何中断都会获得优先级,因此无需移动NIC中断.

The packet loss got resolved after adding more cpu for the system,is this because the more cpus the system have,the smaller probability the utilization of the cpu occupied by the NIC interrupt goes up to 100%?

不,为什么会这么重要?顾名思义,中断会中断cpu并使其为中断服务.

Does adding more cpus to the system result in less context switch and therefore less system overhead?

它可以,但这不太可能有任何区别.更多的cpu只会减少非强制上下文切换(系统决定采用的那些,即使它不需要),并且没有人设计系统如此严重,以至于非强制上下文切换对性能产生重大影响.

仅仅根据您的说法进行推测,我怀疑在系统处于高负载的某些情况下,数据包丢失是因为网卡服务速度不够快.可能这不是因为中断没有得到足够快的服务,而是与网络流量相关的其他工作没有完全足够快地跟上数据包速率.这包括,例如,TCP协议所需的所有操作.如果这个备份,数据包将被丢弃.

猜你在找的HTML相关文章