swoole多进程使用过程中,主进程内存不断变大何解?

WBOY
Lepaskan: 2023-03-02 06:14:01
asal
1903 orang telah melayarinya

目前业务需要实现一个时时分析数据流的功能,需要精确到秒级别,原本打算用swoole task实现一个任务服务,但是目前还没有对应的机器跑服务端,所以暂时决定用swoole 的多进程模型结合swoole 的timer实现,过程中遇到一个父进程,内存占用不断飙升的问题,求解?
其中代码逻辑是,在父进程中创建6个swoole_process,通过swoole_timer隔一秒钟分发任务给空闲的子进程,并标记该进程为忙碌状态,子进程处理完任务后与父进程通过管道通信,通知父进程当前进程处于空闲状态,通过父子之间的通信,起到类似"父进程维护一个子进程池"的效果,其中某个进程空闲超过一段时间或者超过一定处理任务数,父进程即可通知该进程销毁并拉起新的子进程。代码逻辑大概这样,但是遇到的问题是父进程的内存占用逐渐变大,请问swoole大神们该如何解决?是不是因为父进程维护这个类似子进程池导致的呢?请赐教

回复内容:

目前业务需要实现一个时时分析数据流的功能,需要精确到秒级别,原本打算用swoole task实现一个任务服务,但是目前还没有对应的机器跑服务端,所以暂时决定用swoole 的多进程模型结合swoole 的timer实现,过程中遇到一个父进程,内存占用不断飙升的问题,求解?
其中代码逻辑是,在父进程中创建6个swoole_process,通过swoole_timer隔一秒钟分发任务给空闲的子进程,并标记该进程为忙碌状态,子进程处理完任务后与父进程通过管道通信,通知父进程当前进程处于空闲状态,通过父子之间的通信,起到类似"父进程维护一个子进程池"的效果,其中某个进程空闲超过一段时间或者超过一定处理任务数,父进程即可通知该进程销毁并拉起新的子进程。代码逻辑大概这样,但是遇到的问题是父进程的内存占用逐渐变大,请问swoole大神们该如何解决?是不是因为父进程维护这个类似子进程池导致的呢?请赐教

父进程内存泄漏了,某些全局变量数组未即时释放内存导致的。检查你的代码。

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan