KUSANAGI の WordPress は
本当に快速なのか? 検証してみた

【技業LOG】技術者が紹介するNTTPCのテクノロジー

2023.05.19
VPS・IaaS
平石 泰洋

ITエンジニア
平石 泰洋

取得資格:CCNP VCP-DCVソフトウェア開発技術者 テクニカルエンジニアネットワーク 情報セキュリティアドミニストレータ

技業LOG

世界中で使われるWordPress

WordPress (ワードプレス) とは、Webに公開するサイト作成を補助するオープンソースのソフトウェアで、誰でも高機能なサイトやブログ、アプリを作ることができます。 (HPによると) Web上の43%のサイトが WordPress を使っており個人ブログから大規模なニュースサイト、またコンテンツ管理システム (CMS)など様々な用途で利用されております。

紹介ページ:https://ja.wordpress.org/

超高速CMS実行環境「KUSANAGI」

超高速CMS実行環境「KUSANAGI」(以下「KUSANAGI」)は、プライム・ストラテジー社が開発・提供している高速でセキュアなWordPress が組み込まれた仮想マシンイメージです。搭載されたページキャッシュ機構により高いパフォーマンスを発揮します。

紹介ページ:https://kusanagi.tokyo/

今回は、弊社VPSサービスの環境上で一般的なセットアップ手順で構築したWordPress(以降通常版)とKUSANAGI上のWordPress(以降KUSANAGI版)とで、パフォーマンス比較を実施してみました。果たしてどのような結果が出るのでしょうか?

1. 前提条件

今回の仮想サーバのスペックは下記としました。なお、本資料の結果は弊社エンジニアによる結果であり、サービス利用者のパフォーマンスを保証するものではありません。

■ 仮想サーバのスペック (共通)

CPU / メモリ: 2 core (2.59GHz/core) / 4GB ※1
パフォーマンス試験にて参照するページ: WordPressの初期テーマ ※2

  • ※1
    ビジネス用途でのKUSANAGI環境は4GB以上のメモリを推奨しております。
  • ※2
    Twenty Twenty-Three: 約50KB

比較対象の環境は下記の通りです。WordPress は共通して最新版を利用しました。

■ 一般的なセットアップ手順で構築したWordPress(通常版)

OS: CentOS 8
主要なアプリケーション:
- PHP 7.2: (OS初期時のPHP のバージョン)
- Apache 2.4.37:
- MariaDB 10.3:

■ KUSANAGI上のWordPress(KUSANAGI版)

OS: KUSANAGI 9 (CentOS Stream8) / KUSANAGI 9 (CentOS Stream9)
- PHP 8.0: (デフォルト)
- Nginx 1.23: (同上)
- MariaDB 10.5: (同上)
それぞれキャッシュオフ/オン を切り替えて検証

2. パフォーマンス試験のツール

k6 というパフォーマンス測定ツールを利用します。今回は並列度30で60秒間負荷を掛けてみました。すると、次のような結果が出力されます。

  execution: local
     script: scripts_centos_default.js
     output: -

  scenarios: (100.00%) 1 scenario, 30 max VUs, 1m30s max duration (incl. graceful stop):
           * default: 30 looping VUs for 1m0s (gracefulStop: 30s)

...
     checks.........................: 100.00% ? 796       ? 0
     data_received..................: 42 MB   679 kB/s
     data_sent......................: 67 kB   1.1 kB/s
     http_req_blocked...............: avg=62.59μs min=2.55μs  ..
     http_req_connecting............: avg=46.21μs min=0s   ..
     http_req_duration..............: ★avg=2.29s★    min=1.31s  ..
       { expected_response:true }...: avg=2.29s ..
     http_req_failed................: 0.00%   ? 0  ..
     http_req_receiving.............: avg=34.04ms min=360.29μs ..
     http_req_sending...............: avg=34.91μs min=10.66μs  ..
     http_req_tls_handshaking.......: avg=0s      min=0s   ..
     http_req_waiting...............: avg=2.26s   min=1.31s  ..
     http_reqs......................: 796     ★12.977556/s★
     iteration_duration.............: avg=2.29s   ...
     iterations.....................: 796     12.977556/s
     vus............................: 21      min=21      max=30

上記の★が、1リクエストあたりの平均応答時間と1秒間あたりの平均処理件数となります。こちらを今回のパフォーマンス値とします。

紹介ページ:https://k6.io/

3. 通常版のパフォーマンス試験結果

前置きが長くなってしまいましたが、通常版のパフォーマンスを測定しました。

     http_req_duration..............: ★avg=2.79s★    min=1.25s  ...
       { expected_response:true }...: avg=2.79s    min=1.25s  ...
     http_req_failed................: 0.00%   ? 0         ? 659
     http_req_receiving.............: avg=119.37ms  ...
     http_req_sending...............: avg=45.25μs  ...
     http_req_tls_handshaking.......: avg=0s     ...
     http_req_waiting...............: avg=2.67s    ...
     http_reqs......................: 659     ★10.669829/s★
     iteration_duration.............: avg=2.79s    min=1.25s      ...
     iterations.....................: 659     10.669829/s
     vus............................: 27      min=27      max=30
     vus_max........................: 30      min=30      max=30

結果は次の通りです。

平均応答時間: 2.79s (= 2790ms)
平均処理件数: 10.669829/s

