gpt4 book ai didi

linux - 防止 Gearman 耗尽系统内存

转载 作者:太空宇宙 更新时间:2023-11-04 11:30:38 25 4
gpt4 key购买 nike

我目前正在考虑用 Gearman 替换我们的家用酿造批处理处理器。它运行的报告最多可能占用数百兆内存 (PHP)。因此,如果运行过多此类报告,服务器将锁定。我必须添加逻辑以防止控制进程在内存不足时产生许多工作人员并使我们的服务器过载并让它崩溃。

如果我切换到 Gearman,是否有某种类型的逻辑可以在系统内存不足时阻止额外的 worker?我看到了一个限制 worker 的选项,但这并不能直接解决问题。此外,如果一个系统不堪重负,它是否足够智能来平衡系统之间的工作负载?

其他人有什么建议?当条件合适时,我是否可以将自己的支票插入 Gearman 以产生 worker ?或者还有哪些解决方案?

在 LAMP 堆栈上开发,我对 Gearman 不是很熟悉,所以在需要的地方进行指责。

最佳答案

限制工作人员数量是可行的方法 - 如果您希望报告使用 3-400 MB 内存,请将工作人员数量限制在 400MB 左右。

如果您的内存使用率低于预期,您将无法扩展 Gearman 本身来派生工作人员,但您可以创建一个包装器来处理您的工作人员并为您完成。在你走那条路之前,看看扩展 GearmanManager来处理此类问题。然而,我的建议是顺其自然,而不是在你对你期望的负载类型有一些经验后调整工作人员的数量(包括报告请求的速度、报告内存的大小)明智的,以及您需要多快响应请求报告的用户)。

Gearman 会自动负载平衡到响应最快的服务器 - 当任务到达 gearmand 时,它会轮询所有可用的工作人员并告诉他们新任务已经到达,第一个响应的客户端将获得任务。这意味着如果服务器有负载,它对请求的响应会变慢,并且任务通常会在具有更多可用处理能力的服务器上结束(忽略网络延迟的差异)。这也将自动处理不同大小的服务器。

关于linux - 防止 Gearman 耗尽系统内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11585694/

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