本文实例讲述了Linux平台PHP5.4设置FPM线程数量的方法。分享给大家供大家参考,具体如下:
PHP5.4安装完毕后,FPM的默认配置文件位于/usr/local/php/etc/php-fpm.conf.default
1
2
|
> cp /usr/local/php/etc/php-fpm .conf.default /usr/local/php/etc/php-fpm .conf >vim /usr/local/php/etc/php-fpm .conf |
输入”/www”,搜索www所在的POOL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
pm = dynamic ; The number of child processes to be created when pm is set to 'static' and the ; maximum number of child processes when pm is set to 'dynamic' or 'ondemand' . ; This value sets the limit on the number of simultaneous requests that will be ; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. ; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP ; CGI. The below defaults are based on a server without much resources. Don't ; forget to tweak pm.* to fit your needs. ; Note: Used when pm is set to 'static' , 'dynamic' or 'ondemand' ; Note: This value is mandatory. pm.max_children = 5 ; The number of child processes created on startup. ; Note: Used only when pm is set to 'dynamic' ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 pm.start_servers = 2 ; The desired minimum number of idle server processes. ; Note: Used only when pm is set to 'dynamic' ; Note: Mandatory when pm is set to 'dynamic' pm.min_spare_servers = 1 ; The desired maximum number of idle server processes. ; Note: Used only when pm is set to 'dynamic' ; Note: Mandatory when pm is set to 'dynamic' pm.max_spare_servers = 3 ; The number of seconds after which an idle process will be killed. ; Note: Used only when pm is set to 'ondemand' ; Default Value: 10s ;pm.process_idle_timeout = 10s; ; The number of requests each child process should execute before respawning. ; This can be useful to work around memory leaks in 3rd party libraries. For ; endless request processing specify '0' . Equivalent to PHP_FCGI_MAX_REQUESTS. ; Default Value: 0 ;pm.max_requests = 500 |
解释一下:
pm = dynamic 如何控制子进程,选项有static和dynamic,默认采用dynamic;如果选择static,则由pm.max_children指定固定的子进程数。
如果选择dynamic,则由以下参数决定:
pm.max_children | 子进程最大数 |
pm.start_servers | 启动时的进程数 |
pm.min_spare_servers | 保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程 |
pm.max_spare_servers | 保证空闲进程数最大值,如果空闲进程大于此值,则进行清理。对于专用服务器,pm可以设置为static。 |
pm.max_requests | 设置每个子进程重生之前服务的请求数. 对于可能存在内存泄漏的第三方模块来说是非常有用的. 如果设置为 '0′ 则一直接受请求. 设置为500就可以了(默认0)。 |
将值修改为如下:
1
2
3
4
5
|
pm.max_children = 32 pm.start_servers = 16 pm.min_spare_servers = 8 pm.max_spare_servers = 32 pm.max_requests = 500 |
:wq 保存退出VIM
1
2
|
> /usr/local/php/sbin/php-fpm -t NOTICE: configuration file /usr/local/php/etc/php-fpm .conf test is successful |
测试配置文件是否正常,没问题,杀掉当前的FPM进程
1
|
> /usr/local/php/sbin/php-fpm |
启动
希望本文所述对大家PHP程序设计有所帮助。