1. HOME
  2. 開発・ブログ運営
  3. Docker
  4. WEB サーバーを Apache 2 コンテナから Nginx + PHP-FPM コンテナに変更しました
2016年07月08日
オライリーの Docker 本(Docker Up & ...
2016年05月26日
エックスサーバーから さくらVPS + Docker に引っ越 ...
2016年07月06日
Jenkins コンテナの初期設定を自動化してみる
2016年07月08日
Docker 便利コマンドあれこれ
2016年07月09日
MySQL, WordPress, phpMyAdmin コン ...
2016年07月31日
Docker 公式イメージで立ち上げた PHP-FPM コンテ ...

WEB サーバーを Apache 2 コンテナから Nginx + PHP-FPM コンテナに変更しました

WEB サーバーを変更してみました。Docker 運用なのでコンテナを入れ替えるだけでサクッと変更完了です。

このブログでは、以前のエックスサーバー時代も、先日さくら VPS + Docker 環境に引っ越してから Apache 2 で稼働していましたが、先週、Nginx + PHP-FPM に変更しました。

Docker 運用しているので、コンテナを差し替え(&追加)しただけで若干のトラブルがありましたが無事に移行完了しました。

PHP のバージョンは 5.6 のまま。
データベースもこれまで通り MariaDB です。


Nginx + PHP-FPM にしてみた結果

処理速度(ページ表示速度)

アクセス時のページ表示時間は明らかに短くなりました。 Apache 2 の場合は、ページがロードされるまでの時間が、キャッシュがヒットしない場合(初回アクセス時)で、おおよそ 3秒強。キャッシュがヒットした場合(2回目以降のアクセス)で、2.5 秒前後でした。

Nginx + PHP-FPM では、キャッシュがヒットした場合、おおよそ 3秒弱。キャッシュがヒットした場合、2秒前後となりました。

キャッシュがヒットした場合、しない場合それぞれで 0.5秒ほど短縮されたようです。

関連記事:WordPress が稼働する Apache2 コンテナと Nginx + PHP-FPM コンテナを Apache Bench で比較してみた


メモリ消費

Apache コンテナ はおおよそ 70 MB 弱のメモリを消費していました。

Nginx + PHP-FPM に変更したことで、Nginx コンテナと PHP-FPM コンテナの 2つのコンテナとなり、コンテナ数が 1つ増えましたが、Nginx コンテナが 約 3.5 MB のメモリ消費、PHP-FPM コンテナが約 65 MB のメモリ消費なので、合わせて約 68.5 MB のメモリ消費となりました。

関連記事:Docker コンテナが消費しているリソース(CPU とか メモリとか)を確認するコマンド

ということでコンテナ数は 1つ増えましたがメモリ消費量はほとんど変化はありませんでした。

ただ、ここ数日のポケモン GO 需要(およそ 10,000PV/日 弱)により PHP-FPM の子プロセスが 1つ追加で立ち上がり(合計3つ)プラス 30MB 程度増加。

ちなみに PHP-FPM の設定自体はデフォルトのまま。主な内容はこんな感じです。

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 2
pm.max_requests = 0

まとめ

Apache 2 から Nginx + PHP-FPM に変更したことにより、ページの表示速度は速くなりましたが、アクセス増加に伴いメモリ消費が増えました。

サーバーがさくら VPS の最安プラン(メモリが 512 MB)なのですでにスワップが発生しています。PHP-FPM の設定を調整することでどこまで改善できるのでしょうか。

というか、そもそもプラン変更が必要なんでしょうけど。。

でわでわ。








この記事にコメントする





Copyright © 2012 - 2014 MacBook Air とWordPressでこうなった All rights reserved
Powered by WordPress.