ホームページ  >  記事  >  バックエンド開発  >  大規模な同時実行と高負荷での PHP-FPM パラメータの調整

大規模な同時実行と高負荷での PHP-FPM パラメータの調整

WBOY
WBOYオリジナル
2016-06-23 13:25:29996ブラウズ

大規模な同時実行と高負荷下での PHP-FPM パラメータのチューニング

主に Linux での PHP パラメータのチューニング


ファイル記述子の制限を調整


# ulimit -n 1000000

# vi /etc /security/limits.conf

# ファイル記述子のシェル制限を設定します

* Soft nofile 1000000

*hard nofile 1000000

PHP コードファイルが配置されているパーティションのファイルシステムアクセス時間の更新を禁止します


# vi /etc/fstab

たとえば、PHP コードが配置されているパーティション:


/dev/sdb1 ext4errors=remount-ro 0 1

は次のように変更されました:


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

一時ファイルを tmpfs に保存


(注意点) Web サイトが大量の小さな画像のアップロードを処理する必要がある場合は、メモリ ファイル システムを使用しますtmpfs を使用して保存すると、一部の I/O オーバーヘッドが軽減されます。ただし、ユーザーが非常に大きなファイル (ビデオなど) をアップロードする場合、tmpfs の使用は適していません。 tmpfs tmpfs defaults,nosuid ,noatime 0 0


php.ini 設定チューニング


# vi php-app.ini

[PHP]

engine = On


expose_php = オフ

max_execution_time = 5

memory_limit = 256M

error_reporting = E_ALL & ~E_DEPRECATED


display_errors = Off

display_startup_errors = Off

html_error s = オフ

default_socket_time out = 5

file_uploads = オン

upload_tmp_dir = /tmp /php

upload_max_filesize = 50M


post_max_size = 50M

max_file_uploads = 20

date.timezone = 'アジア/上海'

ここで設定されている max_execution_time は 5 秒だけであることに注意してください。高速な Web アプリケーションの場合、Web アプリケーション内で長時間実行される Web リクエストは望ましくありません。Web リクエストが 5 秒以上続く場合は、通常、ページが 300 ~ 500 ミリ秒以内に応答することを意味します。


PHP-FPM 構成のチューニング

# vi php-fpm.conf [my_app]

;FastCGI/PHP-FPM は UNIX ソケットを使用します

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 %10 of .max_children

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

上記はこれらのパラメーターの概要です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。