この値では、ビジネスレベルで利用するのは厳しいかもしれません。

4. KUSANAGI版 の キャッシュオフ時のパフォーマンス試験結果

では、KUSANAGI 版は如何でしょうか?まずは、キャッシュオフ時のパフォーマンスを測定してみました。

● KUSANAGI 9 (CentOS Stream8)

     http_req_duration..............: ★avg=540.53ms★  ...
       { expected_response:true }...: avg=540.53ms min=253.71ms  ...
     http_req_failed................: 0.00%   ? 0         ? 3338
     http_req_receiving.............: avg=397.63μs min=111.32μs ...
     http_req_sending...............: avg=33.17μs  min=5.82μs   m ...
     http_req_tls_handshaking.......: avg=0s       min=0s     ...
     http_req_waiting...............: avg=540.1ms  min=252.85ms me ...
     http_reqs......................: 3338    ★55.419678/s★
     iteration_duration.............: avg=540.74ms  ...
     iterations.....................: 3338    55.419678/s
     vus............................: 30      min=30      max=30
     vus_max........................: 30      min=30      max=30

平均応答時間: 540.53ms (通常版の約20%)
平均処理件数: 55.419678/s (通常版の約5倍)

● KUSANAGI 9 (CentOS Stream9)

     http_req_duration..............: ★avg=555.67ms★  ...
       { expected_response:true }...: avg=555.67ms  ...
     http_req_failed................: 0.00%   ? 0         ? 3245
     http_req_receiving.............: avg=400.74μs ...
     http_req_sending...............: avg=40.24μs  min=7.04μs  ...
     http_req_tls_handshaking.......: avg=0s       min=0s     ...
     http_req_waiting...............: avg=555.23ms min=83.52ms  ...
     http_reqs......................: 3245    ★53.903416/s★
     iteration_duration.............: avg=555.86ms min=86.61ms  ...
     iterations.....................: 3245    53.903416/s
     vus............................: 30      min=30      max=30
     vus_max........................: 30      min=30      max=30

平均応答時間: 555.67ms (通常版の約20%)
平均処理件数: 53.903416/s (通常版の約5倍)

なんと、キャッシュオフであっても通常版の5倍のパフォーマンス値を叩き出しました。また、補足として、CentOS Stream 8版 / CentOS Stream 9版で特に性能の変化がないことが判明しました。

5. KUSANAGI版 の キャッシュオン時のパフォーマンス試験結果

では、いよいよキャッシュオン時のパフォーマンスの測定結果です。

● KUSANAGI 9 (CentOS Stream8)

     http_req_duration..............: ★avg=5.11ms★  min=275.91μs ...
       { expected_response:true }...: avg=5.11ms  min=275.91μs ...
     http_req_failed................: 0.00%   ? 0           ? 347684
     http_req_receiving.............: avg=4.08ms  min=30.21μs  ...
     http_req_sending...............: avg=10.74μs min=2.92μs ...
     http_req_tls_handshaking.......: avg=0s      min=0s   ...
     http_req_waiting...............: avg=1.01ms  min=81.32μs ...
     http_reqs......................: 347684  ★5794.565801/s★
     iteration_duration.............: avg=5.17ms  min=358.6μs  med=4.98ms  ...
     iterations.....................: 347684  5794.565801/s
     vus............................: 30      min=30        max=30
     vus_max........................: 30      min=30        max=30

平均応答時間: 5.11ms (通常版の約0.2%)
平均処理件数: 5794.565801/s (通常版の約540倍)

● KUSANAGI 9 (CentOS Stream9)

     http_req_duration..............: ★avg=5.13ms★  min=281.95μs ...
       { expected_response:true }...: avg=5.13ms  min=281.95μs...
     http_req_failed................: 0.00%   ? 0          ? 346013
     http_req_receiving.............: avg=3.83ms  min=28.2μs  ...
     http_req_sending...............: avg=10.44μs min=2.91μs ...
     http_req_tls_handshaking.......: avg=0s      min=0s  ...
     http_req_waiting...............: avg=1.28ms  min=99.21μs ...
     http_reqs......................: 346013  ★5766.68981/s★
     iteration_duration.............: avg=5.19ms  min=325.14μs...
     iterations.....................: 346013  5766.68981/s

平均応答時間: 5.13ms (通常版の約0.2%)
平均処理件数: 5766.68981/s (通常版の約540倍)

キャッシュオンでは通常版の540倍のパフォーマンス値を叩き出しました。この値ならばビジネス用途での利用にも十分に耐えられるでしょう。

6. パフォーマンス結果のまとめ

今迄のパフォーマンス結果を纏めてみました..が、キャッシュオン時のパフォーマンスが良すぎるため他の条件での値が非常に見づらいものになってしまいます。

今回の検証により多少スペックが低くてもKUSANAGIを利用すれば高速なサイトを構築できることが判明しました。「超高速CMS」の看板に偽りなしです。この度、弊社のWebARENA IndigoPro®サービスのOSメニューに KUSANAGI を追加しましたので、WordPressのご利用を検討されている方は、是非ご利用いただきそのパフォーマンスの高さを実感してみてくださればと思います。

技業LOG

この記事で紹介しているサービスは
こちら

WebARENA IndigoPro®

高い稼働率でお客さまのビジネスを支えるクラウドサーバー

おすすめ記事

    お気軽にご相談ください