仕事でmysqlサーバの負荷があがっていたので、query_cache という奴をちくちくといじっていた。ざっくり言えばこれは、mysqlに対する検索要求についてメモリにキャッシュをし、次回同じ検索要求が来たときに備える、という機能であり、お客さんの多いサーバでは効果を発揮してくれるはずのものである。
サーバの抱えているデータが多かったら、その分キャッシュメモリのサイズも大きくしたり、その他まあいろいろとチューニングしたいところがあるわけです。
この場合、チェックする対象は mysql のクエリキャッシュに関する情報。これを引っ張ってくるには
mysqladmin -u root --password=でーたべーすのぱすわーど extended-status | grep Qcache
とします。結果は
| Qcache_free_blocks | 119 | | Qcache_free_memory | 1061903264 | | Qcache_hits | 24714 | | Qcache_inserts | 9440 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 59765 | | Qcache_queries_in_cache | 4748 | | Qcache_total_blocks | 9851 |
このように帰ってきます(数値はてきとうです)。
これらの数値がどんな風に変化していくかなーって気になると、何回も同じコマンドをぱたぱた叩きたくなってきます。
[root@www5 ~]# mysqladmin -u root --password=ぱすわーど extended-status | grep Qcache | Qcache_free_blocks | 118 | | Qcache_free_memory | 1061503192 | | Qcache_hits | 26894 | | Qcache_inserts | 10084 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 65440 | | Qcache_queries_in_cache | 5088 | | Qcache_total_blocks | 10536 | [root@www5 ~]# mysqladmin -u root --password=ぱすわーど extended-status | grep Qcache | Qcache_free_blocks | 137 | | Qcache_free_memory | 1060891888 | | Qcache_hits | 30002 | | Qcache_inserts | 11042 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 73173 | | Qcache_queries_in_cache | 5593 | | Qcache_total_blocks | 11564 |
よし、じゃあ今日1日は作業しながら、ときどきこのパラメータをチェックしよう!
そう思ったときには、今回のお題を実行します。
1. 専用にsshを1つ起動します。(個人的にはputtyを使用しております)
2. さっきのコマンドをダブルクォーテーション “” でくくります。
3. そのコマンドの前に watch –interval 1 とつけます。例: watch –interval 1 “mysqladmin -u root –password=ぱすわーど extended-status | grep Qcache”
4. 実行すると、1秒おきに実行結果が更新されるようになるので、sshのウインドウを適当なサイズと形に縮めて、作業画面のはじっこにそっと添えます。
5. 仕事の合間に数値を眺めてうっとりします。
例で出したのは mysql の状態監視ですが、他にも、ファイル更新が行われているかどうかを監視するなら
watch --interval 1 "ls -al"
すればいいし、特定のIPアドレスからのWebサーバへのアクセスを検知したいなら
watch --interval 1 "tail /var/log/httpd/access_log | grep '特定のIPアドレス'"
とすればよいです。
こうしていくつか監視ウインドウを開いて並べれば、いちいち実行しにいかなくてもチラ見できて便利になります。
最近のコメント