php-fpm优化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php-fpm优化相关的知识,希望对你有一定的参考价值。
php-fpm.conf中的优化
pm 参数配置怎样的进程管理 这里有dynamic , static , ondemand
static :固定子进程管理
dynamic :子进程数的管理依赖于pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers 这些指令;在这种模式下,至少有一个子进程
pm.max_children 同时存在的最大子进程数
pm.start_servers php-fpm启动时开始创建的子进程数
pm.min_spare_servers 最少空闲进程数,空闲进程数小于这个设定的值时,php-fpm会自动增加空闲进程
pm.max_spare_servers 最大空闲进程数,空闲进程数大于这个设定的值时,php-fpm会自动杀死多余空闲进程
ondemand :php-fpm不会创建进程数,只有当请求连接时才会创建,这个需要通过pm.max_children和pm.process_idle_timeout 这两个指令来控制;
pm.max_children 同时存在的最大子进程数
pm.process_idle_timeout 多少秒后空闲进程会被杀死
如
pm = dynamic
pm.max_children = 300
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.process_idle_timeout = 60s;
#每个子进程在重启之前应该执行的请求数
pm.max_requests = 500
#设置一个超时时间,在超过该时间后会把php的调用栈的保存到文件里
request_slowlog_timeout = 10s
#设置一个超时时时,当超过该时间后会杀死请求,这个会用于当出于一些原因php.ini中的max_execution_time这个指今设置的时间没有停止脚本时会用到目前这个指令;
request_terminate_timeout = 180s
#捕捉工作进程的标准输出及标准错误输出放入主错误文件中;如果为no 调动这些输出会重定向到/dev/null;如果开启了这个,会在一定程序上使页面延迟;
catch_workers_output = yes
#限制php-fpm会去解析的脚本扩展名,在安全考虑上尽量php-fpm去解析.php扩展的,其它的不要去解析
security.limit_extensions = .php .php3 .php4 .php5 .html .js .css .jpg .jpeg .gif .png .htm
#开启错误显示
php_flag[display_errors] = on
#开启错误日志
php_admin_flag[log_errors] = on
#指定错误日志路径
php_admin_value[error_log] = /usr/local/php/var/log/php-php-error-log.log
#限制了每个 PHP 进程的内存占用上限
php_admin_value[memory_limit] = 128M
php.ini中的优化
是否开启短标签:On打开 Off关闭
short_open_tag = On
#每个脚本最大的执行时间
max_execution_time = 180
#每个脚本能消耗的最大的内存
memory_limit = 128M
#设置显示那些错误类型
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
#是否直接显示错误
display_errors = Off
#是否开启错误日志
log_errors = On
#错误日志的最大长度
log_errors_max_len = 1024
#是否忽略重复错误,当然后忽略的错误是出现在同一个文件的同一行
ignore_repeated_errors = Off
#是否报告内存泄漏
eport_memleaks = On
#能post的最大数据
post_max_size = 8M
#设置php默认的字符集
default_charset = "UTF-8"
#是否允许文件上传
file_uploads = On
#允许上传文件大小
upload_max_filesize = 2M
#允许上传文件大最大数
max_file_uploads = 20
#是否允许把RULS作为文件来处理
allow_url_fopen = On
#基于输入输出流的socket超时设置
default_socket_timeout = 60
#文件储存的session的路径
session.save_path = "/tmp"
#是否曝光php安装信息
expose_php = Off
#设置错误日志输出的位置
error_log = /usr/local/php/var/log/php-ini-error-log.log
以上是关于php-fpm优化的主要内容,如果未能解决你的问题,请参考以下文章