Manual:$wgMainCacheType
| キャッシュ: $wgMainCacheType | |
|---|---|
| オブジェクトキャッシュの設定 |
|
| 導入されたバージョン: | 1.5.0 |
| 除去されたバージョン: | 使用中 |
| 許容される値: | (CACHE 定数 (下記参照) の一つ、または $wgObjectCaches でキーが設定されているキャッシュ型を示す文字列。) |
| 既定値: | CACHE_NONE |
| その他の設定: アルファベット順 | 機能順 | |
詳細
オブジェクトキャッシュの利用に関する設定を行います。
初期状態で指定できる値は以下の通りです(この値は Defines.php で定数として定義されています)。
CACHE_NONE– キャッシュしない(初期値)CACHE_ANYTHING–CACHE_NONEでもCACHE_ANYTHINGでもない値が何か設定されていた場合、$wgMessageCacheType 型または $wgParserCacheType 型を利用する。 そうでなければCACHE_DBを使う。CACHE_ACCEL– 利用できる場合は APCu、OPcache のいずれかを使用する。 (maintenance/install.php will add the line$wgMainCacheType = CACHE_ACCEL;to your config.)CACHE_MEMCACHED– 利用可能なら memcached を使う。合わせて $wgMemCachedServers でサーバーを指定しておく必要がある。CACHE_DB– データベーステーブルの objectcache を使う。
- 警告: この指定を行うとキャッシュを使わない指定(
CACHE_NONEを指定)したときよりも遅くなる可能性があります。
PHPファイルをバイトコードにコンパイルし、そのバイトコードを実行することでPHPは動作します。 MediaWikiのような大規模なアプリケーションをコンパイルするプロセスには、かなりの時間がかかります。 PHPアクセラレータは、コンパイルしたバイトコードを保存し、直接実行することでコードのコンパイルにかかる時間を短縮する仕組みです。
OPcache は PHP 5.5.0 以降に含まれており、MediaWiki の推奨アクセラレータです。
オペコードキャッシュは、PHPスクリプトのコンパイル済み出力を保存し、スクリプトを複数回実行するのに必要な時間を大幅に短縮することができます。 MediaWikiは、PHPバイトコードキャッシュを実行するように構成する必要はなく、インストールして有効にすると「正常に機能」します。
カスタム キャッシュ バックエンドの例 (例: Redis) については $wgObjectCaches を参照してください。
- それには、memcached と opcode cache がインストールされている場合、
CACHE_MEMCACHEDディレクティブが最も顕著に性能を改善してくれるだろうと記されています。 - これはMediaWikiのキャッシュ設定の一つに過ぎません。 最も良い性能を出すには他のキャッシュ設定を検討する必要があるかもしれません。 performance tuning を参照してください。
- MediaWiki 1.27からPHPセッションはキャッシュに保持されるようになりました。どのキャッシュ方式を使うかはこの変数の設定値に依存しますが、$wgSessionCacheType の設定があると設定内容は上書きされます。 APCuが誤った設定で
CACHE_ACCELを使用すると、問題が発生する可能性があります (see T147161).
Login session problem with APCu in a multi process or multi server environment
$wgSessionCacheType inherits $wgMainCacheType unless configured otherwise.
Selecting CACHE_ACCEL as the cache type can cause inconsistent behavior where session data is lost, and the user must log back in. This is because php-fpm processes can be ephemeral or not good at talking to each other. There can also be problems in a multi-server environment.
The workaround is to use the database to store these sessions. Add the following line to LocalSettings.php
$wgSessionCacheType = CACHE_DB;