/proc/stat를 사용하여 시스템에서 실행 중인 프로세스 수를 가져옵니다.

/proc/stat를 사용하여 시스템에서 실행 중인 프로세스 수를 가져옵니다.

시스템에서 실행 중인 실제 프로세스 수를 확인하는 방법은 무엇입니까? 많은 기사에서 ps프로세스 수를 계산하는 데 사용을 언급합니다. 하지만 최근에 살펴보니 cat /proc/stat다음과 같이 출력됩니다.

cpu  972 0 1894 189609 236 26 490 0 0 0
cpu0 972 0 1894 189609 236 26 490 0 0 0
intr 101595 157 10 0 0 0 0 0 0 3 0 0 0 136 0 0 0 1406 0 0 14936 934 19133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 244344
btime 1405754990
processes 3912
procs_running 3
procs_blocked 0
softirq 122778 0 48263 439 15599 19037 0 1 0 7405 32034

프로세스 수는 3912로 표시됩니다. 비슷한 것을 사용하면 ps -A --no-headers | wc -l173개의 프로세스만 표시됩니다.

/proc/stat그렇게 더 많은 프로세스가 표시됩니까(3739개의 프로세스가 추가됨)? 누가 정확한 번호를 알려줬나요?

답변1

문서 보기proc(5), 당신은 이것을 보게 될 것입니다프로세스대지:

출시 이후 포크 수.

따라서 이것은 당신이 찾고 있는 숫자가 전혀 아닙니다. ps이미 알고 있듯이 이름에 숫자만 포함된 디렉터리를 계산하는 것도 /proc또 다른 접근 방식입니다.

답변2

스레드를 포함할지 여부에 따라 명령에 -L 옵션을 추가합니다 ps.

$ ps -A --no-headers | wc -l
359
$ ps -AL --no-headers | wc -l
967

ps는 기본적으로 스레드를 개별적으로 나열하지 않습니다. 스레드의 요점은 스레드가 다음과 같다는 것입니다. 멀티스레드 실행하나 안에프로세스 주소 공간.

관련 정보