- TOP - TALK - PROF - LINK -
[ Linuxに戻る ] [ 雑学に戻る ]

<<更新日:2012/03/16>>

sysstatインストール


サーバの起動からサービスの提供まで、とりあえず説明してきました。
これまで、業務上で構築してきた時も含めて困った事がいくつかあります。
  • 障害発生時にいつから問題が発生したか分からない。

  • 徐々に悪化している事を検知できない。

  • 今の状態が適正か判断できない。。


  • 理由は簡単で、平常の状態を把握していないからです。
    昔どうだったけかな?と振り返ろうにも情報が無い。

    そんな訳で、最近は運用系の物については必ず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のインストールは個人的には必須だと思っています。