进程pm配置:
php-fpm子进程设置不当容易造成服务器502,一般都是子程序超临界值,导致部分请求异常。
php-fpm子进程有三种模式:
static 静态模式,启动时开启固定子进程。
受影响参数:
pm.max_children 指定要创建的子进程数。
说明:此模式子进程开销固定,适用于请求量浮动不大的场合。
dynamic 动态模式,启动时开启固定最小子进程。
受影响参数:
pm.max_children 指定最大子进程数。
pm.start_servers 指定启动时开启的子进程数,默认值=min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.min_spare_servers 允许最小空闲子进程数,如果空闲子进程小于则自动创建。
pm.max_spare_servers 允许最大空闲子进程数,如果空闲子进程大于则杀掉。
说明:此模式下子进程处理完请求后并未立刻释放,方便快速处理下一个请求,合理设置空闲子程序有助于快速响应,过大的空闲子进程容易造成内存等资源浪费。此模式下进程数=空闲进程+处理进程。
ondemand 按需模式,启动时不创建子进程,按请求自动增加子进程。
受影响参数:
pm.max_children 指定最大子进程数。
pm.process_idle_timeout 指定空闲进程最多存活时间,默认值10s。
说明:此模式下子进程根据请求量自动增加,并对所有空闲子程序设置存活时间,此模式比较节省资源,但同时高并发请求时创建子程序会影响响应速度。
日志配置:
access.log 指定访问日志文件,默认不写访问日志。
slowlog 指定慢请求日志文件,默认不写日志,开启此日志方便找出系统请求过慢的代码。
request_slowlog_timeout 指定慢请求时间对比值,默认为0则无慢请求。
request_terminate_timeout 指定请求过慢杀死的时间对比值,默认为0则无过慢杀死。