我有一台带有AMD Phenom QuadCore 3000 + 8 GB RAM的托pipe服务器
我听说第1-2服务器负载是100%的工作量。
我目前的结果是:
1.27 | 0.8 | 0.78
而在整个图中很less有超过1个服务器的负载。
你如何解释这些结果? 什么时候该考虑一个更大的服务器?
如何定义服务器负载? (通常1应该100%的工作量在我的理解!?)
服务器负载的实际计算有点复杂,但为了基本的理解,可以简化。 考虑服务器负载的最好方法是在给定的时间间隔内当前运行(或等待运行)的进程的平均数量。 传统上,服务器负载分为三分钟,五分钟和十五分钟。 可能会导致加载的原因很多 – 实际的CPU时间,等待networking缓冲区,等待磁盘等等。
在你给出的例子中,你的一分钟负载是1.27,你的五分钟负载是0.87,你的十五分钟负载是0.78,这表明计算机在最后一分钟正在做的事情比你在做的事情稍强在过去的五十五分钟。 简单。
但是,在考虑多核服务器时,情况会变得更加复杂。 当你只有一个处理器/内核时,大于1的负载意味着无论你有什么进程正在等待,由于某种原因,而不是主动运行。 这通常是一件坏事,因为这意味着无论你做什么都会花费更长的时间。 但是,如果有多个内核,则可以一次运行多个进程。 如果你有一个双核服务器,那么在你开始有进程在等待的时候,负载可以上升到两个,三个核心的平均值为三,等等。
作为一个经验法则,大多数系统应该运行在其总容量的大约一半到三分之二。 在这之下,硬件利用不足。 在此之上,它可能无法处理在大多数应用中出现的突发性活动。 但是,也有一些例外情况 – 一些系统应该保持在更加严格的负载,一些应该满负荷运行或者更高。
这些规则都不是很难,而且在现实生活中,系统负载的计算会变得相当复杂。 但希望这会给你一个大致的想法这些数字是什么意思。
系统负载是一种传统的Unix完成度量,它通过计算运行线程总和加上可运行队列的大小的一个,五个和十五分钟浮动平均值。
请注意,阻塞队列或等待队列中的进程(即已换出或正在等待I / O完成的进程) 不计入此计算,除非线程处于不间断等待状态(例如:等待磁盘I / O完成)正在参与负载。
这意味着在大多数Unix系统中,负载代表了实际CPU负载的一个很好的衡量标准,可以帮助确定在Linux上增加多lessCPU有助于提高系统性能,它代表了感知负载的一个度量,但可能会导致错误的结论如果瓶颈不是CPU而是磁盘。