サーバーの負荷原因一覧(vmstatは神)
  
    # vmstat 1 で一秒ごとにコマンド実行
    
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
    
    procs
        r(run queue)・・・実行待ちのプロセス数
        b・・・本来は実行可能だが何らかの理由によって処理が停止しているプロセス数
    memory
        swpd・・・スワップの使用量
        free・・・空きメモリ容量
        buff・・・カーネルがバッファ領域として利用しているメモリ容量
        cache・・・キャッシュとして用いられているメモリ容量
    swap
        si・・・スワップイン(スワップ領域に退避していたデータを物理メモリーに書き戻す)容量
        so・・・スワップアウト(必要のないデータを物理メモリーからスワップ領域に書き込みしている)容量
    io
        bi・・・ブロック・デバイスから受け取ったブロック数
        bo・・・ブロック・デバイスに送られたブロック数
    system
        in・・・1秒あたりの割り込み回数
        cs・・・1秒あたりのコンテキストスイッチの回数
    cpu
        us・・・カーネル以外が使用したCPU使用率
        sy・・・カーネルが使用したCPU使用率
        id・・・アイドル状態の割合
        wa・・・I/Oウェイトにかかった割合
        st・・・Xenなどで、別のDOMが使用したCPU割合
    
    その前にそもそもネットワークに負荷があるだけではないかを確認
    
    ミドルウェア
    ・ApacheのMaxClientが少なすぎる
    ・MySQLのmax_connectionsが少なすぎる
    
    CPUとロードアベレージ
    ・CPUに負荷をかけると、cpuのusやsyが上昇する
    ・ユーザプロセスだけで負荷が発生している場合には、usが上昇してsyは変化しない
    ・多くのプロセスを並行して実行させると、systemのcsが上昇する
    ・カーネルの呼び出し(システムコール)を行うと、syが上昇するとともに、csの値も増加する
    ・実行中のプロセスの数がprocsのrに表示される
    ・procsのrと、ロードアベレージの値は、同じ値へと近づく
トップへ