WordPressのカスタマイズやテーマファイル、プラグインの作り方などデータベース構造から詳しく解説します。

WordPressとキャッシュ(クエリ・オブジェクト・ページ)

WordPressの動作が重い、もっと高速化したいという時にまず利用を検討するのがキャッシュ系プラグイン。
キャッシュ系プラグインは上手く利用すれば高速化を実現する事が出来ますが、よく理解しないまま闇雲に設定をしてしまうと、サイトが真っ白になってしまう、サーバーが落ちてしまうなど様々なトラブルを引き起こします。
キャッシュ系プラグインを安易に導入する前に、そもそもキャッシュとはなにか、手動で設定する事は出来ないのかをぜひ確認してみてください。
今回はWordPressを利用されている方のために、利用出来る様々なキャッシュとその設定方法についてご紹介します。

そもそもキャッシュとは?

キャッシュとは前回の実行結果を保持して、同一の内容を要求された場合には再度プログラムを実行するのではなく、前回の実行結果を代用する事でレスポンス速度の向上や、サーバーへの負荷を下げる方法です。
最もイメージがつきやすいのは、Webブラウザでのページキャッシュではないでしょうか。

ブラウザでのページキャッシュ

Webブラウザを用いてWebサイトへとアクセスするとき、接続先のサーバーからHTMLや画像ファイルなどWebサイトの表示に必要なファイル一式をダウンロードします。このときダウンロードされたファイルはユーザーのPC内に保存されます。
同一ページに再度アクセスするときに、ローカルファイルのダウンロード日時とサーバー側の更新日時を比較して、以前のダウンロードから変更が加わっていなければ、ダウンロードする工程をスキップしてローカルにあるファイルを使用します。
すなわち、前回の表示データをキャッシュして次回の接続時にキャッシュを利用するのです。
このページキャッシュの設定やそれにまつわる挙動についてはこちらの記事をご覧下さい。
WordPress高速化(Apacheチューニング)

Apacheで利用出来るキャッシュ

mod_cacheモジュールの利用

WebサーバーであるApacheは、ブラウザへのレスポンス内容をキャッシュする事が出来ます。
ブラウザでキャッシュするのとちょうど同じように、前回同様のリクエストを受け取った際にサーバー内で生成されたデータを保持しておく事で、再度データを生成する手間を省くことができます。
これにはApacheのmod_cacheモジュールを利用します。まずhttpd.confファイルを編集してmod_cacheモジュールの読み込みを設定します。その後、設定ファイルを作成し、キャッシュの保存期間や保存ディレクトリ、保存容量、そしてメモリとディスクのどちらに保存するのかを設定します。

Apacheのキャッシュをメモリとディスクどちらに保存する?

当然メモリの方がIO速度(書き込み(Input)、読み込み(Output)に要する速度)が早く高速な処理が可能です。
しかし、メモリはディスクに比べて容量が小さく、メモリでキャッシュを行う場合はキャッシュ容量、保存期間を厳しく制限しなければなりません。
ユーザーがどれくらいの頻度でサイトへ訪れるのか、サイトの更新頻度、サイト表示に要するデータ容量(画像がおおいのかテキスト中心か)をベースに判断されるとよいでしょう。

PHPで利用出来るキャッシュ

PHPはファイルとして保存されているコードを実行するためのコード形式へと返還し(コンパイルし)、実行します。
このコンパイル作業を事前に行い圧縮して保存しておいてくれるのがAPC(Altanative PHP Cache)やeacceralatorというソフトです。オブジェクトキャッシュと言われるものになります。
これらのソフトも、キャッシュ容量や保存期間、保存先をメモリにするのかディスクにするのかを選択出来るので、サーバー構成にあわせて調整をしてみてください。

MySQLで利用出来るキャッシュ

MySQLはクエリという命令文を通じてデータの受け渡しを行いますが、このクエリの実行結果をキャッシュするものをクエリキャッシュといいます。
一般に、/etc/my.confファイルを編集する事で、詳細な設定が行えます。MySQLの中でもストレージエンジン(InnoDBなど)によって微妙に挙動が異なりますので、その挙動の違いを理解した上で設定を行う必要があります。

要注意!設定を間違えるとサーバーが落ちる!?

上手く活用すればサーバー負荷を軽減し、表示速度を爆速にすることができるキャッシュですが、使い方を間違えると逆に処理速度を落としてしまいます。
例えば、キャッシュの保存先をメモリに設定した事によりメモリ不足に陥ってしまってサーバー自体のパフォーマンスが低下してしまう、などです。
また設定ファイルの中ではApacheやMySQLの各スレッドにどの程度のメモリ、バッファーを割り当てるのかを設定出来ます。しかしこちらも余分に設定してしまうと、サーバー自体のパフォーマンス低下を引き起こすボトルネックとなってしまうことがあります。

おわりに

いかがでしたでしょうか?WordPressに関わるキャッシュ設定はつきつめればこの3つになります。これらの設定を手動で行う事はそんなに難しい事ではないので、ぜひ自分で調整してみてください。
そのさいには、サーバーの性能を考慮しながら余分に使いすぎないよう十分に注意をしてください。

関連記事

ページ上部へ戻る