关于php多进程优化

目前有一个需求,需要多进程执行。用pcntl_fork实现的。
现在已经需要fork 500多个子进程了,后续还会继续增加。
pcntl_fork子进程越多,对于子进程的回收管理出现问题的可能性会增加。
有什么其他的方法可以对这种情况做优化吗?
swoole用不了,项目框架比较老旧,且定义了go方法,和swoole的函数冲突,全局修改代价太大。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

我觉得按你的需求 swoole是比较合适的 线上单独在拉一个php版本出来就行了 而且你说的go函数也和swoole 不冲突 ,go只是一个语法糖而已,关闭php的短语就行

11个月前 评论
轻语过往 (楼主) 11个月前
讨论数量: 23

把这份业务拆出来用swoole或者是go之类的去处理不行吗? 即时交互可以走接口,异步交互可以走消息队列

11个月前 评论
轻语过往 (楼主) 11个月前
令龙家的小道 (作者) 11个月前
轻语过往 (楼主) 11个月前
令龙家的小道 (作者) 11个月前
轻语过往 (楼主) 11个月前

我觉得按你的需求 swoole是比较合适的 线上单独在拉一个php版本出来就行了 而且你说的go函数也和swoole 不冲突 ,go只是一个语法糖而已,关闭php的短语就行

11个月前 评论
轻语过往 (楼主) 11个月前

workerman, supervisor, 或者spatie/async啊

11个月前 评论
轻语过往 (楼主) 11个月前
JaguarJack

你这啥场景?fork 之后自动交给系统回收就行了。既然需要管理,master worker 模式,就用 workerman 就行了啊,他好像支持进程动态扩容的

11个月前 评论
轻语过往 (楼主) 11个月前
JaguarJack (作者) 11个月前
Jyunwaa

Swoole 用不了还有 Swow 🤣

所有 方法常量均置于 Swow 命名空间之下,不会污染原始环境(如果你的项目已经有 Swow 这个命名空间当我没说🤣)

11个月前 评论
轻语过往 (楼主) 11个月前
sanders

楼主讲一下具体需求和要部署的环境。啥配置的机器一下子要跑500个子进程?每个进程的负载大概能到多少?预计占多少内存?需不需要进程池?

11个月前 评论
轻语过往 (楼主) 11个月前
轻语过往 (楼主) 11个月前
ilvsx 11个月前

说说 对于子进程的回收管理出现问题的可能性会增加 目前遇到了什么问题?

11个月前 评论
轻语过往 (楼主) 11个月前
cclilshy (作者) 11个月前
轻语过往 (楼主) 11个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!