gpt4 book ai didi

concurrency - 什么是Phusion旅客PassengerMaxRequestQueueSize的最佳值

转载 作者:行者123 更新时间:2023-12-03 09:19:02 25 4
gpt4 key购买 nike

我知道这取决于设备的硬件,但是例如,如果设置了100个进程,则默认队列也是100。将PassengerMaxRequestQueueSize增加到200或300是否有意义?可能这取决于可用内存。有什么想法吗?

最好的答案将是解释该设置,并可能说明一个或两个示例,假设服务器进程请求2-3秒。

提前致谢!

最佳答案

为什么要限制排队

所有未由应用程序进程立即处理的请求都将排队。排队通常是不好的:它通常意味着您的服务器无法足够快地处理请求。

较大的队列意味着请求被丢弃的可能性较小。但这有一个缺点:在繁忙时间,队列越大,访问者在看到响应之前必须等待的时间越长。这会导致他们单击重新加载,从而使队列更长(他们的先前请求将保留在队列中;操作系统直到尝试将数据发送回访问者才知道它们已经断开连接),或者导致他们离开挫折。

因此,限制队列是一件好事。它限制了以上情况的影响。

您应该确保将请求排队的次数尽可能少。那可能意味着:

  • 使您的应用程序运行更快(如果您的工作负载受CPU限制)。
  • 升级到更快的硬件(如果您的工作量受CPU限制)。
  • 增加应用程序的并发设置(如果您的工作负载受I / O约束),例如通过增加进程或线程的数量。

  • 如果您不能阻止请求进入队列,那么接下来要做的就是保持队列较短,并在达到队列限制时显示友好的错误消息。诸如“对不起,许多人现在正在访问我们。请稍后再试。” The documentation for PassengerMaxRequestQueueSize告诉您如何执行此操作。

    队列大小的最佳值

    很难说出最佳队列大小应该是多少。一个好的经验法则是:将请求队列大小设置为一秒钟内可以处理的最大请求数。根据您的情况,您可能需要稍微调整一下内容。

    此经验法则来自预期突发流量的概念。您希望服务器上同时请求多少个?

    假设您的队列大小为100,并且无论出于何种原因,您同时收到150个请求。假设您的服务器足够快,可以在半秒内处理150个请求,那么您就知道这不是性能问题。但是,如果您的请求队列大小为100,则其中的50个请求将被丢弃,并出现“请求队列已满”错误。

    在这种情况下,您应该将队列大小设置为您认为可以安全处理而不会出现性能问题的最大并发请求数。

    关于concurrency - 什么是Phusion旅客PassengerMaxRequestQueueSize的最佳值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20402801/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com