您好,登錄后才能下訂單哦!
大并發高負載下的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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。