linux下cat procloadavg 命令用来查看什么?

linux下cat procloadavg 命令用来查看什么?,第1张

查看文章

cat /proc/loadavg 命令详解2011年02月28日 星期一 下午 5:24/proc文件系统是一个虚拟的文件系统,不占用磁盘空间,它反映了当前 *** 作系统在内存中的运行情况,查看/proc下的文件可以聊寄到系统的运行状态。

cat /proc/loadavg是查看系统平均负载的命令,输出结果:

0.18 0.26 0.25 2/251 20320

前三个数字是1、5、15分钟内的平均进程数(有人认为是系统负荷的百分比,其实不然,有些时候可以看到200甚至更多)。

第四个值的分子是正在运行的进程数,分母是进程总数,最后一个是最近运行的进程ID号。

这里的平均负载也就是可运行的进程的平均数。

from proc(5) manual page:

/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. They are the same as the load average numbers given by uptime(1) and other programs. The fourth field consists of two numbers sepa‐ rated by a slash (/). The first of these is the number of cur‐ rently executing kernel scheduling entities (processes, threads) this will be less than or equal to the number of CPUs.

The value after the slash is the number of kernel scheduling entities that currently exist on the system. The fifth field is the PID of the process that was most recently created on the system.

php里可以通过这个文件监控服务器现在的状态。

<?php

if($fp = @fopen('/proc/loadavg', 'r')) {

list($loadaverage) = explode(' ', fread($fp, 6))

fclose($fp)

if($loadaverage >一个数) {

header("HTTP/1.0 503 Service Unavailable")

echo 'server die 囧'

一、查看系统负荷

在Linux系统中,我们一般使用 uptime命令 查看( w命令 和 top命令 也行)。(另外,它们在苹果公司的Mac电脑上也适用。)

你在终端窗口键入uptime,系统会返回一行信息。

这行信息的后半部分,显示 "load average", 它的意思是 "系统的平均负荷" ,里面有三个数字,我们可以从中判断系统负荷是大还是小。它们的意思 分别是1分钟、5分钟、15分钟内系统的平均负荷。当CPU完全空闲的时候,平均负荷为0;当CPU工作量饱和的时候,平均负荷为1。 那么很显然, "load average"的值越低,比如等于0.2或0.3,就说明电脑的工作量越小,系统负荷比较轻。

二. 判断系统负荷是否过重,必须理解load average的真正含义

首先,假设最简单的情况,你的电脑只有一个CPU,所有的运算都必须由这个CPU来完成

如果CPU每分钟最多处理100个进程,那么系统负荷0.2,意味着CPU在这1分钟里只处理20个进程;系统负荷1.0,意味着CPU在这1分钟里正好处理100个进程;系统负荷1.7,意味着除了CPU正在处理的100个进程以外,还有70个进程正排队等着CPU处理。

为了电脑顺畅运行,系统负荷最好不要超过1.0,这样就没有进程需要等待了,所有进程都能第一时间得到处理。很显然,1.0是一个关键值,超过这个值,系统就不在最佳状态了,你要动手干预了。

三、系统负荷的经验法则

1.0是系统负荷的理想值吗?

不一定,系统管理员往往会留一点余地,当这个值达到0.7,就应当引起注意了。经验法则是这样的:

当系统负荷持续大于0.7,你必须开始调查了,问题出在哪里,防止情况恶化。

当系统负荷持续大于1.0,你必须动手寻找解决办法,把这个值降下来。

当系统负荷达到5.0,就表明你的系统有很严重的问题,长时间没有响应,或者接近死机了。你不应该让系统达到这个值。

四、多处理器

如果你的电脑装了2个CPU,会发生什么情况呢?

2个CPU,意味着电脑的处理能力翻了一倍,能够同时处理的进程数量也翻了一倍。

2个CPU表明系统负荷可以达到2.0,此时每个CPU都达到100%的工作量。推广开来, n个CPU的电脑,可接受的系统负荷最大为n.0 。

五、多核处理器

芯片厂商往往在 一个CPU内部,包含多个CPU核心 ,这被称为 多核CPU 。

在系统负荷方面,多核CPU与多CPU效果类似,所以考虑系统负荷的时候,必须 考虑这台电脑有几个CPU、每个CPU有几个核心 。然后, 把系统负荷除以总的核心数,只要每个核心的负荷不超过1.0 ,就表明电脑正常运行。

怎么知道电脑有多少个CPU核心呢?

"cat /proc/cpuinfo"命令,可以查看CPU信息。"grep -c 'model name' /proc/cpuinfo"命令,直接返回CPU的总核心数。

六、最佳观察时长

最后一个问题,"load average"一共返回三个平均值----1分钟系统负荷、5分钟系统负荷,15分钟系统负荷,----应该参考哪个值?

如果只有1分钟的系统负荷大于1.0,其他两个时间段都小于1.0,这表明只是暂时现象,问题不大。

如果15分钟内,平均系统负荷大于1.0(调整CPU核心数之后),表明问题持续存在,不是暂时现象。所以,你应该主要观察"15分钟系统负荷",将它作为电脑正常运行的指标。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7559918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存