刺身タンポポ職人なう

文系女子大生がエンジニアとして就職してその後

監視ツール勉強会のめも

ひさびさに書く(・∀・)

munin

  • メリット:データサイズが肥大化しない
  • デメリット:データ取得の感覚が5分単位

zabbix

  • メリット:データ取得の間隔が1分単位
  • デメリット:データが肥大化しやすい

munin見るポイント

load average

  • 待ち状態になっているプロセスの平均数
  • 仮に恒常的に1だったら、処理中のプロセスがずっと1あるという状態になるので CPUのコア数以上になっている場合は処理が間に合ってないと判断する

CPU usage

  • 実際にCPUが何用途で使われているか
  • systemはカーネルとかレイヤーの低い部分のレイヤー層でつかわれているやつ
  • userはミドルウェアとかの上の処理
  • owaitはインプット・アウトプットでCPU側で待が発生している状態(上側の紺のやつ) -> ロードアベレージで処理待が発生しているのはどっちの部分か判断できる

Memory usage

  • メモリが足りない時に確保しておくところ
  • 緑の部分が上限に達してないかどうかでメモリが足りているか判断する
  • 青のはばが大きくなってきたら、OS側が自然に確保してきてくれているということ
  • サーバー上でfreeコマンドで現在のメモリ所持方法を検索できる

Apache

Apache process

  • 何件のアクセスを同時に受けれるようにするかという設定がmax clients

tomcat

tomcat thread

  • スレッド上限の設定を見れる
  • busyが現在使われているthread
  • idleが受け入れを許可しているthread
  • maxが上限

JVM

Heap Usage

  • JVMガベージコレクションがどうゆう推移で実行されているかがわかる
  • 黄色い部分がold領域、青い部分がnew領域
  • スレッド数減らしてるのにold領域が全然下がってくれないとかあったら問題かもしれない
  • 上の濃い緑の部分はPermanent領域で、クラスを呼ぶオブジェクト領域(起動してから一定)

mysql

slow queries

  • スロークエリをグラフで確認して一分に一回くらい発生しているグラフ
  • サーバーの/var/log/mysql/mysql-slow.logでスロークエリのログを確認する

connections

  • mysql側のmax connection
  • mysql側で最大のコネクションが決められて、tomcatのthread数とmysql側のコネクション数が足りてるか見れる

そのた

  • masterとslaveでどれくらいの差異が発生しているか
  • ssh接続してmysqlのなかで mysql> show slave status\G を実行する -> Second_Behind_Master が0以外だとmasterとslaveで同期処理に差異が発生している状態になっている

redis

  • redisで設定するメモリは物理メモリの倍くらいで
  • 使っている容量の倍のメモリがないと失敗する

memcached

  • トラフィックが上限に達するとか
  • メモリの何を保存するかをちゃんと検討する

サーバーを増やすタイミングとは

  • ロードアベレージをみて、CPUを使っているようだったら増やす
  • disc ioやslowqueryをみて、slaveを増やすのかメモリを増やすのか判断する
  • linuxで空きメモリがどんくらいあるか確認する方法