技業LOG
世界中で使われるWordPress
WordPress (ワードプレス) とは、Webに公開するサイト作成を補助するオープンソースのソフトウェアで、誰でも高機能なサイトやブログ、アプリを作ることができます。 (HPによると) Web上の43%のサイトが WordPress を使っており個人ブログから大規模なニュースサイト、またコンテンツ管理システム (CMS)など様々な用途で利用されております。
超高速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以上のメモリを推奨しております。
-
※2Twenty 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®
高い稼働率でお客さまのビジネスを支えるクラウドサーバー