了解sys_getloadavg();

时间:2012-03-15 11:55:09

标签: php

我正在使用此函数http://it2.php.net/sys_getloadavg来获取有关我的服务器负载的提示。

该文件说明返回的数字为the number of processes in the system run queue

在过去的15分钟内,我获得了0.400.60之间的值 这是否意味着我在最近15分钟的系统运行队列中几乎没有进程? 我该如何转换此值以获得百分比

我想得到:在最后15分钟加载:30%

2 个答案:

答案 0 :(得分:9)

Linux系统上的负载数量通常会让来自Windows和其他操作系统的人感到困惑。这个数字通常看起来像一个百分比,但它不是。

评估系统负载时,您必须知道系统具有的CPU数量。否则这些数字毫无意义。

为了按照我所教授的一般术语来描述这一点,我首先要说的是CPU核心可以一次做一件事。知道了这一点,系统运行队列中的项目数可以开始有意义。系统队列是正在处理或即将启动的作业。

在1 CPU系统中,任何低于1的数字都意味着系统正在跟上其任务。它有1个CPU,平均有1个任务正在处理(或即将启动)。在2 CPU /双核系统中,如果系统队列中有1个项目,则一个或另一个CPU正在处理它或者即将抓取它并且您不会有任何延迟。如果您使用的是16核服务器并且平均负载高达14,那么您的状态仍然不会很糟糕,因为这比您的CPU内核数量少,所有工作都在进行或即将进行开始了。

现在,如果您的数字是CPU数量的两倍,那么您肯定会超载并且系统落后了。所有的CPU都很忙,他们在完成当前工作后还有另一份工作要做。

在此之后,您需要注意滚雪球效应,因为系统开始花费越来越多的时间来处理其资源,减少处理用户需求的时间。

希望有所帮助!

(哦,至于" 73%50%698%基于1.73 0.50 7.98"这对我来说也没有意义。看起来它们减1并乘以100除外0.5。它完全没有任何意义,我认为它已经从您链接到的页面中删除了。)

答案 1 :(得分:1)

Load average不是任何的百分比,因此将其转换为百分比几乎毫无意义,但如果您坚持,那么该文章就会对此进行讨论。