/proc/[PID]/stat 를 열어보면 프로세스 리소스 사용률에 대한 다양한 정보가 출련된다.
특정 PID 로 cpu 사용률을 확인하자.
vi cpu_proc.sh
#!/bin/bash # calculate the cpu usage of a single process [ -z $1 ] && echo "usage: $0 <pid>" sfile=/proc/$1/stat if [ ! -r $sfile ]; then echo "pid $1 not found in /proc" ; exit 1; fi proctime=$(cat $sfile|awk '{print $14}') totaltime=$(grep '^cpu ' /proc/stat |awk '{sum=$2+$3+$4+$5+$6+$7+$8+$9+$10; print sum}') echo "time ratio cpu%" while [ 1 ]; do sleep 1 prevproctime=$proctime prevtotaltime=$totaltime proctime=$(cat $sfile|awk '{print $14}') totaltime=$(grep '^cpu ' /proc/stat |awk '{sum=$2+$3+$4+$5+$6+$7+$8+$9+$10; print sum}') ratio=$(echo "scale=2;($proctime - $prevproctime) / ($totaltime - $prevtotaltime)"|bc -l) echo "$(date --rfc-3339=seconds); $ratio; $(echo "$ratio*100"|bc -l)" done |
결과
>./cpu_proc.sh 60766 time ratio cpu% 2016-05-10 15:39:29+09:00; .02; 2.00 2016-05-10 15:39:30+09:00; .02; 2.00 2016-05-10 15:39:31+09:00; .02; 2.00 2016-05-10 15:39:32+09:00; .02; 2.00 2016-05-10 15:39:33+09:00; .02; 2.00 2016-05-10 15:39:34+09:00; .01; 1.00 2016-05-10 15:39:35+09:00; 0; 0 2016-05-10 15:39:36+09:00; 0; 0 2016-05-10 15:39:37+09:00; .01; 1.00 2016-05-10 15:39:38+09:00; .02; 2.00 |
'LinuX' 카테고리의 다른 글
sed 사용법 (0) | 2015.08.24 |
---|---|
[리눅스] 검색 및 출력 (find, grep, egrep, awk, cut, sed, sort, uniq, wc) (0) | 2015.08.04 |
[Linux] sar 명령어를 통한 시스템 모니터링 (0) | 2015.02.12 |
split 명령어 (0) | 2014.10.13 |
고급 Linux 커맨드 마스터 가이드, 제 2 부 (0) | 2009.06.23 |