php-fpm サービスがハングする

WBOY
リリース: 2016-06-20 12:32:35
オリジナル
1767 人が閲覧しました

私は今日リンクを送信しました。おそらく同時にオンラインにアクセスしている人が多かったので、Web サイトに戻って php-fpm エラー ログを開きました。 php-fpm サービスがダウンしているというレポートは次のとおりです。 エラー:

[04-Apr-2016 15:38:04] NOTICE: systemdmonitorintervalsetto 10000ms[05-Apr-2016 19:03:08] WARNING: [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers), spawning 8 children, thereare 0 idle, and 29 totalchildren[05-Apr-2016 19:03:09] WARNING: [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers), spawning 16 children, thereare 0 idle, and 34 totalchildren[05-Apr-2016 19:03:11] WARNING: [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers), spawning 32 children, thereare 0 idle, and 39 totalchildren[05-Apr-2016 19:03:12] WARNING: [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers), spawning 32 children, thereare 0 idle, and 44 totalchildren[05-Apr-2016 19:03:13] WARNING: [poolwww] seemsbusy (youmayneedto increasepm.start_servers, or pm.min/max_spare_servers), spawning 32 children, thereare 0 idle, and 49 totalchildren[05-Apr-2016 19:03:14] WARNING: [poolwww] serverreachedpm.max_children setting (50), considerraisingit
ログイン後にコピー

エラー プロンプトは、pm.start_servers の数を増やして php-fpm 構成を開くことを提案します。

pm.max_children = 50 ; Thenumberofchild processescreatedonstartup.; Note: Usedonlywhenpmis setto 'dynamic'; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2pm.start_servers = 15 ; Thedesiredminimumnumberofidleserverprocesses.; Note: Usedonlywhenpmis setto 'dynamic'; Note: Mandatorywhenpmis setto 'dynamic'pm.min_spare_servers = 5 ; Thedesiredmaximumnumberofidleserverprocesses.; Note: Usedonlywhenpmis setto 'dynamic'; Note: Mandatorywhenpmis setto 'dynamic'pm.max_spare_servers = 35
ログイン後にコピー

ここでは、前に pm.start_servers を 5 に設定しました。設定ファイルには、start_servers の値のデフォルトが max_spare_servers-min_spare_servers の半分であることも記載されています。 (追記: 具体的な値はサーバー構成とストレステストによって異なります)

Web サイトサーバーは Alibaba Cloud 1G 帯域幅、1G メモリ、1 コア CPU 構成です。データベースと Redis を 1 台にインストールすることが重要です。さまざまなサービス。

php-fpm のいくつかの重要なパラメータの説明

pm.max_children = 24
ログイン後にコピー

静的モードで作成される子プロセスの数、または静的モードで許可される php-fpm 子の最大数動的モードで同時実行 プロセス数

pm.start_servers = 16
ログイン後にコピー

動的モードで開始する php-fpm プロセスの数

pm.min_spare_servers = 12
ログイン後にコピー

最小サーバーが動的モードでアイドル状態のときの php-fpm プロセスの数

pm.max_spare_servers = 24
ログイン後にコピー

サーバーが動的モードでアイドル状態の場合の php-fpm プロセスの最大数

概要

一般に、php-fpm プロセスは約 20 ~ 30m のメモリを占有します。これは 30m として計算されます。 php-fpm を単独で実行する場合、動的開始値は物理メモリの Mem/30M に設定できます。Nginx と MySQL は通常同じマシン上にあるため、半分、つまり php-fpm プロセスの数がそれらのために予約されます。は $Mem/2/30 です。

調整された値は次のとおりです:

pm = dynamicpm.max_children = 50pm.start_servers = 15pm.min_spare_servers = 10pm.max_spare_servers = 40
ログイン後にコピー

php-fpm サービスを再起動します: service php70-php-fpm reload、引き続き使用します。 top コマンド メモリ使用量を見ると、十数個の php-fpm が起動していることがわかりました。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート