每分钟有多少请求被视为“重负载”? (近似)

时间:2009-08-24 00:24:30

标签: server-load

人们经常谈论他们(优化和性能相关)的问题和关于“重负荷”的答案。

我试图在典型服务器上的常规Web应用程序(以SO及其相当小的基础架构为例)的上下文中量化这个,假设它们立即返回(为了简化)并将数据库速度等等等等。)

我正在寻找一个名义上的数字/范围,而不是'CPU最大值'或类似的地方。粗略的近似值很大(例如> 5000 / min)。谢谢!

6 个答案:

答案 0 :(得分:39)

考虑到你不想要硬件负载测量(CPU,内存,IO利用率),我认为这个问题的正确答案是重负载是指每个时间单位的请求数量达到或超过所需数量每个时间单位的最大请求数量。

所需的最大请求数量是与客户或负责整体架构的任何人一起定义的。

假设X是应用程序所需的最大负载。我认为这样的事情会接近答案:

0 < Light Load < X/2 < Regular Load < 2X/3 < High Load < X <= Heavy Load

凭空捏造一个数字的东西是它与你的应用程序没有任何关系。重负荷是完全,绝对,不可避免地与应用程序应该做的事情联系在一起。

虽然每秒200个请求是一个负载,可以让小型Web服务器忙碌(每分钟大约12000个)。

答案 1 :(得分:6)

重负载是您的系统无法处理的任何内容。 ; - )

答案 2 :(得分:5)

每秒几百个请求。

大多数服务器的开箱即用数量通常在256或更少,每秒{1}}次请求。对于ping请求,您可以将其推送到256,对于轻量级请求,可以将其推送到2000-5000。使其更高是非常困难的,并且需要在网络,硬件,操作系统,服务器应用程序和用户应用程序中一直进行更改(请参阅problem 10k)。

对于SSD来说,寻求速度+延迟大约为1-10毫秒,对于SSD而言500-1000。所以,它的0.1-1 ms IOPS。我们将100-100 000作为最高值(SSD consequential write

通常连接至少在100 000 ms内保持打开状态。从客户端到服务器的延迟很少低于1 x latency value,因此只有50-100 ms = 100 000/50 IOPS才能创建新连接。

因此,来自不同客户端的每秒2000 ping请求是普通服务器的基本上限。它可以通过使用RAM磁盘或添加更多SSD来提高IOPS数量,路由请求以减少ping,改变/修改OS以减少内核开销等等。通常它也会因为来自同一客户端的许多请求而更高(连接)和有限数量的客户。在良好的条件下,它可以达到hundreds of thousands

另一方面,更高的ping,应用程序执行时间,操作系统和硬件缺陷可以轻松地将基值降低到每秒几百个请求。此外,典型的Web服务器和应用程序通常不太适合高级优化,因此Vinko Vrsalovic对2000的建议非常现实。

答案 3 :(得分:4)

这不是一个简单的问题,可以通过简单的请求/分钟号来回答。

在电信行业,我们经常进行性能测试,并且我们模拟每秒运行大量呼叫以尝试找出限制。我们不断提高通话费率,直到服务器无法跟上。

因此,它取决于您的服务器及其可以处理的内容。这也取决于你的观点。例如,旧的386可能只处理50个请求/分钟。我称之为轻载。但是高规格的服务器可能能够处理60000个请求/分钟。这只是猜测。我不知道Apache是​​否可以做到这一点。我们的电信软件当然可以。

我认为最好从服务器角度回答这个问题。我会说当你的服务器处理能力持续超过几分钟或几十分钟的10%时,负载非常重。重负荷在15%以内。

答案 4 :(得分:2)

很难回答,因为负载不仅仅是每单位时间的请求问题。这取决于这些请求正在做什么以及它们是如何实现的。

例如,读取次数多于写入次数可能意味着负载更轻。

写入的异步处理可能意味着比等待同步处理完成更轻的负载。

一个极端是股票交易系统,每个交易日处理数十亿的交易。查看纽约证券交易所或纳斯达克的典型交易量,并用它来估算每分钟的高价值。

假设交易日的2B交易是纳斯达克的代表。市场在上午9点开盘,下午4点关闭,因此7小时* 3600秒/小时= 25200秒。这将平均提供2B次交易/ 25200秒=每秒79,365次交易 - 实际上是非常高的负载。它们显然使用了大量服务器,因此您需要使用该数字来确定每台服务器的负载应该是多少。

如果SO可以被认为是一个很好的基准,你可能会询问它在meta上的数量。

答案 5 :(得分:0)

Heavy load is whatever is greater than what was stated in the requirements. You need to know how your application will be used to determine what might constitute as heavy load. Otherwise you might end up building a Ferrari that will only be used to do the groceries. Great experience, but waste of resources.