php-fpm 优化
关键点:
1.开启opcache
2.composer dump-autoload -o【composer autoload自动加载性能优化】
3.db缓存开启 【'enableSchemaCache' => true,'schemaCacheDuration' => 300,】
'db' => [
'class' => 'yii\db\Connection',
'charset' => 'utf8mb4',
'tablePrefix' => 'bl_',
'dsn' => 'mysql:host=xxx;dbname=xxx',
'username' => 'root',
'password' => '123456',
'enableSchemaCache' => true,
'schemaCacheDuration' => 300,
],
4. php-fpm 配置优化【4核16G】
[global]
;pid = /usr/local/php/var/run/php-fpm.pid
error_log = /home/www-data/logs/php/php-fpm.log
log_level = warning
[www]
user = nginx
group = nginx
listen = /var/run/php-fpm.sock
listen.owner = nginx
listen.mode = 0666
listen.backlog = 8192
listen.allowed_clients = 127.0.0.1
;pm = dynamic
pm = static
pm.max_children = 512 //最大子进程,假如一个进程30M,4G内存的话最大为:4048/30 = 135,取150
pm.start_servers = 64
pm.min_spare_servers = 64
pm.max_spare_servers = 512
pm.max_requests = 0
pm.process_idle_timeout = 10s
request_terminate_timeout = 320s //表示等待320秒后,结束那些没有自动结束的php脚本,以释放占用的资源。设置320s主要是因为php的程序运行时间是300s[php.ini的max_execution_time配置],所以对于php-fpm来说,这个值应该是大于php脚本规定的运行时间的(因为php脚本的运行可能还会带有mysql服务或者其他的一些服务,这个参数是杀掉这个进程,包括着纯php脚本以及其他服务)
request_slowlog_timeout = 1
slowlog = /home/www-data/logs/php/$pool.log.slow