Linux에서 CPU를 기다리는 프로세스 수를 얻는 방법은 무엇입니까?

Linux에서 CPU를 기다리는 프로세스 수를 얻는 방법은 무엇입니까?

CPU 사용률이 100%인 경우 다른 프로세스를 실행 대기열에 넣어야 합니다. 실행 대기열 크기를 얻으려면 어떤 명령을 사용할 수 있습니까? vmstat다음과 같이 CPU 관련 값을 반환하는 것 같습니다.

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 875128 576328 2147136    0    0     1     4    3   11  0  0 99  0  0

매뉴얼에 따르면 " r: 실행 가능한 프로세스 수(실행 중 또는 실행 대기 중)."에 따르면 이 열은 r실행 중이거나 대기 중인 프로세스 수를 나타냅니다. 대기 프로세스 수를 어떻게 알 수 있나요?

답변1

수량실행 가능procs_running프로세스는 다음과 같이 제공됩니다 /proc/stat.

awk '/procs_running/ { print $2 }' /proc/stat

사용 가능한 CPU 스레드 수(0에서 중지)를 빼면 예약 대기 중인 예약 단위(프로세스 또는 스레드) 수를 얻습니다. /proc/stat또한 이 행을 사용하여 사용 가능한 CPU 스레드 수를 확인할 수도 있습니다 cpu?. 포괄적인:

awk '/cpu[^ ]/ { nb = substr($1, 4); if (nb > nbcpus) nbcpus = nb };
/procs_running/ { runqueue = $2 - nbcpus; if (runqueue < 0) runqueue = 0; print runqueue }' /proc/stat

관련 정보