«

»

3月 21

Linuxでシェルからコマンドを定期実行することで、簡易システムモニタにする。

仕事で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アドレス'"

とすればよいです。

 

こうしていくつか監視ウインドウを開いて並べれば、いちいち実行しにいかなくてもチラ見できて便利になります。

watchコマンド実行例2台のサーバを競わせながら、お仕事。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次の HTMLタグおよび属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>