Home

技術系のメモと日々の雑感

KRHK-CF2.5IDE のジャンパ

ずっと前に手に入れて使わないままになっていた ThinkPad X40 が家にあるので、玄人志向の KRHK-CF2.5IDE 経由で Sandisk ExtemeIII 16GB(SDCFX3-016G-J31)をつないで CentOS 5.4 を入れてみた。
すんなり入ったものの、いざブートしようとすると CF にアクセスできない模様。
構成はインストールしたときと何も変えてないのになぁ。
調べる気力がなかったので、再び放置して一週間が経過・・・。
上のイメージのように、KRHK-CF2.5IDE にはジャンパ(CF のスロットの左側)が付いているんだけど、この前ふと、これを有効にしたら動きが変わるんじゃないかと思ってやってみたら、正解だった。
ジャンパプラグを外しているとスレーブになるんだね。
自分では外した記憶がないから、買ったときから付いてなかったのかも。
とりあえず動いたので、おまけで簡単なベンチマークを。

# hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads: 86 MB in 3.03 seconds = 28.36 MB/sec

# dd if=/dev/zero of=hoge bs=100000000 count=1
1+0 records in
1+0 records out
100000000 bytes (100 MB) copied, 0.192883 seconds, 518 MB/s

メモリを多めに積んでいるおかげで、書き込みはすべてバッファに収まっている。
フリーズのような動きはまったく起きないので、思っていたより快適だ。

ext3_orphan_cleanup: deleting unreferenced inode

CentOS 5.3 で動かしてるサーバが急に反応しなくなった。
仕方ないので強制電源断。
起動してから恐る恐る dmesg を見ると見慣れないメッセージが。

EXT3-fs: dm-0: orphan cleanup on readonly fs
ext3_orphan_cleanup: deleting unreferenced inode
EXT3-fs: dm-0: 29 orphan inodes deleted
EXT3-fs: recovery complete.

orphan は「孤立した」という意味だね。
不要な inode ができていたので削除したということか。
2行目が大量に出ててちょっと冷や汗が出たけど、recovery complete とあるから、ジャーナルのリカバリがきっちり動いてくれたんだろう。
ひとまず安心。

MySQL の動きを MRTG でグラフ化

ちょっと忙しそうにしている DB サーバがあるので、MySQL の動きを MRTG でグラフ化してみた。
設定はとっても簡単。
まず、MySQL が載っているサーバで次のようなシェルスクリプトを作って、cron で5分ごとに実行しておく。

#!/bin/sh
/usr/local/bin/mysqladmin -u root -pXXXX extended-status | grep 'Threads_connected' | awk '{print $4}'
/usr/local/bin/mysqladmin -u root -pXXXX extended-status | grep 'Threads_running' | awk '{print $4}'
uptime | awk '{print $3$4}' | sed 's/,//g'
echo 'MySQL Threads'

書くまでもないけど、ひとつ目の値は現在の接続数、ふたつ目は実行中のスレッド数だ。
我ながらヒネリがないな。
まぁ、気にせず mrtg.cfg に設定を追加してしまおう。
見ての通り、この前のエントリとほとんど一緒だ。

Target[mysql]:`/root/mysql_threads.sh`    #上のシェルスクリプトを指定
Title[mysql]: MySQL Threads
PageTop[mysql]: <H1>MySQL Threads</H1>
Options[mysql]: absolute,gauge,growright,integer,nolegend,nopercent
MaxBytes[mysql]: 10000
YLegend[mysql]: Threads
ShortLegend[mysql]: Threads
LegendI[mysql]: Connected
LegendO[mysql]: Running

load average と似たようなグラフになるのかと思ったら、ぜんぜん違ってて興味深い。

load average を手軽に監視

この前の load average が急上昇したサーバとは別に、慢性的に負荷が高めのサーバがあった。
本来なら Nagios とかのちゃんとしたツールで監視しないといけないんだけど、NRPE を入れると、これ自体が負荷を上げるひとつの原因になってしまう。
そこで、なるべくサーバの負荷を上げないように、今回は簡単なシェルスクリプトで済ませることにした。

#!/bin/sh
LOAD=`cat /proc/loadavg | awk '{print $2}' | sed 's/¥..*//'`
if [ $LOAD -lt 5 ]; then
  exit
fi

MAILTO='alert@example.com'
SUBJECT="`hostname` load average alert"
mail -s "$SUBJECT" $MAILTO <<EOT
`top -b -n 1`
EOT

これを cron に登録して、5分おきぐらいで実行するだけ。
とりあえず監視はこれでいいとして、負荷が上がってる根本的な対策を考えないとなぁ。