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