在Linux系统下面,有很多的命令可以查看系统的负载情况:比如top,uptime,w,示例如下:

[wenchao.ren@l-cmsweb1.ops.cn1 ~]$ w
18:39:10 up 761 days, 13:59, 1 user, load average: 0.32, 0.45, 0.43
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
wenchao. pts/1 192.168.22.28 17:55 0.00s 0.03s 0.02s sshd: wenchao.ren [priv] [wenchao.ren@l-cmsweb1.ops.cn1 ~]$ uptime
18:39:16 up 761 days, 13:59, 1 user, load average: 0.29, 0.45, 0.43 [wenchao.ren@l-cmsweb1.ops.cn1 ~]$ top
top - 18:39:19 up 761 days, 13:59, 1 user, load average: 0.27, 0.44, 0.42
Tasks: 104 total, 1 running, 103 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.1%st
Mem: 4194304k total, 4156132k used, 38172k free, 388176k buffers
Swap: 8385920k total, 96k used, 8385824k free, 1608244k cached

我们可以看到无论上面3个命令中的哪个,输出中都包含有load average这一项,他是由3个数字组成。分别代表了:

分别表示系统在过去1分钟、5分钟、15分钟内运行进程队列中的平均进程数量

有关这个运行进程队列,没有等待IO,没有WAIT,没有KILL的进程通通都进这个队列。另外还有一个最直接的显示系统平均负载的命令:

[wenchao.ren@l-cmsweb1.ops.cn1 ~]$ cat /proc/loadavg
0.32 0.35 0.38 1/292 2683

下面对这个命令进行解释:

前3个数字表示平均进程数量,后面的1个分数,分母表示系统进程总数,分子表示正在运行的进程数;最后一个数字表示最近运行的进程ID.

对负载的理解

单核CPU - 单车道 - 数字在0.00-1.00之间正常

0.00-1.00 之间的数字表示情况非常良好,没有拥堵

1.00 表示还算正常,但有可能会恶化并造成拥堵。此时系统已经没有多余的资源了,管理员需要进行优化。

1.00-*** 表示情况不太好了,这种情况你必须进行检查了。

多核CPU - 多车道 - 数字/CPU核数 在0.00-1.00之间正常

多核CPU的话,满负荷状态的数字为 "1.00 * CPU核数",即双核CPU为2.00,四核CPU为4.00。

安全的系统平均负载

一般认为单核负载在0.7以下是安全的,超过0.7就需要进行优化了。

应该看哪一个数字,1分钟,5分钟还是15分钟?

一般认为看5分钟和15分钟的比较好,即后面2个数字。

怎样知道我的CPU是几核呢?

使用以下命令可以直接获得CPU核心数目

grep 'model name' /proc/cpuinfo | wc -l

或者使用:

grep -c 'model name' /proc/cpuinfo

结论

取得CPU核心数目N,观察后面2个数字,用数字/N,如果得到的值小于0.7即可无忧。

参考资料

Load Average的更多相关文章

  1. [转]理解Linux系统中的load average

    转自:http://heipark.iteye.com/blog/1340384 谢谢,写的非常好的文章. 一.什么是load average linux系统中的Load对当前CPU工作量的度量 (W ...

  2. linux 平均负载 load average 的含义

      load average 的含义 平均负载(load average)是指系统的运行队列的平均利用率,也可以认为是可运行进程的平均数. 以路况为例, 单核CPU.单车道 情况如下: 0.00-1. ...

  3. linux load average

    性能分析_linux服务器CPU_Load Average 理解Linux系统中的load average(图文版) 理解Load Average做好压力测试 top命令的Load average 含 ...

  4. Linux系统中的load average

    1. load average 定义 linux系统中的Load对当前CPU工作量的度量.简单的说是进程队列的长度. Load Average 就是一段时间 (1 分钟.5分钟.15分钟) 内平均 L ...

  5. 理解Linux系统中的load average(图文版)转

    一.什么是load average? linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount ...

  6. Linux 通过 load average 判断服务器负载情况

    Linux中load average判断服务器负载情况 转载文章 http://www.111cn.net/sys/linux/56003.htm 写的比较详细,推荐看看.

  7. Linux系统Load average负载详细解释

    我们知道判断一个系统的负载可以使用top,uptime等命令去查看,它分别记录了一分钟.五分钟.以及十五分钟的系统平均负载 例如我的某台服务器: $ uptime 09:50:21 up 200 da ...

  8. CPU使用率和Load Average的关系

    看了几篇博客总结的区别,自己终于明白了含义,在这里将理解总结一下: 对于定义和解释,感觉淘测试上的更容易理解: 引用如下: CPU使用率:  一段时间内CPU的使用状况,从这个指标可以看出某一段时间内 ...

  9. 什么是系统平均负载(Load average)

    一.什么是系统平均负载(Load average)? 在Linux系统中,uptime.w.top等命令都会有系统平均负载load average的输出,那么什么是系统平均负载呢? Load Aver ...

随机推荐

  1. 数据字典生成工具之旅(4):NPOI操作EXECL

    这篇会介绍NPOI读写EXECL,读写EXECL的组件很多,可以使用微软自己的COM组件EXECL.exe读写,不过这种方式限制很大. 1:客户环境必须装Office(虽然现在机子上不装Office的 ...

  2. 深入浅出ASP.NET MVC5系列之一

    前言 为避免看官乏味,本系列博客限定在较新的.Net framework 4.5.1,Asp.net MVC5,IIS 7.X集成模式. 对于微软应用层的技术.我向来不舍得花太多时间学习.但又由于公司 ...

  3. SharedPreferences保存数据

    1.使用SharedPreferences保存数据方法如下: //实例化SharedPreferences对象(第一步) SharedPreferences mySharedPreferences= ...

  4. 十天冲刺---Day9

    站立式会议 站立式会议内容总结: 燃尽图 照片 队员们都回来了,写完之后继续对alpha版本进行迭代. 希望演示的时候能拿得出来.

  5. Java--剑指offer(4)

    16.输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. a)这里首先判断两个链表中有没有空表,这个就是依据表头是否为空.然后就是比较节点值的大小,然后就是使 ...

  6. Shell脚本编程中的几个问题

    条件语句 正确的写法: if [ $1 = "-f" ] #注意这里,前后方括号和中间的内容之间必须有空格! then commands fi 错误的写法: if [$1 == & ...

  7. Java 构建器

    假如我们的一个实体类有很多的属性值,但是这些属性值又是可选的.如果我们遇到这样的是类,如何设计出方便的实体类呢? 通常解决办法一: 重叠构造器 public class User { private ...

  8. [转]领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处

    原文地址:http://www.blogjava.net/johnnylzb/archive/2010/05/27/321968.html 上一篇文章作为一个引子,说明了领域驱动设计的优势,从本篇文章 ...

  9. 【BZOJ 2038】【2009 国家集训队】小Z的袜子(hose) 分块+莫队

    $SDOI2016Day-1$临时抱佛脚学习一下莫队算法$233$ 我预感到自己省选要爆0hhh #include<cmath> #include<cstdio> #inclu ...

  10. C#查看各种变量的指针地址

    将项目的“可编译不安全代码”属性设置为true就可以了,方法如下:项目属性对话框->配置属性->生成->允许不安全代码块 namespace Pointer { struct XYZ ...