你真的懂cpu load吗?
2020-10-25 本文已影响0人
fyax
前言
关于对cpu load的理解,已经是讲烂的一个话题了。但一些文章对cpu load的描述,部分有非常明显的错误。
本着不重复造轮子的原则,在这里总结一些可靠的结论。
直接上结论
什么是cpu load?
(以下说的cpu load,都是linux cpu load)
cpu load反应了一个系统的"忙碌"程度(事实上,cpu load是个不那么准确的词。更准确的描述cpu load的词是system load :-) )
什么决定了我的cpu load?
- cpu时间
- 不被中断(Uninterruptible)的任务(通常是disk I/O。但在目前linux中,这种任务类型非常非常非常地多(比如cgroup),远不止磁盘I/O)
一个有意思的现象是,如果你的系统是I/O型的,将硬盘从SSD换成HDD,虽然你的系统变慢了,但load反而会降低哦。
那么作为常见的监控项,这个值到了什么地步我才需要关心呢?
70%:最合适
100%: 要看看应用是不是有问题了哦
200% 出问题了
500% 糟糕了
但是如果你发现,欸,我的系统常年load 10,也跑的好好的啊!
那么要想想,是不是有其它不可中断的任务让你的load很高,但是不影响系统运行。然后来找找能反映这些任务的指标吧
70%意味着。
-
对于单核心,达到了0.7
-
对于多核心,例如四核心,达到了 4 * 0.7 也即2.8
同时需要注意的是,这个值与物理核心没有关系哦
也就是说,双核双线程,等同于单核多线程 (忽略共享缓存这种实际表现上的性能问题)
对于这个指标而言, 四核八线程 等同 八核八线程