답변:
도움이되는지 모르겠지만 mpstat
유틸리티를 사용하여 개별 프로세서 (또는 코어)별로 CPU 사용량을 분석 할 수 있습니다 . 예를 들면 다음과 같습니다.
$ mpstat -P ALL 1
12:49:59 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
12:50:00 PM all 7.89 0.00 1.25 0.88 0.00 0.00 0.00 89.97 1359.00
12:50:00 PM 0 14.00 0.00 0.00 0.00 0.00 0.00 0.00 86.00 1043.00
12:50:00 PM 1 15.84 0.00 7.92 3.96 0.00 0.99 0.00 71.29 297.00
12:50:00 PM 2 3.96 0.00 0.00 1.98 0.00 0.99 0.00 93.07 0.00
12:50:00 PM 3 3.96 0.00 0.99 2.97 0.00 0.00 0.00 92.08 0.00
12:50:00 PM 4 4.00 0.00 0.00 0.00 0.00 0.00 0.00 96.00 0.00
12:50:00 PM 5 4.95 0.00 0.99 0.00 0.00 0.00 0.00 94.06 18.00
12:50:00 PM 6 10.89 0.00 0.99 0.00 0.00 0.00 0.00 88.12 0.00
12:50:00 PM 7 5.05 0.00 0.00 0.00 0.00 0.00 0.00 94.95 0.00
이 예에서 해당 CPU의 볼 수 0
, 1
, 그리고 6
그들의 나머지보다 더 많은 일을하고있다. 때로는 단일 CPU가 100 % 가까이에 있고 다른 CPU는 0에 있다는 것을 알 수 있습니다. 이는 단일 스레드이며 한 번에 하나의 CPU 만 사용할 수있는 프로그램 (또는 프로그램의 일부)의 표시 기일 수 있습니다.
mpstat
Fedora, RHEL 또는 CentOS 시스템에 설치하려면 을 사용하십시오 yum install sysstat
.
# aptitude search mpstat #
.
aptitude search systat
대신 시도하십시오 .
프로세스를 특정 CPU에 고정하지 않도록 명시 적으로 구성하지 않으면 모든 코어가 항상 사용중인 것으로 가정 할 수 있습니다. 스케줄러는 사용 가능한 다음 코어에 프로세스를 할당합니다. 예를 들어, "시스템 모니터"(그놈의 일부)는 내 컴퓨터의 4 코어 모두에서 거의 동일한 부하를 보여줍니다.
코어 사용 방법을 알려주는 응답이 여기에 표시됩니다.
그러나 이것은 실제로 당신에게 서비스를 제공하지 않습니다. 당신은 유지하지 않는 기본적인 가정을 만들었습니다. 당신의 직업은 스스로를 일부 핵심 집단으로 묶는 경향이 있습니다.
대신, 어떤 방식 으로든 "고정 된"상태를 유지하는 것을 구현하지 않으면 작업이 모든 코어에 분산됩니다. (참고 : 권장하지 않습니다. "없는 경우")
다른 전략은 다음과 같습니다. 특정 시스템에서 다른 사용자가 더 많은 작업을 추가 할 수 있다고 생각할 때 LOAD 레벨이 무엇인지 식별하십시오. 그런 다음로드 레벨이 해당 한계 아래로 내려갈 때 새 백그라운드 작업 만 제출하는 무언가를 빌드하십시오.
이런 방식으로이 솔루션은 코어 수에 독립적이며 휴대 성이 뛰어나고 유연하며 "조정"하기도 쉽습니다.
다음을 실행하여 대략적인 견적을 얻을 수 있습니다. top
하고 ' U
'를 누르고 사용자 이름을 지정한 다음 상위 프로세스의 CPU 사용률을 추가 .
top
은 -b 스위치를 사용하여 배치 모드로 실행할 수 있습니다. 필요한 반복 횟수를 얻으려면 -n 스위치와 함께 사용하십시오.
top
다른 사람이 이미 수행했는지 확인 하려면 출력 또는 Google을 구문 분석하여 이러한 스크립트를 작성해야 합니다. 그러나 컨텍스트 전환이 발생하는 속도에 따라 매 실행마다 다른 출력을 얻을 것이라고 생각하기 때문에 노력의 가치가 있다고 확신하지 않습니다. 시스템로드 상태가 충분하지 않습니까? 프로세스 대기열 (CPU에서 대기중인 프로세스)을 처리하는 데 필요한 가상 코어 수를 효과적으로 알려줍니다.