각 프로세서 코어에서 가장 많이 사용되는 프로세스를 추출하고 해당 정보(PID 등)를 파일로 출력하고 싶습니다. top 또는 ps 명령을 사용하여 이 작업을 어떻게 수행합니까?
감사해요.
답변1
어때요?
ps -k -pcpu -O pcpu,psr
k 플래그는 CPU 비율을 나타내는 정렬 키입니다. Capital O는 출력을 변경하여 CPU 사용률과 프로세스가 실행 중인 현재 프로세서/CPU를 추가합니다. 다음과 같은 결과가 출력됩니다.
PID %CPU PSR S TTY TIME COMMAND
15049 5.8 2 S tty2 00:00:28 chrome
14808 4.3 1 S tty2 00:00:21 chrome
14448 3.9 5 S tty2 00:00:21 gnome-shell
15234 1.8 5 S tty2 00:00:08 chrome
14896 1.5 2 S tty2 00:00:07 chrome
14322 1.2 0 S tty2 00:00:06 Xorg
CPU 백분율은 시간 열을 실제 시간으로 나눈 값입니다. 바쁜 프로세스가 있다가 유휴 상태로 있으면 이상한 결과가 나타날 수 있습니다(그러나 전체 평균은 기대에 따라 여전히 높거나 낮을 것입니다).
"지난 몇 초 동안 내 CPU를 바쁘게 만든 이유"에 대한 답변을 얻으려면 top이 더 나은 도구입니다.
또한 프로세스가 CPU에서 앞뒤로 바운스되므로 때로는 CPU가 과열되는 이유를 파악하기 어려울 수 있습니다. 일반적으로 이것이 부하를 분산시키기를 원합니다.
답변2
PSOUTFILE=/tmp/ps-out.txt
ps -ef| sort -r -k7 | head -2 >> ${PSOUTFILE}
위 문단은 최상위 프로세스의 정보와 헤더 행을 가져와 각 열이 참조하는 내용을 해석하고 이를 지정된 파일에 씁니다. 열 머리글 행을 인쇄하지 않으려면 다음과 같이 수정할 수 있습니다.
PSOUTFILE=/tmp/ps-out.txt
ps -ef| sort -r -k7 | head -2 | tail -1 >> ${PSOUTFILE}
이것이 원하는 것이 아니라면 더 자세히 질문해야 합니다. 이 파일에서 보고 싶은 내용을 설명하는 자세한 내용을 포함하도록 원본 게시물을 수정하세요.