加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 18:23:05 所属栏目:Linux 来源:网络整理
导读:众所周知,在单个处理器上加载1.00意味着负载为100%.类似地,四核上的4.00负载将是100%. 我该如何解释4核8线程处理器的负载?我何时达到CPU的最大容量?在4.00或8.00? 解决方法 不确定,但主要是在1.00 * n_cpu. 负载意味着:如果单CPU系统上有多个进程,它们
众所周知,在单个处理器上加载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会使其超线程对速度变慢.但是这发生在正常任务调度处理的更深层上,尽管它可以(并且应该)影响调度程序的流程移动决策.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读