[WordPress] GCPの無料サーバー(GCE)でKUSANAGIサーバーとKUSANAGI Runs on Dockerの速度を比べる
「WordPressは重い」というイメージを覆したKUSANAGI。どうせなら、無料サーバーで使えないかなぁと思っていたところ、Google Cloud Platform(以下GCP)でも使えるDockerイメージを見つけたので速度比較してみました。
更新日: 2019.12.12公開日: 2017.8.24
テスト条件
大前提として
長期運用を前提として、GCPのAlways Free(いつまでも無料)枠での運用を想定しているため、使うサーバーはGCPの中でも最弱のf1-micro(1vCPU、0.6GBメモリ)としています。
f1-microは、LINUXサーバーのベンチマークで知られるUNIXBENCHのスコアが300台と、劇遅サーバーです。(さくらVPS 1GBやConoha VPS 1GBなどは、UNIXBENCHは2000-2500ほど)
一方、公式ページ・KUSANAGI for GCPにも記載されている通り、KUSANAGIが推奨する環境はメモリ4GB以上のサーバーです。
また、KUSANAGIは本来はキャッシュが魅力な仮想イメージなのでキャッシュを使いたいところですが、キャッシュをすると、テストページ1枚の場合サーバーへの負荷のかかり具合がわかりづらいので、今回はキャッシュオフにしました。
ということで、そもそも無茶な環境でのテストなのでその点をご理解ください。
テスト条件
- どちらもサーバーはGCPで無料で使えるf1-micro(us-central)
- 負荷テストには、loadimpact.comを利用する
- KUSANAGIのBCACHE、FCACHEは切る
- 負荷テストはデフォルトの「Hello World」記事
- プラグインなどを入れていないプレーンな状態のWordPress
なお、DBがKUSANAGIサーバーのほうはMYSQLで、KUSANAGI Runs on DockerのほうはMariaDBという違いがあります。
KUSANAGIサーバー on GCP 負荷テスト結果
まずは、KUSANAGIイメージからセットアップしたサーバーです。
ロード時間
プラグインなどを入れるとさらに重くなるはずなので、これは実用的ではなさそうです。
CPU使用率
わかりずらいんですが、青いポインターがおいてある「負荷28%」あたりが負荷テスト中の値です。そこまでCPU負荷は高くないですね。
CPU負荷が高くないとなると、MYSQLあたりでディスクスピードがネックになっているのかもしれません。
また、チューニング的なことは何もせず、KUSANAGI公式チュートリアルに沿って進めただけなので、チューニングをすればもっと速度がでる可能性は十分にあります。
KUSANAGI Runs on Docker on GCP 負荷テスト結果
さて、続いてKUSANAGI Runs on Docker。こちらは、ベースイメージにGoogleが作っているコンテナ運用イメージ「Container-Optimized OS from Google」を使いました。
KUSANAGIのコンテナは、KUSANAGI Runs on Docker公式のdocker-compose.ymlを使っています。ただし、Container-Optimized OS from Googleでは、docker-composeではなく、Kubernetesを使う前提なのでそのままでは使えません。
こちらのGoogle公式ガイドの方法で、docker-composeコンテナを立ち上げて使う形になります。
ロード時間
圧倒的に速いですね。アメリカ同士の通信とはいえ、0.3秒ほどというのはかなり速い部類に入るでしょう。日本に向けてデータ転送をしても、遅くても0.7秒くらいでしょうか。これならチューニング次第で1秒以内も目指せそうです。
CPU使用率
CPU負荷は一番右側の山になっているところ。MAXで10数%という安定感。負荷テスト中にWordPressの管理画面を触っていても、負荷がかかっている感じが全くしませんでした。
GCP無料枠で使うならKUSANAGI Runs on Dockerのが良さそう
チューニングなどをしていない条件ですが、KUSANAGI Runs on DockerならGCPの無料枠でもWordPressサーバーを運用できそうです。ただ、GCPでのKUSANAGI Runs on Dockerはいろいろと課題があるんですよね。それは、解決したらまとめたいと思います。