1. TOPTOP
  2. Webサービス

CentOS7,PHP7,MySQL5.6のWordPressサイトを運用する その1(サーバーの応答時間を短縮してサイトの読み込み速度を向上させる)

thumbnail

CentOS7,PHP7,MySQL5.6でWordPressサイトを構築 その1(OSのインストールと初期設定)

「CentOS7,PHP7,MySQL5.6でWordPressサイトを構築」シリーズでは、セキュリティに配慮しつつ、ミドルウェア(Apache/MySQL)とアプリケーション(PHP/WordPress)をインストールしました。ですがサーバーは構築だけをすれば良いというものではなく、その後の運用が大切です。

PageSpeed Insightsの活用

今回はGoogle developersが提供する、PageSpeed Insightsを意識したサイトの読み込み速度を向上させる方法をご紹介します。ページの読み込み速度は、Googleの検索順位にも大きく影響します。PageSpeed Insightsによる評価を上げることは、サイトのSEO対策にもなります。

PageSpeed Insightsのトップページにアクセスして、評価の対象となるページを分析すると各項目について、具体的な提案がなされます。

サーバーの応答時間を短縮する方法

Googleではページの読み込み速度を速くするための手段として、サーバーの応答時間を200ミリ秒(0.2秒)以下にすることを推奨しています。その読み込み速度を速くするためには、いくつかの方法があります。

サーバーのスケールアップ

一般的にサーバーのスペックとしてメモリの容量が小さいと、サーバーの応答時間が遅くなります。したがって、サーバーのスケールアップをすることは、サーバーの応答時間を速くするための有効な手段です。

ただしメモリのサイズを無限に大きくすれば良いというわけではありません。サーバー使える費用に限りがあるためです。そこでサーバー監視ツールなどで、どれぐらいのメモリを使用しているか計測する必要があります。

MuninをCentOS7の新規サービスとして登録する

CentOS7のfirewalldに新規サービスを登録・公開する方法 ~ 監視サーバー(Munin)から監視されるサーバーにポート接続

具体的にはMuninというサーバー監視ツールを使って、メモリやCPUをはじめとしてサーバーの稼働状況をグラフで把握します。ただしMuninはCentOS7にデフォルトでインストールされているアプリケーションではありません。別途、設定登録する必要があります。

Muninのインストール

MuninでCentOS7のサーバーを監視する~監視サーバーの作成と監視項目(Apache2.4)の追加

MuninでCentOS7のサーバーを監視する~監視対象サーバーの設定

MuninでCentOS7のサーバーを監視する~監視対象サーバーで監視項目(Apache2.4,MySQL5.6)の追加

CentOS7にMuninを設定登録したのち、実際に監視サーバーと監視サーバー対象にMuninをインストールし、2つのサーバーに対して監視項目を追加します。

Muninによるサーバー監視

PageSpeed Insights の最適化提案 「サーバーの応答時間を短縮する」について解決する 〜 その1(サーバー監視ツール Muninによる改善点の確認)

Muninでサーバーの稼働状況を確認します。監視する項目は主にCPUとメモリです。上記のページを参考にして、メモリのサイズが小さいと判断すれば、サーバー(さくらのVPS)のスケールアップを行います。

サーバー(さくらのVPS)のスケールアップ

PageSpeed Insights の最適化提案 「サーバーの応答時間を短縮する」について解決する 〜 その2(「さくらのVPS」をスケールアップする手順)

そのサーバー(「さくらのVPS」)のスケールアップを行う手順はこちらのページで説明しています。「さくらのVPS」の場合、一度スケールアップしたすると、スケールダウンはできません。Muninでサーバーの稼働状況を確認して本当にスケールアップする必要があるかどうか、よく確認をしましょう。

仮想ディスクの拡張とslab_casheの解放

PageSpeed Insights の最適化提案 「サーバーの応答時間を短縮する」について解決する 〜 その3(スケールアップ後のInsights評価確認)

サーバーのスケールアップをした後は、必ずサーバーの稼働状況とPageSpeed Insightsの評価を再度、確認しましょう。その確認内容によっては、スケールアップ後のフォローをしなければなりません。

slab_casheの解放

PageSpeed Insights の最適化提案 「サーバーの応答時間を短縮する」について解決する 〜 その4(ディスクの拡張でメモリのswapとslab_casheが減少)

PageSpeed Insights の最適化提案 「サーバーの応答時間を短縮する」について解決する 〜 その5(slab_casheを解放する)

「さくらのVPS」はサーバーのスケールアップを行っても、仮想ディスク(SSDと呼ばれる二次記憶装置)の拡張は自分で行わなければなりません。また、単に仮想ディスクを拡張しただけでは、メモリを効率よく活用できません。必要に応じてslab_casheを解放させる必要があります。

データベースクエリの削減

MySQLのチューニング〜PageSpeed Insightsが表示する「サーバーの応答時間を短縮する」の対応準備〜 MySQLTunerとSHOWクエリの活用

PageSpeed Insights の最適化提案 「サーバーの応答時間を短縮する」について解決する 〜 その6(WP Super Cacheの活用)

サーバーの応答時間を短縮する方法の1つとして、データベースクエリを削減する方法が挙げられます。上記のページではMySQLの設定ファイルを変更してクエリを削減する方法(ただし失敗)と、WordPressのWp Super Casheを活用してクエリを削減する方法の2つの方法について紹介しています。