리눅스에서 모든 PID를 사용해보십시오

리눅스에서 모든 PID를 사용해보십시오

다음 지침과 같이 특정 PID가 아닌 순서대로 PID를 시도하고 싶습니다.

 perf stat -p <PID> -e cycles,instructions,cache-references,cache- 
misses,bus-cycles -a sleep 10

 #this is example of 1 specefic PID
 perf stat -p 3347 -e cycles,instructions,cache-references,cache-misses,bus-cycles -a sleep 10

모든 PID를 시도하고 싶은데 모든 PID를 시도하려면 <PID> 대신 무엇을 써야 할지 모르겠습니다.

답변1

반복하고 싶다면모두시스템에서 실행 중인 pid( /procdir이 필요하며 와 다름 Mac/*BSD):

for pid in /proc/[0-9]*; do printf '%s\n' "${pid##*/}"; done

그래서:

for pid in /proc/[0-9]*; do
    perf stat -p "${pid##*/}" -e cycles,instructions,cache-references,cache-misses,bus-cycles -a 2>&1 >> perf.txt
    sleep 10 
done

반대로 리소스 집약적인 프로세스를 기반으로 하려는 경우 top다음과 같은 방법이 있습니다.

for pid in $(top -bn1 | awk '/ PID /{p=1;next}(p==1){print $1}'); do ...

삭제되었습니다 n1.topMac/*BSD

관련 정보