WordPress 2.8 になって高速化した? 冗談でしょう。アップグレードしたら、全体に挙動がやたらと重くなってしまいました。そんな時にはここをチェック…と言えば聞こえはいいですが、対策として私はここを疑いましたリストです。 🙂 キャッシュ、メモリ、プラグイン。さて原因は何でしょう。
WordPress Grey Logo: 100×100

アップグレードして初日、重いのはしょうがない

今回 WordPress 2.8 への自動アップグレードは鬼門らしいので、手動でアップグレードしましたが、その際に cache をクリアするため、キャッシュデータが再び出そろうまで重くなるのは、ある程度仕方がありません。

WordPress 自身のオブジェクトキャッシュ

WordPress 2.7.1 までよりも、オブジェクトキャッシュありの効果が高くなった、というか、キャッシュなしにすると管理画面が体感的に重いようです。ここまで長くなくていいですが、とにかく ENABLE.

[code language=”php”]
define(‘ENABLE_CACHE’,true);
define(‘CACHE_EXPIRATION_TIME’, 36000);
[/code]

WP-Cache または WP Super Cache プラグインの設定

WP-Cache プラグインは副作用はあるものの、導入していない人は、もはや必需品なので導入した方が良いと思います。導入ずみの場合は、WP-Cache is Disabled のまま放置されていませんか、と。

WP-Cache Manager: enable / expire time

常時必要ではないプラグインが「使用する」になっている

たとえば WP-Options-Manager というオプション変数を管理するプラグインは、便利ですが重いです。ぶっちゃけレジストリの掃除要らないオプションの削除時にしか私は使わないので、削除するわけではありませんが、容赦なく「使用しない」にしています。

物理的なメモリ不足

WordPress 2.8 になってから全体にメモリ食いになったのか、WordPress を物理的なサーバに直接インストールしている場合は、物理メモリを。VMWare など仮想化してある場合は、ゲスト OS に対するメモリ割り当てがいっぱいになっているかもしれません。

CentOS の場合は free コマンドで確認。私の場合、30M 程度しかない状態で動作しており、どうりで遅いわけだ、と。512MB ほど増やしてみました。

VMWare 1.x: Virtual Machine Settings: Hardware

VMware Server 1.x の場合、いくらゲスト OS 単位のメモリ割当量を増やしても、そのままではメモリを使ってくれるわけではありません。vmx ファイルの中に下記のように書くことで、物理的に割り当てた分だけゲスト OS 起動時にスタティックに確保し、使ってくれるようになります。

[code]
mainMem.useNamedFile = "FALSE"
[/code]

PHP の memory_limit (微妙)

PHP のメモリ使用量が増えているため、/etc/php.ini を編集し増やす必要があるという説もあります。

[code language=”php”]
memory_limit = 16M ; Maximum amount of memory a script may consume
[/code]

私の場合はもともと 64M にしていましたが、念のため、php コードを書いて容量を表示させます。

[code language=”php”]
<?php
echo memory_get_usage();
?>
[/code]

適当に test.php などのファイル名で保存して、ブラウザで確認。

[code]
36032
[/code]

平気そうなんですけどね。一応 128M に増やしてみました。

APC のメモリ割り当て

PHP アクセラレータ APC を導入してある場合は、共有メモリを使い果たしているかもしれません。

apc.php でメモリ使用量すると、一見 32MB に収まっているように見えても、どうも APC 自身がメモリ使用量を上限に達しないように抑制? しているように思われるため、64MB などに増やします。

[code]
apc.shm_size = 64
[/code]

1日ほど放置しておくと、案の定 40.3MB まで使用しました。

apc.php: View Host Stats: apc.shm_size = 64;

それでもダメならサーバの替え時か…?

上記すべてを対策して、管理画面はまともに使えるレスポンスにはなりましたが、WP-Cache があってでさえ、新しいページのレンダリングに 10秒ぐらいかかってしまうのは、やはり VMWare のホスト OS つまり物理的な PC の替え時なのでしょうか。自鯖でなくホスティングプロバイダを借りている人は、プロバイダの替え時なのでしょうかね。

先日 Core i7 PC を購入したのは、お下がりで使わなくなった Core 2 Duo PC をサーバに転用するためでした。…が、帰ってきたら寝る生活でなかなか進まず。

人間の CPU タイム不足か。オチがついたところで、また明日。 🙂