備忘録です(リンク集かもw)。
サーバーのボトルネックにはだいたいCPU、メモリ、ディスクI/O、ネットワーク、4つの原因が考えられる。
http://nosa.cocolog-nifty.com/sanonosa/2004/06/post.html
CPUのボトルネック調査
topコマンドやwコマンドでロードアベレージ、CPU使用率を調べる。ロードアベレージはCPU個数以下の数値が望ましいらしい。
詳しい読み方については、
http://d.hatena.ne.jp/naoya/20070222/1172116665
が非常に参考になる。
また、vmstatコマンドのuser、system、idle時間の割合も確認すると良い。
マルチプロセッサの場合はmpstatコマンドによって各CPUの負荷を知ることができる。
各プロセスの詳しい負荷を知るためにpsコマンドを利用する方法もある。
CPUへの負荷状況を時系列で知りたい場合には、
サーバーにsysstatがインストールされていればsarコマンドを利用することができる。
http://www.atmarkit.co.jp/flinux/rensai/root07/root07b.html (@IT記事)
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/admin-guide/s1-resource-rhlspec.html (mpstatについても記述あり)
http://dendening.blog106.fc2.com/blog-entry-5.html (iostat、
vmstatについても記述あり)
各コマンドのオプション、パラメータ、項目についてはmanコマンドで確認のこと。また、下記Webサイトでも確認できる。
http://www.linux.or.jp/JM/index.html
メモリのボトルネック調査
freeコマンドやvmstatコマンドでメモリの使用状況を知ることができる。コマンドの使い方、値の読み方については
http://www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html
が参考になる。
ディスクI/Oのボトルネック調査
iostatやvmstatコマンドを利用してディスクI/O状況、スワップ状況を知ることができる。
またsarコマンドでも知ることができる。スワップについてはメモリのボトルネック調査についても参照すること。
ネットワークのボトルネック調査
netstat -an | wc -l でだいたいのコネクション数を知ることができる。netstatコマンド、 wcコマンドについてはそれぞれmanコマンドで確認のこと。