WordPressの動きを見ていて、どーももっさりだな、と思っていました。もっとも記事を閲覧するだけならそれほど影響はないのですが、プラグインのStatPress(アクセス状況を解析するプラグイン)を使っているとレスポンスがあるまでにかなりの時間がかかってしまいます。
そこでWordPressにWP-Super-Cacheをインストールしたのですが、管理者用のコンソールは高速化されるわけがないwそりゃ、管理系がキャッシュされて最新情報見られなくなったら困りますわな。というわけで、MySQLのキャッシュ設定を見てみると、キャッシュが設定されてないことがわかりました。なので、/etcにあるmy.cnfに以下の一行を追加。
query_cache_size = 32M
これだけでMySQLのキャッシュが始まります。もちろん再起動(reload)しないといけませんが。
[root@main ~]# mysqladmin -u root -p variables | grep query_cache Enter password: | have_query_cache | YES | query_cache_limit | 1048576 | query_cache_min_res_unit | 4096 | query_cache_size | 33554432 | query_cache_type | ON | query_cache_wlock_invalidate | OFF
てな感じで実際にキャッシュが効き始めたかチェックすることができます。
これでだいぶ動きはよくなるかと。そして、動作状況を今度はcactiで確かめたい、ということでMySQLの動作状況をcactiでチェックできるテンプレートを探してみました。色々とあるのですが、簡単に設定できそう、ということでmysql-cacti-templatesというのを使います。このページへアクセスして右側のFeatured Downloadからダウンロードしてください。
ダウンロードしたものを解凍して(あまりこの言い方好きじゃない)、中にあるものを適当な場所へ。そして、まずはss_get_mysql_stats.phpを編集します。
$mysql_user = 'cactiuser'; $mysql_pass = 'cactiuser';
以上の項目を自分のcactiで使っているIDとパスワードに変更して保存します。それを、cactiのscriptsを入れているディレクトリにアップロードしてください。自分の場合にはCentOSなので、/var/www/cacti/scriptsになりました。
次に、MySQLのcactiユーザのPrivilegeを変更します。ProcessとSuperのPrivilegeを付加してあげないといけません。自分は面倒なので、phpmyadminからやってしまいました。これをしたあとには、
mysqladmin reload
としてMySQLの設定変更を反映させないといけません。ここまでできたら、試しに先ほどscriptを突っ込んだディレクトリで、
php ss_get_mysql_stats.php --host localhost --items bv,bw,bx,by,bz master
と入力してscriptが動作するかチェックします。エラーが出たらPrivilegeがきちんと設定されてないはずです。
次に、cactiの設定を行います。cactiのグラフコンソールにいき、import Tmplateから、先ほど解凍したフォルダにあるcacti_host_template_x_db_server_ht_0.8.6i.xmlをアップロードしてあげます。
Cacti has imported the following items:
GPRINT Preset
[success] X Normal [update]
Data Input Method
[success] X Get MySQL Stats/MyISAM Indexes [update]
[success] X Get MySQL Stats/InnoDB Buffer Pool [update]
[success] X Get MySQL Stats/InnoDB I/O [update]
[success] X Get MySQL Stats/InnoDB Insert Buffer [update]
[success] X Get MySQL Stats/InnoDB Semaphores [update]
[success] X Get MySQL Stats/InnoDB Row Operations [update]
[success] X Get MySQL Stats/MySQL Table Locks [update]
…
みたいになればOK。テンプレートが読み込まれました。そしたら、あとはNew Graphからテンプレートを読み込みつつ設定してあげるだけです。
取りあえずひとつだけ、X MySQL Query Cacheでも選んでください。そしてcreateボタンをクリックします。
次に、「なんでさっき読み込んだテンプレートはこんな作りなんだろ?」と思わないでもないのですが、Data Input Methodsから、先ほど選んだテンプレートを修正します。
このテンプレート、usernameとpasswordをここで設定できるようになっています。なんのためにscript内部に書くんだか?と思いますし、ここにusernameとpasswordを設定するのもどうなの?と思いますので、テンプレートを直します。
まずは、imput fieldの修正から。ここのhostnameをクリックして以下の画面を出し、
hostnameをlocalhostに修正します。saveしたら、次に以下の
--user <username> --pass <password>
の部分を削除してsaveします。これでscriptsのusernameとpasswordが優先されます。
これでできあがり。cactiのグラフが5分後くらいに描かれれば問題ありません。
あまり使われてないことがよくわかりますな。ははは。
SunがORACLEに買収されてしまったけど、MySQLが心配な今日この頃。