공정 스케줄링 정보 추출

공정 스케줄링 정보 추출

각 프로세서 코어에서 가장 많이 사용되는 프로세스를 추출하고 해당 정보(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}

이것이 원하는 것이 아니라면 더 자세히 질문해야 합니다. 이 파일에서 보고 싶은 내용을 설명하는 자세한 내용을 포함하도록 원본 게시물을 수정하세요.

관련 정보