仙台の山奥で自転車に乗ったり転んだり

愛車の GIOS でサイクリングしたりポタリングしたり、それをブログに記録してみたり。ロードバイクや自転車や坂のことを書いてみたり。ときたまプログラムのことを忘れないようにメモってみたり。

Apacheプロセスの稼働(メモリ確保)状況をモニタリング

Apacheプロセスのメモリ確保状況をしたくて、↓のスクリプトでモニタリングしてみる。ついでに、合計も出してみる。

[dev]~ $ cat monitor_proc.sh
#!/bin/sh

if [ $# -ne 1 ]; then
    echo "usage: #{0} [pname]"
    exit 1
fi

pname=$1
pidlist=$(pgrep -d, -x $pname)
if [ ! -z "${pidlist}" ]; then
    printf ""
    # vsz=MiB, rss=MB
    ps -p $pidlist -o vsz,rss | awk 'BEGIN{i=0;v=0;r=0}{i++;v+=$1;r+=$2}END{printf("# sum\ncount\tvsz\trss\n%d\t%.2f\t%.2f\n\n", i, v/1024, r/1024)}'
    ps -p $pidlist -o pid -o vsz -o rss -o args
fi

[dev]~ $ watch -n1 ./monitor_proc.sh httpd
Every 1.0s: ./monitor_proc.sh httpd                                                ...

# sum
count   vsz     rss
...

  PID    VSZ   RSS COMMAND
...
[dev]~ $ ps -eo rss | awk 'BEGIN{r=0}{r+=$0}END{printf("%.2fMB\n\n", r/1024)}'
...

モリー管理のしくみがむずかしくてよくわからない……。

http://linuxjm.sourceforge.jp/html/procps/man1/ps.1.html
http://discypus.jp/wiki/?Linux%2F%A5%E1%A5%E2%A5%EA%B3%CE%CA%DD%A4%C8VSZ%A4%C8RSS