私は今日リンクを送信しました。おそらく同時にオンラインにアクセスしている人が多かったので、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 台にインストールすることが重要です。さまざまなサービス。
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 が起動していることがわかりました。