サーバの起動からサービスの提供まで、とりあえず説明してきました。
これまで、業務上で構築してきた時も含めて困った事がいくつかあります。
障害発生時にいつから問題が発生したか分からない。
徐々に悪化している事を検知できない。
今の状態が適正か判断できない。。
理由は簡単で、平常の状態を把握していないからです。
昔どうだったけかな?と振り返ろうにも情報が無い。
そんな訳で、最近は運用系の物については必ずsyslogサーバとsysstatを導入するようにしています。
syslogはネットワーク等複数ある時だけですが。
今回はVPSですので、特に準備はしませんでした。
ソンなわけで、ここではsysstatの設定について。
sysstatはサーバの様々な情報を収集する事ができ、非常にシンプル且つ簡易な物です。
現状を知る為にも入れる事が推奨されます。
インストールはいつもの通りコマンド一発
yum -y install sysstat
これでsysstatのデフォルトインストールが完了です。
sysstatはインストールと同時に初期設定され、10分平均の様々な情報を収集し始めます。
デフォルトでは30日(Redhat6の場合10日?)の情報を貯めているようです。
設定変更で日数を変更できますが、今回は変更しません。
理由は次章で記載するcactiと言うツールをインストールし、管理する為です。
sysstatは上記の通り、ある一定の期日でサイクリックに情報を収集する為、過去の情報を取得する事が困難になります。
とりあえず、CPUとメモリの情報を残す為に、cronで自動的にデータを切り出す事にします。
sarのコマンドを実行するシェルを作成します。
sarcmd.sh
/usr/bin/sar > /var/log/usr/sar-u-"`date +%Y%m%d`"
/usr/bin/sar -r > /var/log/usr/sar-r-"`date +%Y%m%d`"
上記のコマンドで/var/log/usr以下にsar-u-yyyymmdd、sar-r-yyyymmddのファイルを実行日毎に作成するようにできます。
これをさらにcronで実行します。
今回は仮に/var/sh/sarcmd.shの位置にシェルを置く事として、記載しています。
ログフォルダ作成(/var/log/usr/)
mkdir /var/log/usr/
crontab -e
58 23 * * * /var/sh/sarcmd.sh
以上で設定完了です。
/var/log/usr/以下に毎晩ファイルが作成されていきます。
さて、sar(sysstat)ですが、様々な情報を取得する事ができます。
私が過去に使った物。
sar (-u):一番良く使いますが、現在のCPU使用率が分かります。
sar -n DEV:ネットワークトラフィックを知る為に利用します。
sar -b:Disk I/Oを確認できます。
sar -r:メモリとスワップの状況を確認できます。
サーバ障害のうち、負荷が高いなと感じた時は、sar -uでCPUの状況を確認しますが、瞬間の状況としては、topコマンドの方が良く分かります。
これで使用率が高い物が負荷になっている事になります。
Load AverageがCPU Core数の2倍を超えるようだと、負荷は右肩上がりに上がり、原因を取り除かないと負荷が下がらない事が想定できます。
この時sarで分かるのは、何時何分位から負荷が高かったのかな?と言う事です。
次に、CPU負荷が高く無いのに遅いと感じる場合。
ネットワーク負荷が考えられます。
sar -n DEVでポート毎の上り下りのトラフィックが見えます。
これがNICの限界で張り付いていれば、これが負荷の原因です。
データのアップロード・ダウンロードが原因でしょうから、コンテンツ内容や使い方を考えないといけないかも知れません。
sar -bはCPU負荷が高いが、なんの処理か分からない時に、Disk I/Oが原因となっている場合があります。
その確認に有効なコマンドとなります。
HDDの性能は単純にDsikの性能の他、RAID構成やデータの扱い方に原因がある場合もあります。
昔はスループットで考えていましたが、昨今のトレンドはIOPS(1秒あたりのIO回数)になってきてるようです。
Diskの性能はインターフェース(EATA/SATA/SCSI/SAS等))とディスク密度、回転数、シークタイム、それらを統合したIOPSなんかで決まってきます。
こうした情報と、実際のアクセス状況を把握するには有用なツールと言えます。
最後にsar -rですが、昔ほどメモリが少なくないので、あまり使わないですね。
そんなわけで、こうした情報の把握の為、sysstatのインストールは個人的には必須だと思っています。
|