Webサーバ

久しぶりのパソコンネタ。
最近、サーバの空きメモリ容量が少しずつ減っているのが気にかかる。
Linuxの空きメモリ容量の算出自体は、極めて簡単。
freeコマンド*1の表示結果から、「-/+ buffers/cached」行の「free」列を取得して、2の20乗(1,024K)で割る。
半導体メモリは、HDDなどの記憶装置と違ってきちんと「2のn乗」で換算されているのでコレで良い。
その辺の情報は、http://pc.watch.impress.co.jp/docs/2003/0922/it010.htmを読むと分かりやすいと思う。


で、空きメモリ容量が減ってきているのはなんでだろう。
毎朝いろいろな情報を携帯電話メールに飛ばして確認してるから少しずつ減っているのが感覚的にわかるものの、どんな下降線を描いているのかはわからない。
スクリプト、情報を集積するように書き換えようかな…
集積する場所とか、ログローテーションの間隔や世代数とかの、設計が面倒に感じたのでパス。
とりあえず、シェルスクリプト的には、こんな感じかな?

#!/bin/sh
# Script name : mg.sh
# purpose : メモリの空き容量を取得

# parameter
MFree=`uptime | grep buffers | awk '{print $3}'`

# main script
echo "`expr $MFree / 1024 / 1024` MB"

# end script
exit 0


※ 実際に運用しているコードとは異なり、検証はしていないので注意。


運用初めの頃は192MB積んでいるメモリの内、内蔵ビデオカード用にメモリを占有された部分を抜いても100MBとか平気で余っていたものだ。
今、65MB付近を上下しているんだよな。
どうしてくれよう。
再起動してみても同じなので、多分、ソフトをバージョンアップするごとに使用メモリ容量が増えてるんだろうとは思う。


ん〜、頓挫してるサーバ移行の作業、再開しようかな…

*1:Linuxは、メモリの空き容量があったらバッファやキャッシュで有効利用するので、topコマンドでは正確な空きメモリ容量が分からない。