サーバーのレスポンスにおいて、アクセスの増加の検知はとても重要です。
フロントサイドと呼ばれるサーバーはapacheのタスク数を計測することで、検知が可能になります。
今回はタスク数(process数=proc数)として計測しますが、事前に対象サーバーのprocess数の上限値を知っておく必要があります。
多くはIOの性能によって左右されますが、CPUスペック、ストレージドライブのスペック、メモりのスペック、などが同じであれば、大体の性能値は同じになる傾向がありますので、大体の間隔を身につけると、以後はそれを元に行うといいかと思います。
大体の目安
HDD : 600 proc
SSD : 1200 proc
このぐらいのざっくりした間隔で閾値を決めてもいいと思いますが、限界値を一度性能テストしてみることをオススメします。
やりたい事
psコマンドでのプロセス一覧の数を取得する。
ソースコード
health-proc.sh
#!/bin/bash
DIR=`dirname $0`
dataFile=$DIR"/servers.list"
while read line
do
if [ -n "${line}" ]
then
echo ${line}"t: `ssh -no 'ConnectTimeout 10' ${line} ps -e | wc -l'`";
fi
done<$dataFile
解説
1、「ps -e」コマンドを実行し、タスク一覧の取得
2、「wc」コマンドで行数(タスク数)の取得
使い方
1、「servers.list」ファイルに対象サーバーを改行区切りでいくつでも保存する。
2、以下のコマンドを叩くだけ(任意位置から叩いてもOK)
$ sh health-cpu.sh
192.168.33.1 : 120
192.168.33.2 : 116
192.168.33.3 : 100
192.168.33.4 : 140
192.168.33.5 : 135
192.168.33.6 : 128
proc数には、システムで使用しているprocessも含まれているので、apacheのアクセスが0の時でも90-100ぐらいの値になっていると思います。
MAX上限値の7割り程度でフロントサーバーの台数をスケールさせることで安定運用できると思います。
0 件のコメント:
コメントを投稿