안녕하세요.
하나의 프로세스(XXX : 22287)를 추적해서 현재 cpu사용량을 측정하려고 합니다.
XXX프로세스는 주기적으로 파일을 읽고 디비에 넣는 작업을 비규칙적으로 반복하고 있습니다.
한번에 많은 쓰레드를 생성하기도 하고 아무것도 안하기도 합니다.
먼저 top을 이용해서 뽑아보고
top -b -n 50 -d 2 -p 22287 | grep 22287
그리고 다음은 ps를 이용해서 결과를 로그로 저장하였습니다.(shell script사용: 5초에 한번씩 60번 반복)
for ((i=0;i<60;i++)); do
ps -C XXX -o user,pid,pcpu,pmem,comm,args | grep XXX >> $LOG
sleep5
done
근데 두개의 결과가 다르네요.
top에서는 cpu점유율이 매 결과마다 수치가 변동이 있는데
ps의 결과는 전부 똑같네요.
top과 ps의 결과 차이가 생기는 이유가 무엇인가요