我正在使用这个函数getloadavg来获得关于我的服务器负载的提示。
文档显示返回的数字是the number of processes in the system run queue
在最后15分钟中,我得到了值:0.40
和0.60
,这是否意味着在最后15分钟系统运行队列中几乎没有进程?如何转换此值以获得百分比?
我想得到: load在最后15分钟:30%
发布于 2012-03-21 00:08:48
对于来自Windows和其他操作系统的人来说,Linux系统上的负载数常常令人困惑。这个数字通常看起来像一个百分比,但事实并非如此。
当您评估系统负载时,您必须知道系统拥有的CPU数量。否则这些数字毫无意义。
要用一般的术语来描述这一点,就像对我讲的那样,我首先要从一个CPU核心一次可以做一件事情的概念开始。知道了这一点,系统运行队列中的项目数就开始有意义了。系统队列是正在进行或即将启动的eiterh作业。
在一个CPU系统中,低于1的任何数字都意味着该系统正在执行其任务。它有一个CPU,平均有一个任务正在工作(或即将启动)。在一个2 CPU /双核系统中,如果系统队列中有一个项,其中一个或另一个CPU正在处理它,或者即将捕获它,您将不会有任何延迟。如果你在一个16核心服务器上,而你的平均负载上升到14,你的状态仍然不错,因为这比你的CPU核心数少,而且所有的作业都在工作或即将启动。
现在,如果您的数字是双倍您的CPU数量,那么您肯定是过载和系统落后。所有的CPU都很忙,在完成当前的工作后,它们都有其他的工作要做。
在此之后,您需要注意雪球效应,因为系统开始花费越来越多的时间来处理其资源和处理用户的需求。
希望这能帮上忙!
(哦,至于“基于1.73 0.50 7.98计算的73% 50% 698%”,对我来说也是毫无意义的。看起来他们减去1,然后乘以100,除了0.5。这完全没有意义,而且我认为它已经从链接到的页面中删除了。)
发布于 2012-03-15 11:58:36
负荷平均并不是任何东西的百分比,因此将它转换成百分比基本上是没有意义的,但是如果您坚持,那么这篇文章将讨论它。
https://stackoverflow.com/questions/9719155
复制相似问题