PHP-FPMとNGINX UnitでWordPressを動かした際の性能比較

そもそも今回の検討を始めたのはWordpressを動かす環境の移行の話だったので、以前読んだ記事通り8倍もの性能差が出るのか、実際にWordpressをインストールして性能を比較してみることにしました。
ざっくり下記のような条件でJMeterで負荷をかけて処理時間とエラー数を測定しています。

  • dockerはちょうど手元にあったRaspberry pi 4B メモリ2GB。
  • PHP-FPMの公式dockerイメージに入っているPHPのバージョンとNGINX Unitのdockerイメージのバージョンを比較するとNGINX側が少し古かったので、PHP-FPMの方は最新では無くNGINX Unitと同じバージョンのイメージを使用。
  • WordPressを動かすための最低限の設定しかしておらず、各種パラメータの調整やキャッシュ設定などのチューニングは一切やっていない初期状態。
  • 表示させているのはWordpressインストール時に作成されるサンプルページ。
  • 負荷はまずウォームアップとして10秒に1回のアクセスを1分間実施。
    その後1分間時間を空けた後に本測定として1分間の負荷がけを実施。
  • 本測定でのアクセス数は秒間1アクセス、5アクセス、10アクセスの3パターンで実施。

測定結果は下記の通りです。平均値等の単位はミリ秒です。

テストケースサンプル数平均値中央値最小値最大値エラー率
秒間1アクセスPHP-FPM6067765264517400%
NGINX Unit72770069414990%
秒間5アクセスPHP-FPM3005080478279495410%
NGINX Unit484406001114916004160.67%
秒間10アクセスPHP-FPM600372293934217356002121.17%
NGINX Unit562926001178666102685.5%

正直な話8倍性能が良いどころか悲惨な結果になっています。負荷が低い間は誤差といっていいようなレベルの差しか出ていないようですが、ちょっと負荷が高まってくるとNGINX Unit側が先に限界に達するようで、特に秒間5アクセスでは極端に差が出ていてPHP-FPMではエラー0に対してNGNIX Unit側は60.67%もエラーになってしまっている状態です。

いくら何でもこれは性能が低すぎる気がします。後で同じ負荷をかけながらtopコマンドの出力内容を見ているとMariaDBではなくNGINX Unitが特に重いようでした。何がボトルネックになっているのかはわかりませんが、何か性能を落としている原因がありそうです。

これについてはもうちょっと調査してみようと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.