您好,登錄后才能下訂單哦!
大并發(fā)高負(fù)載下的PHP-FPM參數(shù)調(diào)優(yōu)
主要針對PHP在Linux下的參數(shù)調(diào)優(yōu)
調(diào)整文件描述符限制
# ulimit -n 1000000
# vi /etc/security/limits.conf
# Setting Shell Limits for File Descriptors
* soft nofile 1000000
* hard nofile 1000000
禁止PHP代碼文件所在分區(qū)的文件系統(tǒng)訪問時間更新
# vi /etc/fstab
比如PHP代碼所在分區(qū):
/dev/sdb1 ext4 errors=remount-ro 0 1
修改為:
/dev/sdb1 ext4 noatime,nodiratime,errors=remount-ro 0 1
將臨時文件存儲到tmpfs
(需要注意的地方)在網(wǎng)站有需要處理大量的小圖片上傳的時候,使用內(nèi)存文件系統(tǒng)tmpfs來存儲,可以減少一些I/O的開銷.但是如果用戶是上傳非常大的文件(比如:視頻)的話,就不適合使用tmpfs.
# vi /etc/fstab
tmpfs /tmp tmpfs defaults,nosuid,noatime 0 0
php.ini配置調(diào)優(yōu)
# 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'
注意這里設(shè)置max_execution_time只有5秒.對于一個快的web應(yīng)用來說,我們真的不想要web應(yīng)用里有任何長時間運行的web請求,一個web請求持續(xù)超過5秒通常意味著有些東西出了問題.我們的目標(biāo)是頁面響應(yīng)在300-500ms之內(nèi).
PHP-FPM配置調(diào)優(yōu)
# 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
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。