w命令与服务器负载法则

w

w的结果包含服务器运行时间,当前用户及其运行的程序,以及1,5,15分钟的平均负载

[root@mio-254 ~]# w
 14:00:07 up 13 days, 17:18,  2 users,  load average: 0.08, 0.02, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/7    192.168.1.102    12:19    1:37m  0.00s  0.00s -bash
root     pts/8    192.168.1.100    14:00    0.00s  0.01s  0.00s w

简单的说,linux会每5秒统计一次当前正运行的任务数和正在等待磁盘的I/O任务,然后没1,5,15分钟计算一次平均值,这就是平均负载

如果是多CPU服务器,那么linux会先对每个CPU进行平均负载计算,然后求和

在单核时代,关于平均负载,有三条注明的经验准则

敬请关注法则(Need to Look init it):0.7

如果平均负载大于0.7,那么趁事情还没变得糟糕,赶紧查原因吧

立刻修复法则(Fix this now):1.0

要是负载已经高过1.0了,立马就扔掉其他事情先找到这个问题并修复好,否则,没准今晚你就会报警叫起来干活了

半夜3点法则,(it`s 3AM WTF?)

如果负载超过5.0,你的机器随时都可能挂掉

到了多核时代,这三个数据可以乘以CPU核心个数,注意linux计算时,并不会区分服务器上是几处理器,所有又有两条新准则

核心数=最大复杂 法则(number of cores = max load)

多核系统上,负载不要高于核心数量

什么核心都是核心(core is cores)

核心的类型并不重要,4核双线程和8核单线程同样视为8核