linux – 在4核8线程处理器上解释系统负载的正确方法

前端之家收集整理的这篇文章主要介绍了linux – 在4核8线程处理器上解释系统负载的正确方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
众所周知,在单个处理器上加载1.00意味着负载为100%.类似地,四核上的4.00负载将是100%.

我该如何解释4核8线程处理器的负载?我何时达到cpu的最大容量?在4.00或8.00?

解决方法

不确定,但主要是在1.00 * n_cpu.

负载意味着:如果单cpu系统上有多个进程,它们看起来是并行运行的.但事实并非如此.实际发生的事情:内核给进程提供1/100秒,然后用中断中断运行.并将下一个1/100秒提供给另一个流程.

实际上,“哪个过程应该在下一个1/100秒间隔?”这个问题将由复杂的启发式方法决定.它被命名为任务调度.

当然,被阻止的进程,例如他们正在等待他们从磁盘读取的数据,可以免于此任务调度.

什么负载说:当前有多少进程正在等待下一个1/100秒的时间帧.当然,这是一个平均值.这是因为你可以在cat / proc / loadavg中看到多个数字.

cpu系统中的情况有点复杂.有多个cpus,其时间范围可以给予多个进程.这使得任务调度有点 – 但不是太多 – 更复杂.但情况是一样的.

内核是智能的,它试图共享系统资源以获得最佳效率,并且它已经接近(有一些小优化的东西,例如,如果一个进程在相同的时间运行最长的时间会更好cpu因为缓存考虑因素,但它们并不重要).这是因为如果我们有加载8,那意味着:实际上有8个进程在等待它们的下一个时间片.如果我们有8个cpus,我们可以将这些时间片一对一地给予cpus,因此我们的系统将得到最佳使用.

如果您看到顶部,您可以看到实际运行进程的数量非常低:它们是由R标记的进程.即使在非真正的核心系统上,它通常低于5.这部分是因为从磁盘或网络等待其数据的进程也被暂停(在顶部用S标记).负载显示cpu使用情况.

还有一些工具可以测量磁盘负载,它们至少应该像cpu使用情况监控一样重要,但不知怎的,它在我们的专业系统管理员世界中并不是那么出名.

Windows工具通常将负载除以cpu的实际数量.这导致一些专业的Windows系统管理员在这种以cpu分割的意义上使用系统负载.他们没有权利,在你向他们解释之后可能会更开心.

多核cpu实际上是同一硅芯片上的多个cpu.没有区别.

在超线程cpu的情况下,有一个有趣的副作用:加载一个cpu会使其超线程对速度变慢.但是这发生在正常任务调度处理的更深层上,尽管它可以(并且应该)影响调度程序的流程移动决策.

但从我们目前的观点来看 – 决定系统负荷的因素 – 也无关紧要.

猜你在找的Linux相关文章