网卡负载cpu会升高吗?
2021-11-03

网卡负载cpu会升高,CPU主要用于中断、内核以及用户进程的任务处理,优先级为中断>内核>用户进程,在学习如何分析CPU消耗状况前。

先要掌握三个重要的概念

1、上下文切换

每个CPU在同一时间只能执行一个线程,Linux采用的是抢占式调度,即为每个线程分配一定的执行时间,当到达执行时间、线程中有IO阻塞或高级优先线程要执行时,Linux将切换执行线程,在切换时要存储目前线程的执行状态,并要恢复要执行的线程状态,这个过程称为上下文切换。

对于java应用,典型的是进行文件IO操作、网络IO操作、锁等待或线程sleep时,当前线程会进入阻塞或休眠状态,从而促发上下文切换,上下文切换过多会造成内核占据较多的CPU使用,使得应用的相应速度下降。

2、运行队列

每个CPU核都维护了一个可运行的线程队列,例如一个4核的CPU,JAVA应用中启动了8个线程。且这8个线程都初一可运行的状态,那么在分配平均的情况下每个CPU中运行队列里就会有两个线程。

通常而言,系统的load主要由cpu的运行队列来决定,假定以上状况运行维持了1分钟,那么这1分钟内系统load就会是2,但用于load是个复杂的值,因此也不是绝对的,运行队列值越大,就意味着线程会要消耗长时间才能执行完。

Linux System and NetWork Performance Monitoring中建议控制在每个cpu核上的运行队列为1~3个。

3、利用率

CPU利用率为CPU在用户进程、内核、中断处理、IO等待以及空闲五个部分使用百分比,这5个值用来分析CPU消耗情况的关键指标。

Linux System and NetWork Performance Monitoring中建议用户的CPU消耗/内核的CPU消耗的比率在65%~70%/30%~35%左右。

大家都在看
本站系本网编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除内容!本站文章版权归原作者所有,内容为作者个人观点。本站只提供参考并不构成任何投资及应用建议。本站拥有对此声明的最终解释权。