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优化的主要内容,如果未能解决你的问题,请参考以下文章

php-fpm 优化

php-fpm优化方法详解

PHP 性能优化之 PHP-FPM

php-fpm参数优化

PHP配置优化:php-fpm配置解读

PHP-FPM实现性能优化