“WordPressを簡単に1620倍高速化“する「部分キャッシュ」活用テクニック:とにかく速いWordPress(20)(4/4 ページ)
エンタープライズ用途での利用が増えている「WordPress」の高速化チューニングテクニックを解説する本連載。今回は、「WordPressアプリケーションレベルで実施する高速化チューニング」のポイントを解説します。
Transients APIとWordPress Object Cacheを併用してさらなる高速化
Transients APIは、デフォルトではデータベースが格納場所として使われるため、セッションをまたいだデータ保持が可能ですが、その分アクセスは低速です。
一方、WordPress Object Cacheは個々のPHPプロセス内のメモリにデータが保持されるため、アクセスは高速ですが、その有効期限は1セッションのみで有効です。
WordPressでは、共有メモリやインメモリデータベースを利用して、セッションをまたいだWordPress Object Cacheの保持が可能です。それを利用すれば、Transients APIにデータベースが使用されなくなり、さらなる高速化を図ることができます。
それを実現するには、事前準備として「memcached」や「Redis」などのインメモリデータベースシステムや、共有メモリにデータを保持する仕組みが必要になります。「KUSANAGI」ではデフォルトの構成で共有メモリにデータを保持するための「APCu」が有効化されています。ちなみに、APCuの導入については「『WordPress“1000倍”高速化』チューニング 第一弾──『PHP 5.6』『OPCache』『APCu』を導入する」で紹介しています。
APCuが導入された状態で、WordPressの機能拡張を行う「ドロップイン」機能を導入すればAPCuを利用した部分キャッシュ機能が利用可能になります。WordPress Object Cacheはもちろん、Transients APIにもAPCuが利用されます。APCuによってWordPress Object Cacheの期限が半永続化されるので、Transients APIのデータ格納にWordPress Object Cacheが利用されるようになるからです。
ここで重要なのは、APCuの導入においてWordPressのユーザーアプリケーションレベルでは、ソースコードを変更する必要がないということです。APCuはもちろんですが、Redisや、memcachedなどの他のキャッシュシステム導入においても、するべきことはドロップインでWordPressの機能を拡張するだけです。
このようにドロップインで独自に機能拡張を行うこともできますが、「APCu Object Cache Backend」などのプラグインを導入すればより手軽に利用できます。この点もWordPressの便利なところです。
WordPressでAPCuのWordPress Object Cacheが有効された状態で上記「transients.php」を実行し、結果を並べると下記の通りになりました。
5.6488840580秒 # Transients API使用なし 0.0009789467秒 # Transients API使用あり、APCu使用なし 0.0000348091秒 # Transients API使用あり、APCu使用あり
APCuを使わずにTransients APIのみを使用した実行時間も十分高速化されてましたが、それよりもさらに30倍の時間短縮に成功しています。結果として、Transients APIを使用しない場合に比べて1620倍も処理時間が短縮されたことになります。
今回は、WordPressアプリケーションレベルでの「さらなる高速化チューニング」の1つとしてTransients APIとWordPress Object Cacheを利用した手法を解説しました。これらは部分キャッシュの機能を提供しますが、キャッシュの範囲を拡大すれば全体キャッシュも可能です。それぞれの環境においてキャッシュを制御して、最適なWordPressサイトを構築してみてください。
次回は、応用としてボトルネックを見つけて処理速度を改善するテクニックを解説する予定です。お楽しみに。
筆者紹介
田島優也
1983年北海道生まれ。IT業界はデザイナーとしてスタートしたが、すぐにエンジニアへと転身し、現在は超高速WordPress仮想マシン「KUSANAGI」の開発をメインストリームとする。『詳解WordPress』(オライリー・ジャパン)、『WordPressの教科書』シリーズ(SBクリエイティブ)、『Software Design』(技術評論社)のシェル特集「しくみを知れば、bashは怖くない」、その他Web媒体での執筆実績がある。また、OSSへの貢献としては分散処理プラットフォーム「Apache Beam」のCode Contribution実績を持つ。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- WordPress脆弱性発覚、その後の状況 4.7.2リリース時に脆弱性が公開されなかった理由
2017年2月に発覚したWordPressの脆弱性により、既に約10万件ものサイトで改ざん被害が発生しているという。セキュリティ企業 ESETが、公式ブログで背景と現状、対処方法を解説した。 - 容易にWebサービスを高速化できるNginxを使いこなすための秘訣とは
高速で軽量なOSSのWebサーバとして注目されている「Nginx」。使いこなすための課題や有効なアーキテクチャ構成などをサイボウズでの導入事例と共に明かす。 - 高速・軽量・高機能……Nginxの基礎知識
処理能力の高さなどを理由に、近年、大規模サイトを中心に急速にシェアを拡大しているWebサーバー「Nginx」。この連載では、その特徴と魅力を分かりやすく紹介します。 - WordPress自体のチューニングが必要な理由と高速化の基本的な考え方
企業のCMSサイトやオウンドメディアなどエンタープライズ用途での利用が増加しているWordPressの高速化について解説する連載。初回は、WordPressの高速化が求められる背景や、WordPress高速化の基本的な考え方であるページのロード時間とその構成要素、1秒当たりの同時アクセス数について解説します。