こんにちは。ホスティング事業部ヘテムルグループのエンジニアのksatoとryomaです。 私達が担当しているヘテムルでは先日、新しい料金プランの提供を開始いたしました。
新プランの提供開始にあわせて新機能の追加も行っています。 今回はその中でもサイトの高速化に関する内容についてお話しします。
OPcacheの導入
今回ヘテムルでは、新サーバー環境においてOPcacheの導入を行いました。 OPcacheは、共有メモリにコンパイル済みのコードを保存します。 リクエスト毎にスクリプトを読み込み、パースする手間を省いてくれることでパフォーマンスの向上が期待されます。 OPcacheの導入を検討するにあたり、WordPressを利用したレスポンスの検証を行いました。
検証用に作られた環境ではありましたが、大きなレスポンス改善が見られました。 この結果を踏まえて、本格的にOPcacheの導入に向けた検討が進められていくことになりました。
mod_pagespeedの検証
今回のリニューアルではmod_pagespeedの導入も検討されました。 mod_pagespeedはGoogleにより開発されたサイト高速化のための拡張モジュールです。 mod_pagespeedは画像の圧縮、CSSやJavaScriptの結合、縮小化など多数の機能が備わった非常に有用なモジュールですが、検証の結果ヘテムルでは導入しないことを決定しています。 ここでは決定に至るまでにインフラチームの@takumakumeが行った検証についてご紹介します。
適用する機能の選定
mod_pagespeedが提供する機能の中には高速化への寄与が大きく見込める反面、コンテンツへの影響が大きいものも存在します。 自分たちで開発、運用しているコンテンツであれば必要に応じて修正が可能ですが、レンタルサーバーの場合はお客様の多岐に渡るコンテンツが影響を受けることになるため、有効化する機能の決定は慎重に行う必要があります。 また、ヘテムルやロリポップ!では独自に開発したモジュールを利用しているため、mod_pagespeedとの両立が問題なく可能であるかという点についても検証が必要でした。
そこでmod_pagespeedが提供する機能を以下の通り分類し、低リスクの機能から順に適用しながら動作検証を進めました。
- リスク低:ほぼユーザに影響がない
- リスク中:一部のユーザに影響があるかもしれないがほぼ無視できそうなものか対象が少ない
- リスク中高:パフォーマンス改善は期待できるが、ユーザに影響が出る可能性がある
具体的なパラメータについては省略させていただきますが、次項の性能評価では、上記の検証によりヘテムルのサーバー環境において導入可能と判断された機能のみを有効にしています。
性能評価
評価にはヘテムルでも利用の多いWordPressで構築されたサイトを対象に選びました。
サイト表示の性能評価
WordPress初期画面を対象にGoogle Chromeのデベロッパーツールを利用して次の3点について計測を行いました。
- ブラウザからサーバに行うリクエスト数
- ブラウザがサーバからダウンロードするレスポンスサイズの合計
- リクエストから描画完了までの合計時間
計測結果は以下の表の通りです。
評価項目 | mod_pagespeed無効の場合との差 | パフォーマンス |
---|---|---|
アクセス時のリクエスト数 | 約10%~20%削減 | 向上 |
レンスポンスサイズ | 約20%増加 | 低下 |
リクエストから描画までの所要時間 | 1.3~7倍 | 低下 |
リクエスト数については改善が見られましたが、それ以外の2項目については有効化することで逆にパフォーマンスが低下する結果となりました。
テーマの変更、プラグインの追加、画像の含まれた記事の投稿など、実際のユースケースに近い状態についても計測を行ったところ、上記の表と同傾向の結果が出ています。
abを用いた負荷測定
abを用いた負荷測定も実施しています。その結果、1秒間に処理するリクエスト数についても次の表の通りパフォーマンスの低下が見られました。
対象 | req/sec |
---|---|
WordPress初期画面 | 約15%低下 |
記事の追加を行ったWordPressサイト | 約40%低下 |
Webページスコア測定サイトにおける評価
Webページの測定サイトにおいては以下の表の通りスコアの改善が見られました。 mod_pagespeedが行うCSSの縮小化やHTMLの最適化が評価項目として存在するため、有効化がスコアアップにつながっているようです。
PageSpeed Insights
mod_pagespeed | 結果 (mobile) | 結果(PC) |
---|---|---|
有効 | 74 | 90 |
無効 | 70 | 83 |
GTmetrix
mod_pagespeed | PageSpeed | YSlow |
---|---|---|
有効 | A(94%) | B(84%) |
無効 | B(86%) | D(69%) |
まとめ
以上のように測定サイトでのスコアアップというメリットがある一方、ヘテムルのサーバー環境においては実際のパフォーマンス向上が見られなかったため、導入しない決定を下しました。
サイト表示の高速化はお客様からのご要望、ご期待が非常に大きい要素ですので、最適な技術選択を行い圧倒的に快適なサーバーをご提供出来るよう日々開発を行っています。 現在はmod_pagespeed以外の方式による高速化について検証、開発を進めていますのでご期待ください!
無料独自SSLの提供とサーバーのHTTP/2化
新プランの提供に先駆け、新サーバー環境ではHTTP/2対応を行いました。 HTTP/2は2015年5月にRFC化された2017年11月現在で最新のHTTPです。 大きな特徴としてヘッダーの圧縮やストリームの多重化が挙げられ、対応することでHTTP/1.1の場合と比較してサイト表示の高速化が見込めます。 前項で検証したmod_pagespeedが提供する機能の多くはHTTP/1.1までのパフォーマンスに関する課題への対策といえますが、HTTP/2の登場によりプロトコルレベルでの解決がなされています。
HTTP/2を利用するためには、サーバーが対応していることに加えてHTTPSでのアクセスが必要になります。 またHTTP/2に限らず、検索エンジンにおけるHTTPSサイトの優遇や主要ブラウザにおけるHTTPS化していない入力フォームに対する警告など、いわゆる「常時SSL化」の重要度が高まっています。 ヘテムルでは新プランの提供にあわせ無料独自SSLの提供を開始しており、よりセキュアで高速なサーバーを手軽にご利用いただけるようになりました。
ヘテムルの無料独自SSLでは、先行して提供を開始したロリポップ!と同じバックエンドを利用しています。 無料独自SSLのアーキテクチャについてはテックブログでも以前にご紹介していますので是非ご参照ください。
結び
今回、ヘテムルでの高速化に向けた取り組みの一部を紹介させていただきました。 サーバー環境毎の相性もあり、すべての取り組みがヘテムルでの改善に直結するとは限りません。 今後も新たな価値提供に向けて堅実に検証を行い、サーバー環境の改善に取り組んで参ります。 その際にはまたご紹介させていただきたいと思います!