#はじめに
IIS 10.0.14393 (Windows Server 2016) + PHP 7.3.4 NTS 64bit版を組み合わせて WEB サービスを立ち上げました。
過去に同様の構成を行ったときよりもどうもレスポンスが遅く、調べて改善できたのでシェアします。
#ご参考
- Using FastCGI to Host PHP Applications on IIS 7 - Microsoft Docs
(このうち PHP Process Recycling Behavior の Configure FastCGI recycling settings by using IIS Manager 項)
#チューニング
ごくごく簡単なphpページですが、チューニング前はレスポンスを得られるまで毎度 400ms かかっていましたが、チューニング後は 4ms になりました。
##手順
0. 「IISマネージャー」(管理ツール)を開きます。
- 左ペインで、サーバーのホームを選択すると、中央ペインに「FastCGI の設定」と書かれたアイコンが現れますので、これをダブルクリックして開きます。
- PHP の実行ファイルパスが書かれた項目が表示されると思いますので、これを選択し右ペイン(操作)から「編集」をクリックして開きます。
- 「インスタンスの MaxRequests」と書かれた項目に 10000 くらいを指定します。
- 「環境変数」と書かれた項目のボタンをクリックして、コレクション設定画面を開きます。
- 「追加」ボタンをクリックし、Name に "PHP_FCGI_MAX_REQUESTS"、Value に先ほどの「インスタンスの MaxRequests」で指定した値を入力します。おわったら OK ボタンで各画面を閉じます。
- PHPモジュールを使用しているサイト、またはサーバーを再起動させます。
なお、コマンドライン (appcmd.exe 利用) からも設定可能なようです。詳細は「ご参考」にあるページの情報をどうぞ。
以上です。