| 2005年12月18日 |
サーバの性能管理
性能管理するのに大切なのが、「ハードウェア資源の利用率」を把握すること。
特に重要なのが、
1.CPU
2.メモリ
3.ディスク
4.回線(ネットワーク)
CPUの使用率を把握するには、「iostat」コマンドが使われる。
「%user」がアプリケーションのCPU使用率を表し、
「%sys」がカーネルのCPU使用率を表し、
「%idle」がCPUの未使用率を表している。
次にCPUの負荷を把握するには「uptime」コマンドが使われる。
直近の1分、5分、15分の平均CPU負荷が表示される。(load average)
CPUの負荷とは、CPUの割り当てを待っているプロセス数のことをいう。
CPUの割り当てを待っているプロセスが多いということはそれだけCPUの負荷が高いということである。
目安としては、CPU負荷が2以上が続くようであれば、何か対応が必要であり、
常時6以上ならば、トラブルが発生していると判断してよい。
ちなみに、CPU使用率が低いのに、CPUの負荷が高いという場合がある。
それは、ディスクへの入出力待ちが多い場合であることが多い。
その場合は、ディスクへの入出力を頻繁に行っているプロセスを夜の4時や5時といった時間へ移すとか、高性能ディスクに交換するとかの対応が必要になる。
メモリの使用率を把握するには「free」コマンドが使われる。
「total」はカーネル・メモリを除いた総メモリを表し、
「used」は使用中のメモリ量を表し、
「free」は空きメモリを表す。(単位はKB)
ただし、「-/+ buffers/cache」というのが、ディスクへのアクセスを高速化するためのバッファ分であるので、実際の空きメモリは、この項目のfreeを参照すればOK。
メモリの性能を把握するには「vmstat」コマンドが使われる。
「si」はスワップからメモリへ返されたメモリ量(KB/秒)
「so」はメモリからスワップへ出されたメモリ量(KB/秒)
であり、この数値をみれば、スワップが頻繁に発生しているか把握できる。
スワップが使われるということは、メモリが足りないために、一時的にディスクを仮想メモリとして使っているということなので、メモリ不足だと判断できる。
また、iostatやvmstatをみて、ディスク入出力の総量を把握できる。
vmstatのbは、入出力処理完了待ち状態のプロセス数を表している。
この値が大きいと、プロセスが要求する入出力処理をディスクがさばききれていないということがわかる。ただし、メモリ不足のためにスワップ領域が使われ、ディスクの入出力が増えているという可能性もある。
ディスクを高性能にするといった対応をうつかどうかの判断基準になる。
以下は、「サーバの性能管理」の関連エントリーです。
この記事を読んだ人はこんな記事も読んでいます
- 自宅サーバがやってきた! (99 hits)
- プラスマイナスゼロの加湿器がやってきた! (24 hits)
- PostgreSQLのパラメータチューニング (6 hits)
- 「複数CPUならload averageはCPU数で割れ」は正しいか?(つづき) (5 hits)
- 土鍋がやってくる!? (4 hits)
トラックバック
このエントリーのトラックバックURL:
http://shoulder.s51.coreserver.jp/mt/mt-tb.cgi/244



