2012-03-13 6 views
0

일부 CPU 성능 관련 작업을 수행하고 있습니다. 그리고 CPU로드가 프로세서 대기열 (대기열)에 크게 의존한다는 사실을 알게되었습니다.어떻게 최대 프로세서 큐 길이를 찾을 수 있습니까?

프로세서 큐의 최대 길이를 결정하는 방법이 있습니까? 한 순간에 얼마나 많은 프로세스가 대기 상태에있을 수 있는지 알고 싶습니다.

저는 Intel 환경에서 Intel i5 프로세서를 사용하고 있습니다.

+1

'CPU 부하는 프로세서 대기열에 크게 의존합니다'라고합니다. '프로세서 대기열'이 실행되지 않는 준비 스레드 세트를 참조한다고 가정하면 대기열 수가 0보다 큰 경우 전체 CPU로드는 100 %입니다. 대기 스레드는 대개 '대기'로 표시되지 않습니다. CPU를 기다리고 있습니다. '대기'는 일반적으로 '실행 가능하지 않음'으로 이해됩니다. IO 또는 동기화 객체와 같은 비 CPU 리소스를 기다리고 있습니다. –

+0

오! 죄송합니다 다음 오타 오류. 나는 실제로 최대 허용 가능한 '실행 가능한'프로세스를 한 순간에 알고 싶다. 찾을 수 있습니까? – bobby

+0

쉬운 방법은 그것을 시도하는 것입니다. 무언가가 깨질 때까지 낮은 우선 순위의 루피 스레드를 만듭니다 (작업 저장 :). –

답변

0

nr_running()은 모든 온라인 CPU에서 실행 가능한 프로세스의 현재 합계를 반환하는 함수입니다. 최대 허용치가 무엇을 의미하는지 확신 할 수 없습니까? 하나의 프로세스가 CPU에서 실행 중이라면 이론적으로 다른 모든 프로세스는 runnable 상태 일 수 있습니다. 이것에 대한 제한이 없습니다. (시스템의 최대 프로세스 수에는 상한선이 있지만, 구형 리눅스 커널에서는 512였습니다. 그러나 최신 커널에서는 훨씬 더 많았습니다.)

CPU로드에 대해 배우고 싶다면, 당신이 sched.c에 커널 내부 등 calc_load() 및 기타 기능을 계산로드도 this article 통해 이동하는 것이 좋습니다

프로세서 실행 큐

How to find the processor queue length in linux

또한 배울 여기에 같은 명령을 통해 검사 할 수 이 당신에게 머리를주는 더 희망

http://www.ibm.com/developerworks/linux/library/l-scheduler/

여기 실행 큐에 대해 CPU 부하 추정에 시작합니다.

관련 문제