来自:mjsws > 馆藏分类
配色: 字号:
由uptime引出Linux平均负载
2019-01-11 | 阅:  转:  |  分享 
  
由uptime引出Linux平均负载在unix/Linux中,我们由很多方法去查看系统负载,比如top、uptime、w、vmstat等。比
如:[root@dbawatcher~]#uptime?09:43:27up164days,18:13,?2use
rs,?loadaverage:5.11,1.62,0.57有四部分信息:系统当前时间,系统运行多长时间,多少登录的用户
,以及系统在过去的(1分钟、5分钟、15分钟)的平均负载?09:43:27???????//当前时间?up164d
ays,18:13??//系统运行时间?2users???????//正在登录的用户数最后这部分:loada
verage:5.11,1.62,0.57,则依次则是过去1分钟、5分钟、15分钟的平均负载(Loadaverag
e),负载信息也记录在文件/proc/loadavg中。[root@dbawatcher~]#cat/proc/loadav
g2.021.971.483/163132231、什么是平均负载呢?系统平均负载被定义为在特定时间间隔内运行队列中的平均进
程树。如果一个进程满足以下条件则其就会位于运行队列中:1-它没有在等待I/O操作的结果2-它没有主动进入等待状态(也就是没
有调用''wait'')3-没有被停止(例如:等待终止)Linux中,平均负载一般指在内核运行队列中被标记为运行或不可打断状态的
平均进程数。也就是平均活跃进程数,即运行加等待线程的平均数,它和CPU使用率并没有直接关系。http://www.44226.
net(1)可运行状态的进程,是指正在使用CPU或者正在等待CPU的进程,也就是用ps命令查看,处于R状态(Runn
ing或Runnable)的进程。(2)不可中断状态的进程则是正在等待I/O的进程。这些进程正在与硬件进行交互,并且交互过
程是不允许中断的,也就是ps命令中看到的D状态(UninterruptibleSleep,也称为DiskSleep)
的进程。2、平均负载和CPU核心数的关系.我们知道,在理想的状况,平均负载等于cpu的核数。所以我们首先要知道系统cpu的情况
。可以通过nproc或者lcpu查看系统的cpu信息。或者通过文件/proc/cpuinfo查询,获得系统上每个处理器信息的数字表
示方式,具体命令如下:grep‘modelname’/proc/cpuinfo|wc-l多处理器:一个计算机系统中集
成两个或多个物理CPU。多核处理器:一个物理CPU有两个或多个单独的核并行工作(也叫处理单元)。双核意味着有两个处理单元
,4核有4个处理单元…n核有n个处理单位。超线程:intel的超线程技术来提高并行运算能力,在操作系统中,单个物理CPU
表现的和两个逻辑CPU一样(实际在硬件上只有一个CPU)。[root@dbawatcher~]#uptime?10:10
:51up17days,19:28,?3users,?loadaverage:1.00,0.60,2.83在
单核系统中意味着:CPU被充分利用(100%);最近的1分钟有1个进程在运行。在最近的5分钟没有进程等待CPU时
间。CPU平均过载了183%;最近的15分钟平均有0.83个进程在等待CPU时间。在双核系统中意味着:有一个CP
U处于完全空闲状态,另一个CPU被使用;最近的1分钟没有进程等待CPU时间。http://www.f-1.cc在最近
的5分钟没有进程等待CPU时间。CPU平均过载了83%;最近的15分钟有0.83个进程等待CPU时间。3、平
均负载趋势根据uptime的得到的1分钟、5分钟、15分钟三个时间段的平均负载进行分析:如果1分钟、5分钟、15分钟的三个
值基本相同,或者相差不大,那就说明系统负载很平稳。如果1分钟的值远小于15分钟的值,就说明系统最近1分钟的负载在减少,
而过去的15分钟内系统有很大的负载。反过来,如果1分钟的值远大于15分钟的值,就说明最近1分钟的负载在增加,这种增加
有可能只是临时性的,也有可能系统负载还会持续增加下去,所以就需要警惕。如果一旦1分钟的平均负载接近或超过了CPU的个数,就
意味着系统正在发生过载的问题,这时就得分析是哪里导致出现问题。4、平均负载和CPU使用率的关系平均负载是指单位时间内,处于可运行状
态和不可中断状态的进程数。所以,它不仅包括了正在使用CPU的进程,还包括等待CPU和等待I/O的进程。而CPU使用
率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。http://www.gw638.cn如果是CPU密集型进
程,使用大量CPU会导致平均负载升高,此时这两者是一致的。如果是I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使用率不一定很高。如果有大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高。
献花(0)
+1
(本文系mjsws首藏)