我知道这取决于设备的硬件,但是例如,如果设置了100个进程,则默认队列也是100。将PassengerMaxRequestQueueSize增加到200或300是否有意义?可能这取决于可用内存。有什么想法吗?
最好的答案将是解释设置,并可能假设一个或两个示例,假设服务器进程请求2-3秒。
提前致谢!
所有未由应用程序进程立即处理的请求都将排队。排队通常是不好的:它通常意味着您的服务器无法足够快地处理请求。
较大的队列意味着请求被丢弃的可能性较小。但这有一个缺点:在繁忙时间,队列越大,访问者在看到响应之前必须等待的时间越长。这会导致他们单击重新加载,使队列更长(它们的先前请求将保留在队列中;操作系统直到尝试将数据发送回访问者才知道它们已断开连接),或导致他们离开挫折。
因此,对队列进行限制是一件好事。它限制了以上情况的影响。
您应确保将请求排队的次数尽可能少。那可能意味着:
如果您不能阻止请求进入队列,那么接下来要做的就是保持队列较短,并在达到队列限制时显示友好的错误消息。诸如“对不起,许多人现在正在访问我们。请稍后再试。” PassengerMaxRequestQueueSize的文档告诉您如何执行此操作。
很难说出最佳队列大小应该是多少。一个好的经验法则是:将请求队列大小设置为一秒钟内可以处理的最大请求数。根据您的情况,您可能需要稍微调整一下内容。
这个经验法则来自预期的突发流量的概念。您希望服务器上有多少个并发请求?
假设您的队列大小是100,而不管是什么原因,你收到150个请求在同一时间。假设您的服务器足够快,可以在半秒内处理150个请求,那么您就知道这不是性能问题。但是,如果您的请求队列大小为100,则将丢弃其中50个请求,并显示“请求队列已满”错误。
在这种情况下,应将队列大小设置为您认为可以安全处理的并发请求的最大数量,而不会出现性能问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句