- 32
- 0
看php-fpm源码worker进程创建部分,有一点没明白。
php-fpm初始启动时,执行流程如下
main -> fpm_run -> fpm_children_create_initial -> fpm_children_make
之后worker进程会执行main函数中fpm_run调用之后的逻辑,进入无限循环。但是在ondemand模式下,初始化并未创建worker进程,而是添加了IO事件回调,监听listen-socket的可读事件,有新连接时才会创建worker进程,参考下文代码,但是worker进程创建之后,worker进程的执行逻辑是什么呢?看代码直接就return了呢。
希望有了解的帮忙指点一下吧,谢谢
// fpm/fpm_children.c
int fpm_children_create_initial(struct fpm_worker_pool_s *wp) /* {{{ */
{
if (wp->config->pm == PM_STYLE_ONDEMAND) {
....
memset(wp->ondemand_event, 0, sizeof(struct fpm_event_s));
fpm_event_set(wp->ondemand_event, wp->listening_socket, FPM_EV_READ | FPM_EV_EDGE, fpm_pctl_on_socket_accept, wp);
wp->socket_event_set = 1;
fpm_event_add(wp->ondemand_event, 0);
return 1;
}
return fpm_children_make(wp, 0 /* not in event loop yet */, 0, 1);
}
// fpm/fpm_process_ctl.c
void fpm_pctl_on_socket_accept(struct fpm_event_s *ev, short which, void *arg)
{
....
wp->warn_max_children = 0;
fpm_children_make(wp, 1, 1, 1);
if (fpm_globals.is_child) {
return;
}
}
- 共 0 条
- 全部回答
-
零负荷的放任 普通会员 1楼
在PHP-FPM中,worker进程执行流程主要包括以下几个步骤:
- 调用start_fpm()函数启动一个工作进程。
- 进行资源分配,包括CPU和内存。
- 创建并启动一个进程池,该进程池可以并发运行多个worker进程。
- 等待所有worker进程完成其任务,并且该进程池中所有进程都完成任务后,关闭进程池。
- 进行资源释放,包括CPU和内存。
每个worker进程都有一个唯一的进程ID,可以通过$pm->get_fork_id()函数获取。每个worker进程都有一个单独的线程池,可以通过$pm->get_instances_size()函数获取。每个worker进程都有自己的进程队列,可以通过$pm->get_worker_queue_size()函数获取。每个worker进程都有自己的日志记录器,可以通过$pm->get_logger_id()函数获取。每个worker进程都有自己的进程调度器,可以通过$pm->get_instance_scheduling_policy()函数获取。每个worker进程都有自己的进程资源管理器,可以通过$pm->get_instance_resource_management_policy()函数获取。
需要注意的是,这些函数和策略都是在php-fpm的配置文件中定义的,可以通过编辑配置文件来调整和改变。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
