"실행 중인" 프로세스가 그토록 적은 이유는 무엇입니까?

"실행 중인" 프로세스가 그토록 적은 이유는 무엇입니까?

모든 BSD/Linux/MacOS 및 Solaris에서 나는 관찰을 했습니다. 시스템이 아무리 바빠도 top항상 실행 중인 프로세스가 거의 보고되지 않습니다(보통 1-2개).

제한된 이해에 따르면 프로세스는 CPU 시간을 사용 중이거나 CPU 시간을 사용할 수 있을 때까지 기다리는 경우 "실행 중" 상태입니다.

시나리오는 다음과 같습니다. SSH를 사용하여 VNC 터널을 설정한 다음 top원격 시스템의 터미널 에뮬레이터에서 이를 실행합니다.

  • top그 자체는 "실행 중인" 프로세스로 나열됩니다(이해 가능).
  • sshd나열되어 있지만 "실행 중"이 아닙니다.
  • Xvnc나열되어 있지만 "실행 중"이 아닙니다.

그러나 sshd터널링된 VNC 트래픽 Xvnc은 내 화면을 계속 업데이트하는데, 어떻게 CPU 시간을 사용하지 않을 수 있습니까?

CPU 시간을 사용하고 있다면 왜 "실행"되지 않습니까?

답변1

시간 문제라고 생각합니다. topN초마다 CPU 상태를 확인합니다. 검사를 실행할 때 top,가지다시스템 상태를 적극적으로 확인하고 있기 때문에 활성화됩니다. 이를 확인하는 좋은 방법은 업데이트 시간을 줄이고 top프로세스가 진행되는 것을 지켜보는 것입니다! 제안된 대로 man top:

   o  The  user  interface,  through  prompts and help, intentionally
      implies that the delay interval is limited to tenths of a  sec‐
      ond.   However,  you're  free to set any desired delay.  If you
      want to see Linux at his scheduling best, try a  delay  of  .09
      seconds or less.

      For this experiment, under x-windows open an xterm and maximize
      it.  Then do the following:
        . provide a scheduling boost and tiny delay via:
            nice -n -10 top -d.09
        . keep sorted column highlighting Off so as to
          minimize path length
        . turn On reverse row highlighting for emphasis
        . try various sort columns (TIME/MEM work well),
          and normal or reverse sorts to bring the most
          active processes into view

      What you'll see is a very busy Linux  doing  what  he's  always
      done  for you, but there was no program available to illustrate
      this.

이것을 시도하면 더 많은 프로세스가 R모드에 들어가는 것을 볼 수 있습니다. 또한 top배치 모드에서 몇 차례 실행을 시도하고 실행 중인 것으로 표시된 프로세스를 수집할 수도 있습니다.

sudo nice -n -10 top -d.09 -bn 100 | awk '$8~/R/{print $NF}' | sort -u

내 시스템에서는 현재 로드 상태(공개 SSH 터널 포함)에서 다음 프로세스를 얻습니다.

cinnamon
firefox
kworker/0:1
kworker/1:2
kworker/2:2
kworker/3:0
plugin-containe
ssh
tint2
top
Xorg

답변2

오늘날 대부분의 프로세스는 네트워크의 패킷, 디스크 I/O 완료, 사람이 키보드로 입력하거나 마우스를 사용하는 등 어떤 일이 일어나기를 기다리고 있으며 이러한 빠른 CPU는 표준이 되었습니다.

일부 사진이나 동영상 처리와 같이 계산 집약적인 프로세스를 시작하면 실행 중인 것으로 나타납니다.

물론 top, 프로세스를 분석할 때 항상 분명한 이유로 실행되고 있는 자신을 발견하게 될 것입니다.

표시된 상태는 평균이 아니라 스냅샷이므로 top샘플링 이유로 인해 항상 절전 모드로 표시되는 프로세스보다 프로세스가 훨씬 더 바쁩니다.

관련 정보