「最近運営しているサイトが重たい」
「データを増やしたら突然処理速度が遅くなった」
「もっと今のサイトのパフォーマンスを早くしたい」
サイトやWebサービスを運営していてこう考えたことはありませんか?
今回はWebサイト・Webサービスの「サーバー側のパフォーマンス」を計測する為の指標と、その方法について簡単にご紹介します。
プログラムのことがわから無くても簡単に計測することができますので、是非ご一読下さい。
チェックすべきはTTFB
PHPやJavaといったサーバーサイドの言語の処理時間はTTFBでおおよその値を確認することができます。
TTFBとは
TTFBとは「Time To First Byte」の頭文字をつなげた言葉で、「最初の1バイトが到着するまでの時間」を表します。
この「最初の1バイト」とは、Webサーバーにリクエストを行なった際に「サーバーから初めて返ってきた1バイト」のことを意味しています。
つまりサーバーがリクエストを受け取ってからデータを返し始めるまでの時間を計測することができる指標ということになります。
TTFBの測り方
TTFBはChromeやfirefoxの開発ツールを利用することで簡単に調べることができます。
Chromeでは開発ツールの中にある「Network」タブを選択し、その中の最上部にある要素にカーソルを合わせると下のようなポップアップが表示されます。
この中の赤枠で囲われた「Waiting (TTFB)」と書かれている部分が表示中のページのTTFBです。
画像のページ(Google)では125ミリ秒ですので、サーバーの処理時間はおおよそ0.125秒といえます。
Google推奨は200ミリ秒以下
このTTFBですが、Googleの「PageSpeed Insightsのルール」では200ミリ秒以下であることが推奨されています。
サーバーの応答時間は 200 ミリ秒以下に減らす必要があります。
サーバーの応答時間を改善する – PageSpeed Insights — Google Developers
もっと簡単に調べる方法
とはいえ「ブラウザの開発ツールを使ってテストする」というのはエンジニアでも無ければかなり億劫になりがちです。
そこでもっと簡単にサーバーの処理時間を計測する方法として、Googleの提供する「PageSpeed Insights」をお勧めします。
サイトのURLを入力するだけで簡単にWebサイトのパフォーマンスを計測することが可能なサービスですので、より直感的に扱うことが可能です。
診断方法も簡単で、「サーバーの応答時間を短縮する」というルールに合格しているかどうかを確認するだけ。
画像の様に「合格」のエリアに「サーバーの応答時間を短縮する」が含まれていてば、サーバー側のパフォーマンスに問題はないといえます。
プログラム側で注目すべきポイント
TTFBを200ミリ秒以下に減らす方法ですが、「PageSpeed Insightsのルール」では7つの方法が提示されています。
- 速度の遅いアプリケーションロジック
- 遅いデータベースクエリ
- 遅いルーティング
- フレームワーク
- ライブラリ
- リソースによるCPU の消費
- メモリ不足
中でもサーバーサイドプログラムで改善できる場所としては「速度の遅いアプリケーションロジック」、「遅いデータベースクエリ」、「遅いルーティング」辺りが挙げられるのではないでしょうか。
具体的な改善方法については、やはり「先人に学ぶこと」が一番です。
SlideShareで「言語名+パフォーマンス」などで検索をすると、下の様にパフォーマンス改善を行う為のノウハウをまとめたものが多数見つかります。
プログラムのパフォーマンスを上げることで速度だけでなくサーバーへの負荷を軽減することも可能になります。
これからサーバーサイド言語を覚えようという方はスキルアップも兼ねて、またWEBサービスを運用されている方は自社サービスのパフォーマンスが最適化されているかの確認のため、是非SlideShareのスライドを検索してみてください。
本当に大切なことは「サイトの定期健診」
このTTFBを使ったパフォーマンス計測で本当に重要な事は、「定期的に計測すること」です。
オープンした当初は商品や記事数も少なかったために高いパフォーマンスを維持できたサイトが、データ量の増加や機能追加で気がつけば凄く重たいサイトになってしまっていた・・・
なんてことも十分考えられるため、子どもの体調を心配するがごとくサイトパフォーマンスの計測を行うことをお勧めします。