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