在UNIX网络编程中,有一种编程方式是提前fork一定数量的子进程,当客户端连接到达时就可以快速响应,现在就是想问一下,进程池中的数量如何控制,进程池中如果不够的话,再fork,但是如果空闲太多,如何减少?父进程如何监视进程池中进程的数量?
Apache prefork MPM 和 PHP-FPM 都是楼主说的进程池模型,启动时预先fork出一定量的工作进程,随着请求的增多,主进程根据配置fork出更多的工作进程,负载变低后,又释放掉一些空闲的工作进程,节省内存资源,但它们都提供又一个允许空闲工作进程数目的配置项。可以看看PHP-FPM的源代码实现:php-src/sapi/fpm/fpm/
Apache prefork MPM 和 PHP-FPM 都是楼主说的进程池模型,启动时预先fork出一定量的工作进程,随着请求的增多,主进程根据配置fork出更多的工作进程,负载变低后,又释放掉一些空闲的工作进程,节省内存资源,但它们都提供又一个允许空闲工作进程数目的配置项。可以看看PHP-FPM的源代码实现:
php-src/sapi/fpm/fpm/