[Server] サーバー管理ツールを作る #6「LoadAverage値の取得」

2015年5月25日

Tips サーバー

サーバーの処理がアクセス数に対して間に合っていない場合、処理の行列ができます。 そんな行列の様子を値にしたのがLoadAverageの値ですが、CPU別にタスク待ち状態になっている数を表示するので、値がCPUのスレッド数を超えていると要注意です。

やりたい事

topコマンドでLAの値が取得できますが、topコマンドは重いので「/proc/loadavg」から取得できる値で代用したいと思います。

ソースコード

#!/bin/bash DIR=`dirname $0` dataFile=$DIR"/servers.list" while read line do if [ -n "${line}" ] then echo "`ssh -no 'ConnectTimeout 3' ${target} cat /proc/loadavg | awk '{print $1\"/\"$2\"/\"$3}'`"; fi done<$dataFile

解説

1, /proc/loadavgの内容を取得 2, 内容をセパレートして、[1分足 , 5分足 , 15分足]として取得する

解説

laの値が増えるということはサーバー処理が間に合っていないという事なので、値の増加を定期で計測しましょう。 通常は少数値になっていると思いますが、1以上が頻発していると、サーバー構成やプログラム処理などを見直しましょう。 ※たまにプログラムの不具合で値が跳ね上がる場合もあります。 アクセスが少ない状態の時に、無駄なモジュールやプロセスが立ち上がっていない状態にしておきましょう。

使い方

1, 「servers.list」ファイルに対象サーバーを改行区切りでいくつでも保存する。 2, 以下のコマンドを叩くだけ(任意位置から叩いてもOK) $ sh health-la.sh 192.168.33.1 : 0.20/0.27/0.20 192.168.33.2 : 0.10/0.15/0.16 192.168.33.3 : 0.09/0.15/0.16 192.168.33.4 : 0.20/0.27/0.20 192.168.33.5 : 1.10/0.65/0.36 192.168.33.6 : 0.09/0.15/0.16 LAの値で注意するポイントは、一番直近の1分足と期間の大きな5分足、15分足の値でどういう傾向になっているかで判断します。 1分足の方が小さい場合は、安定トレンドになっており、逆の場合は、アクセス過多トレンドです。 負荷分散を考慮したサーバー構成にしておくことで、こういった場合にスケールして対応することができるので、オススメします。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