共计 1071 个字符,预计需要花费 3 分钟才能阅读完成。
在前面的文章中介绍过使用 w 命令或 uptime 命令来查看 Linux 系统的平均负载 (Load avaerage),那么平均负载处于什么状态算是正常呢?如果要根据平均负载来判断系统的稳定性,又该如何界定?先来看一下基础知识。
Linux 下使用 w 命令和 uptime 命令查看系统负载 http://www.linuxidc.com/Linux/2014-12/110130.htm
平均负载是指系统的运行队列的平均利用率,也可以认为是可运行进程的平均数。
一般的进程需要消耗 CPU、内存、磁盘 I /O、网络 I / O 等资源,在这种情况下,平均负载就不是单独指的 CPU 使用情况。即内存、磁盘、网络等因素也可以影响系统的平均负载值。
在单核处理器中,平均负载值为 1 或者小于 1 的时候,系统处理进程会非常轻松,即负载很低。当达到 3 的时候,就会显得很忙,达到 5 或者 8 的时候就不能很好的处理进程了(其中 5 和 8 目前还是个争议的阈值,为了保守起见,建议选择低的)。
举例说明:
比如我的服务器是两颗 CPU,每颗 CPU 有 6 个核,相当于 12 核的处理器。
如果负载小于 12,说明服务器利用率较低。
如果负载大于 12 小于 36,说明服务器利用率比较高,这个时候就应该考虑优化业务或者更换更快的 CPU。
如果负载大于 36 小于 60,甚至超过 60,则说明该服务器很危险,随时可能发生问题。
经过上面的分析,我们用以下命令获取系统的平均负载值。
# top
# uptime
# w
平均负载值部分如:load average: 0.08, 0.03, 0.00. 这些数值是指系统在最后 1 /5/15 分钟的平均负载. 那么我们判断负载过高,要以哪个值为准呢?
根据经验:我们应该把重点放在 5 /15 分钟的平均负载,因为 1 分钟的平均负载太频繁,一瞬间的高并发就会导致该值的大幅度改变。
其中 top 的第一行与 uptime 的结果相同
uptime
top
[linuxidc@linuxidc ~]# uptime
20:15:58 up 7 min, 1 user, load average: 0.00, 0.10, 0.08
其中
20:15:58 up 系统启动时间
7 min 系统在线运行时间
load average 分别记录一分钟、五分钟、十五分钟的系统平均负载
主要是判断 CPU 的使用情况,现在的 CPU 都是多核心、多线程的模式。所以最终取决于总线程数。比如我们公司的 CPU,是 2 个单元,每个单元是 4 核 8 线程。那么负载因子 16 的时候才算 100%。
查看 CPU 信息使用
cat /proc/cpuinfo
如果只想得到线程数,则
grep ‘model name’ /proc/cpuinfo | wc -l