如何理解双核四线程CPU中的这个7.x的Load average?

各种窗口管理器和美化相关
回复
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

如何理解双核四线程CPU中的这个7.x的Load average?

#1

帖子 kashu » 2016-04-16 14:54

我笔记本里的CPU长时间处于满负载后所查看到的load average情况如下(直接在内存中运行了一个非网络应用,它需要大量的CPU资源,但运行中不涉及磁盘的IO,同时剩余的物理内存非常充裕)

代码: 全选

load average: 7.53, 7.35, 7.22
所用操作系统:Xubuntu 14.04.4 LTS 64-bit

CPU是双核心四线程的

代码: 全选

kashu:~$ egrep '(processor|cpu cores)' /proc/cpuinfo | sort
cpu cores	: 2
cpu cores	: 2
cpu cores	: 2
cpu cores	: 2
processor	: 0
processor	: 1
processor	: 2
processor	: 3

我觉得这篇文章对Load Average解释得很好(同时也间接说明了为什么有人说看到load为几千的情况):
http://www.blogjava.net/cenwenchu/archi ... 11712.html

以前也看过这篇文章,但我个人感觉解释得并不太深入。引用该文章底下别人的回复:
http://www.ruanyifeng.com/blog/2011/07/ ... ained.html
曾经见到过load为几千,因为硬盘的IO卡住了。
[/size]


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
rosynirvana
帖子: 893
注册时间: 2011-02-14 17:46

Re: 如何理解双核四线程CPU中的这个7.x的Load average?

#2

帖子 rosynirvana » 2016-04-16 18:24

解释avg load为什么要这么长?
每个running或runnable状态的进程(文档用语state R)给load数值增加1,在linux中,uninterruptible sleep状态的进程(state D,通常是在等待IO)也会增加一点
至于阮一峰那篇,大概是因为他不懂
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: 如何理解双核四线程CPU中的这个7.x的Load average?

#3

帖子 kashu » 2016-04-16 18:52

@rosynirvana 我没看懂你的意思
我感觉用你那句话好像解释不通我这里的Load Average 7.x,用top工具查看时,我只有一个进程在running。
上次由 kashu 在 2016-04-17 11:36,总共编辑 1 次。


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
rosynirvana
帖子: 893
注册时间: 2011-02-14 17:46

Re: 如何理解双核四线程CPU中的这个7.x的Load average?

#4

帖子 rosynirvana » 2016-04-16 19:27

kashu 写了:@rosynirvana 我没看懂你的意思
我感觉用你那句话好像解释不通我这里的Load Average 7.x,用top工具查看时,我只有一个进程在running。

原始内容可能是阮一峰参考外文翻译过来的。在网上(国内、外)看到有很多和这篇博文基本类似的(比他发布时间更早)。
不只是running啊,请仔细读上面那句,包括running, runnable(可以运行但是在等待CPU)和uninterrupted sleep(等待资源可用或超时)三个状态的进程
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: 如何理解双核四线程CPU中的这个7.x的Load average?

#5

帖子 kashu » 2016-04-16 19:44

rosynirvana 写了: 不只是running啊,请仔细读上面那句,包括running, runnable(可以运行但是在等待CPU)和uninterrupted sleep(等待资源可用或超时)三个状态的进程

嗯,在top里面看 S 那一列,只有状态为 R 和 S 的进程,没有其它状态标志的进程。


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
rosynirvana
帖子: 893
注册时间: 2011-02-14 17:46

Re: 如何理解双核四线程CPU中的这个7.x的Load average?

#6

帖子 rosynirvana » 2016-04-16 19:56

我觉得您只看了部分进程的state
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: 如何理解双核四线程CPU中的这个7.x的Load average?

#7

帖子 kashu » 2016-04-16 20:00

rosynirvana 写了:我觉得您只看了部分进程的state

我确定用top命令是看全了的。
上次由 kashu 在 2016-04-17 11:32,总共编辑 1 次。


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
rosynirvana
帖子: 893
注册时间: 2011-02-14 17:46

Re: 如何理解双核四线程CPU中的这个7.x的Load average?

#8

帖子 rosynirvana » 2016-04-16 20:04

那我问下,您是用batch mode看的,还是sort by S Reverse order看的?
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: 如何理解双核四线程CPU中的这个7.x的Load average?

#9

帖子 kashu » 2016-04-16 20:14

rosynirvana 写了:那我问下,您是用batch mode看的,还是sort by S Reverse order看的?

我是用top直接看,然后在top里面使用「shift + >」定位到S状态这一列,并按d,输入1,让它每1秒更新一次,然后使用「Shift + r」进行正向、反向排序反复查看,并且使用Page up、Page Down、Home、End进行翻页查看,所以我确定用top是看全了的,只看到了R和S状态的进程。
我用batch模式top -b1n10 | less查看也一样。
上次由 kashu 在 2016-04-17 11:33,总共编辑 2 次。


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
rosynirvana
帖子: 893
注册时间: 2011-02-14 17:46

Re: 如何理解双核四线程CPU中的这个7.x的Load average?

#10

帖子 rosynirvana » 2016-04-16 20:21

然后您看了多长时间?自始至终上面的running只有1?
始终是1 running一般只会出现在闲置的linux vps上,desktop linux几乎是不可能的
另外您把那个很吃CPU的程序开起来了吗
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: 如何理解双核四线程CPU中的这个7.x的Load average?

#11

帖子 kashu » 2016-04-16 20:30

rosynirvana 写了:然后您看了多长时间?自始至终上面的running只有1?
始终是1 running一般只会出现在闲置的linux vps上,desktop linux几乎是不可能的
另外您把那个很吃CPU的程序开起来了吗


我开了一个很吃CPU的程序,看着top几分钟,基本只有一个top是R的状态,有时出来的状态为R的但并不是吃CPU的那个程序,是别的(下图是当我以S这一列排序时查看到的)
(下图是当我以%CPU这一列排序时查看到的)
(下图是当我以S这一列排序时查看到的)

但我觉得rosynirvana您对Load average的这种计算是不对的。
上次由 kashu 在 2016-04-17 11:34,总共编辑 3 次。


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
rosynirvana
帖子: 893
注册时间: 2011-02-14 17:46

Re: 如何理解双核四线程CPU中的这个7.x的Load average?

#12

帖子 rosynirvana » 2016-04-16 22:40

这可不是我对Load average的计算,如果您需要原文
man proc
/proc/loadavg
The first three fields in this file are load average figures
giving the number of jobs in the run queue (state R) or waiting
for disk I/O (state D) averaged over 1, 5, and 15 minutes.
这问题真的很简单,您在avg load 7的时候没看top中显示的数据,那也无法验证那段时间running process大概有多少了
但您刚才实验了一段时间的top,大概知道那段时间内有几个running process,为什么不看看这时候的avg load是多少呢,和简单观察到的avg load是否一致呢
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位

Re: 如何理解双核四线程CPU中的这个7.x的Load average?

#13

帖子 kashu » 2016-04-17 1:02

rosynirvana 写了:The first three fields in this file are load average figures giving the number of jobs in the run queue (state R) or waiting for disk I/O (state D) averaged over 1, 5, and 15 minutes.

谢谢,我看到这句话了。

这一句话顶了网上好多关于load average的文章。我觉得这句话最具有可操作性,根据这句话在系统里能看到一些实在的东西。
1 (1).png
[/size]


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
回复