gpt4 book ai didi

perl - Starman 的最佳 --max-requests 设置是什么?

转载 作者:行者123 更新时间:2023-12-04 12:51:09 24 4
gpt4 key购买 nike

我正在使用 Starman (v0.4014) 和 ngynx 作为前端代理运行 Dancer (v1.3202) 应用程序。我注意到我的负载均衡器每隔几个小时就会出现一个巨大的延迟峰值,我想知道是不是工作人员达到了他们的请求限制并重新启动。延迟从平均 30 毫秒增加到 1000 毫秒或更多。我检查了 MongoDB,没有长时间运行的查询。 --max-requests 对工作人员实际上做了什么,当工作人员达到此限制时会发生什么?

最佳答案

--max-requests有什么用设置做什么?

来自 starman --help :

--max-requests Number of the requests to process per one worker process. Defaults to 1000.



这意味着每个工作程序在处理了这么多请求后都会退出。然后,主进程将为每个退出的 worker 启动一个全新的 worker ,并根据 --workers 维护 worker 的数量。环境。

使用 --max-requests通常是一件好事,特别是如果您的应用程序不是唯一在盒子上运行的东西,因为 perl (臭名昭著)不会返还它使用的内存。此 回收工作进程的方式是 starman可以将内存返回给其他进程使用。如果您的应用程序实际上泄漏了内存,这也有助于保持您的应用程序以良好的性能运行,而不是您的应用程序最终消耗所有内存并需要被操作系统杀死。
--max-requests 的最佳值是多少?环境?

您应该将其保留为默认值 1,000除非你有充分的理由改变它。如果您的应用程序是盒子上唯一运行的东西,并且您确定它没有泄漏,您可以尝试使用更高的值来减少回收 worker 的频率。如果您知道您的应用程序存在漏洞,您可能希望使用较低的值来更频繁地回收 worker 。但是,通常此设置实际上对性能的影响很小。

也就是说,如果您的工作人员将内容缓存在内存中,回收工作人员可能会对虚假的缓慢请求负责,因为新工作人员需要花一些时间重建这些缓存,但可能有许多其他可能的解释。您需要进行一些分析以找出真正导致您所看到的特定缓慢的原因。

关于perl - Starman 的最佳 --max-requests 设置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40312770/

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