• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 4年前 (2022-01-23) 34次浏览 已收录 0个评论

大并发高负载下的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的开销.但是如果用户是上传非常大的文件(比如:视频本文来源[email protected]搞@^&代*@码)网9搞代gaodaima码)的话,就不适合使用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

以上就是这些参数的总结


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:大并发高负载下的PHP-FPM参数调优

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址