大并发高负载下的PHP-FPM参数调优

WBOY
Freigeben: 2016-06-23 13:25:29
Original
999 Leute haben es durchsucht

大并发高负载下的PHP-FPM参数调优

  主要针对PHP在Linux下的参数调优


调整文件描述符限制


# ulimit -n 1000000

# vi /etc/security/limits.conf

# Setting Shell Limits for File Descriptors

*  soft nofile 1000000

*  hard nofile 1000000

禁止PHP代码文件所在分区的文件系统访问时间更新


# vi /etc/fstab

比如PHP代码所在分区:


/dev/sdb1   ext4    errors=remount-ro  0  1

修改为:


/dev/sdb1   ext4    noatime,nodiratime,errors=remount-ro  0  1

将临时文件存储到tmpfs


(需要注意的地方)在网站有需要处理大量的小图片上传的时候,使用内存文件系统tmpfs来存储,可以减少一些I/O的开销.但是如果用户是上传非常大的文件(比如:视频)的话,就不适合使用tmpfs.


# vi /etc/fstab

tmpfs                   /tmp                    tmpfs   defaults,nosuid,noatime 0 0



php.ini配置调优


# vi php-app.ini

[PHP]

engine = On

expose_php = Off


max_execution_time = 5

memory_limit = 256M

error_reporting = E_ALL & ~E_DEPRECATED

display_errors = Off

display_startup_errors = Off

html_errors = Off

default_socket_timeout = 5


file_uploads = On

upload_tmp_dir = /tmp/php

upload_max_filesize = 50M

post_max_size = 50M

max_file_uploads = 20


date.timezone = 'Asia/Shanghai'

注意这里设置max_execution_time只有5秒.对于一个快的web应用来说,我们真的不想要web应用里有任何长时间运行的web请求,一个web请求持续超过5秒通常意味着有些东西出了问题.我们的目标是页面响应在300-500ms之内.


PHP-FPM配置调优

# vi php-fpm.conf

[my_app]

;FastCGI/PHP-FPM使用UNIX Sockets

listen = /data/my_app/tmp/php.sock

listen.backlog = 300

user = www

group = www

pm = dynamic

;估算pm.max_children = (MAX_MEMORY - 500MB) / 20MB

pm.max_children = 100

;推荐为最大的pm.max_children的%10

pm.start_servers = 10

pm.min_spare_servers = 5

pm.max_spare_servers = 15

pm.max_requests = 1000

pm.status_path = /php_status


request_terminate_timeout = 0

request_slowlog_timeout = 0

slowlog = /data/my_app/logs/slow.log

以上就是这些参数的总结 

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage