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

2015年5月14日

サーバー プログラミング 特集

サーバーのレスポンスにおいて、アクセスの増加の検知はとても重要です。 フロントサイドと呼ばれるサーバーは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割り程度でフロントサーバーの台数をスケールさせることで安定運用できると思います。

このブログを検索

ごあいさつ

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