vmstat
性能解析や障害解析を行う時に使うコマンドで、CPUやメモリーの状態を見ることのできるコマンド
一番シンプルな使い方は
vmstat 数字
で、この時間ごとのリアルタイムのデータを見ることができる
[root@localhost ~]# vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
4 0 0 1008832 1008 429716 0 0 1 1 42 68 0 0 99 0 0
6 0 0 1007856 1008 429716 0 0 0 0 2269 614 96 4 0 0 0
r CPUへのアクセスを待っているものの数
b 入力待ちになっている物の数
普通0~3程度bの値が多くなっているようならディスクの問題?
swpd 仮想メモリー量
free 空きメモリー量
buff バッファにしようされているメモリー量
cache キャッシュページとして使用されているメモリーの量
メモリーの量なのでそこまですごく気にする必要はない
si ディスクからスワイプインしたディスクメモリー量
so ディスクからスワイプアウトしたディスクメモリー量
物理メモリーが足りて入ればそこまで値が上がらないところ
bi ブロックデバイスから受け取ったブロック
bo ブロックデバイスに送られたブロック
大きなファイルの移動などがおきたときに値が変わる場所
ハードディスクの性能に関係している
高い状態が長時間続いているなら割り込みもできないという状態なので、ディスクを増やすかサーバーの分散を必要としている
in 毎秒の割り込み回数
cs 毎秒のコンテキストスイッチの回数
サーバーの負荷が上がるときにあがる部分。あまりに高いようだと負荷耐性が落ちているということ
システムの見直しをしたほうがいいかも
us ユーザーが使ったCPUの割合
sy システムが使ったCPUの割合
id CPUのアイドル
wa IOの待ち時間
st CPU使用率
idは通常90%以上あると安定しているサーバー
瞬間的にCPUが使われることは当然あるが、長い時間使用率が高いと耐えられなくなってるということ
システムの見直しをしたほうがいい
iostat
i/oの統計情報を出力するコマンド
I/Oとは、Input/Outputの略
オプションとして数字を指定することで一定間隔のデータを見ることができる
%user
CPU総時間当たりのユーザー空間での実行時間の割合(%)
%system
CPU総時間当たりのカーネル空間での実行時間の割合(%)
%iowait
CPU総時間当たりのI/O待ち時間の割合(%)
%idle
CPU総時間当たりのアイドル時間の割合(%)
この辺の値に特に注意
top
システム全体の負荷を調べる
参考
load average:処理を待っているタスク
この値が大きいからといってそく、CPUの性能が劣るというわけではない
average: 0.00, 0.00, 0.00
で値が並んでいて左から1分 5分 15分となっている
左が大きければ直近の数分間に急に負荷がかかったということ
これでどういった負荷がかかっているかおおよそのあたりをつけて、sarで過去のパフォーマンスデータを確認する
sar
sar -s 11:00:00 -e 12:00:00
のように時間を指定したりして過去ログをみることができる
%user上昇
httpdやmysqlなどの特定アプリケーションでCPUが消費されている
psコマンド等で対象のアプリケーションを確認
%system上昇
コンテキストスイッチが頻発している
httpdへのアクセス集中が発生していないか等を確認
%iowait上昇
メモリ不足でswapアウトしている
コピー処理などの大きなディスクIOが発生している
プロセスの確認や、メモリ状況を調べる。