我有一个Laravel应用程序(在Forge上),它正在向SQS发送消息。然后我在Forge上有另一个框,它正在运行Supervisor,队列工作者正在使用来自SQS的消息。
现在,我只有一个守护进程工作者处理来自SQS的特定数据管。当消息出现时,它们确实需要一些时间来处理 - 在30到60秒之间。盒子上的内存使用情况很好,但CPU几乎立即激增,然后一切似乎都变慢了。
有没有办法解决这个问题?我是否应该派遣许多较小的工作(可以由多个工人消费)而不是一个不能在工人之间分配的大工作?
另外,我注意到Supervisor只使用了我的两个核心之一。有什么方法可以同时使用它们吗?
答案 0 :(得分:1)
只要提供扩展功能,就可以管理具有内存密集型应用程序,但是CPU峰值难以管理,因为它发生在一个内核中,而且如果发生这种情况,有时甚至可能会将服务器放到沙盒中。
为回答您的问题,我看到了两种可能的方法来处理您的问题。