httpdプロセスのメモリ使用量をワンライナーで表示する

最近、何度かサーバーのメモリの使用情報を調べる期間があったのですまとめておきます。

対象システムはCentOS6.7。この手の作業が求められる状況は何かシステム障害が発生している時です。
そういう状況では準備作業することもままならないので、すぐに使えるOS標準のコマンドで対処します。

サーバーの状態を確認するならまずはtopコマンド。

ヘッダーの部分でサーバーの搭載メモリ量と空きメモリ量がどんな感じ把握できる。

今の値を知りたいだけならpsコマンドとawkを組み合わせる

$ ps aux | awk '/http[d]/{s+=$6}END{printf("%\04710d\n",s)}'
うっかり数値の桁を読み違えたりしないように桁合わせとカンマを入れておくのがポイントです。
88,632

topコマンドみたいにずっと状態をワッチしたいならbashで全体をループさせてしまう。

$ while true; do ps aux | awk '/http[d]/{s+=$6}END{printf("%\04710d\n",s)}'; sleep 1; done
88,632
88,632
88,632
88,632
88,632
88,632
88,632

たまに画面をチラ見すだけ値と一緒に時刻も表示する。ついでにあとで値を使って集計できるようにファイルにも保存しておく。
$ while true; do dt=`date '+%Y/%m/%d-%H:%M'`;echo -n $dt;ps aux | awk '/http[d]/{s+=$6}END{printf("%\04710d\n",s)}'; sleep 1; done | tee res.log

2017/11/15-14:31 83,912
2017/11/15-14:31 83,912
2017/11/15-14:31 83,912
2017/11/15-14:31 83,912
2017/11/15-14:31 83,912
2017/11/15-14:31 83,912
2017/11/15-14:31 83,912
2017/11/15-14:31 83,912

ありゃリャ、コマンドが長すぎてコピペ操作も思わず指先に力が入ってしまうほどの長さになってしまった。

所有している本中ではトップクラスの厚さ。めくるたびに何か発見がある。bashは学習コストも低いし、仕事でサーバー作業するならこれほど作業効率を上げてくれる道具はないです。