짧은 답변

짧은 답변

물론 우리는 cat /proc/cpuinfo |grep "cpu cores"그것이 출력을 줄 것이라는 것을 알고 있습니다.

[root@14:47 ~]#  cat /proc/cpuinfo |grep "cpu cores"
cpu cores       : 2
cpu cores       : 2
cpu cores       : 2
cpu cores       : 2

하지만 실제로는 총 CPU 코어 수를 얻고 싶습니다. 내가 원하는 결과는

cpu cores: 8

어떻게 하면 그런 결과를 얻을 수 있나요?

답변1

이 시도,

~에 따르면man lscpu

CORE   The logical core number. A core can contain several CPUs.

SOCKET The logical socket number. A socket can contain several cores.

coressockets물리적 숫자이고 는 CPU(s)논리 숫자입니다. 따라서 시스템의 코어 수를 확인하려면 다음을 수행하십시오.number of cores x number of sockets

샘플 출력은 lscpu다음과 같습니다.

Thread(s) per core:    2
Core(s) per socket:    8
Socket(s):             2

그래서 총계는cores: 16

총 개수 CPU(s): 32( threads각각의 수량은 core이므로 2)

@Durga가 언급했듯이 nproc총 개수가 제공됩니다 CPUs.

자세한 내용은 여기를 참조하세요답변, /proc/cpuinfo참조에 대한 설명을 얻으십시오.이것

감사드리고 싶습니다@선행은 이루기가 어렵다이해하도록 도와주세요동일한.

답변2

터미널에서 nprocOP: 총 CPU 코어 수

답변3

당신이라면 어떨까요?금액에만 관심이 있다, GNU awk를 사용할 수도 있습니다.

cat /proc/cpuinfo |grep "cpu cores" | awk -F: '{ num+=$2 } END{ print "cpu cores", num }'

편집하다:이것은 마지막 열의 숫자를 합산하려는 OP의 의도에 대한 정답입니다. 그러나 머신에 몇 개의 코어(물리적/가상)가 있는지 확인하는 질문은 이 질문에 대한 다른 답변에 나와 있습니다.

답변4

짧은 답변

수량물리학 핵심:

> cat /proc/cpuinfo | grep -m 1 "cpu cores"
cpu cores   : 2

수량가상 코어(예: 하이퍼스레딩을 사용하는 물리적 코어 수의 2배):

> cat /proc/cpuinfo | grep -c "cpu cores"
4

여러 개의 CPU/프로세서가 있는 경우(이 감정) 이것은 마더보드에서 제대로 작동하지 않습니다. "마더보드당 다중 CPU" 섹션을 참조하십시오. 컴퓨팅 클러스터나 CAD/엔지니어링 목적으로 사용되는 고급 데스크톱 워크스테이션에서 작업하는 경우가 이에 해당할 수 있습니다.

긴 대답

이 명령은 cat /proc/cpuinfo해당 줄의 물리적 코어 수를 인쇄해야 합니다 cpu cores. 그러나 각 가상 코어에 대해 이 정보를 인쇄합니다. 따라서 물리적 코어 수를 얻으려면 행의 첫 번째 항목을 가져오십시오 cpu cores. 즉,

> cat /proc/cpuinfo | grep -m 1 "cpu cores"
cpu cores   : 2

또는 가상 코어 수를 찾고 있다면 라인이 발견된 횟수를 셀 수 있습니다 cpu cores. 즉,

> cat /proc/cpuinfo | grep -c "cpu cores"
4

하나(물리적 코어 4개, 하이퍼스레드)가 있습니다 Intel(R) Core(TM) i7-3740QM CPU @ 2.70GHz. 내가 무엇을 얻었는지 봅시다:

> cat /proc/cpuinfo | grep "cpu cores"
cpu cores   : 4
cpu cores   : 4
cpu cores   : 4
cpu cores   : 4
cpu cores   : 4
cpu cores   : 4
cpu cores   : 4
cpu cores   : 4

물리적 코어 수:

> cat /proc/cpuinfo | grep -m 1 "cpu cores"
cpu cores   : 4

가상 코어 수:

> cat /proc/cpuinfo | grep -l "cpu cores"
8

마지막으로 발견된 프로세서 번호를 가져와서 추가할 수도 있습니다.

> cat /proc/cpuinfo | grep "processor" | tail -1
processor   : 7
# +1

마더보드당 여러 CPU

현재 사용 중인 컴퓨팅 클러스터의 한 노드를 살펴보았습니다. 1개의 노드에는 4개의 CPU(Intel Xeon)가 있고 노드당 8개의 물리적 코어가 있습니다. 따라서 각 CPU에는 16개의 가상 코어가 있습니다. 노드에는 32개의 물리적 코어와 64개의 가상 코어가 있습니다.

cat /proc/cpuinfo각 가상 코어에 대한 정보를 인쇄합니다. 따라서 우리는 64개의 정보 "패킷"을 얻습니다. 그러한 설정이 있는 physical id경우 cat /proc/cpuinfo.

이것은 내가 얻는 결과입니다.

> cat /proc/cpuinfo | grep -m 1 "cpu cores"
cpu cores   : 8

> cat /proc/cpuinfo | grep -c "cpu cores"
64

> cat /proc/cpuinfo | grep "physical id" | tail -1
physical id   : 3
# this result +1 => number of CPUs

따라서 "이후의 숫자 cpu coresx " physical id+ 1 이후의 숫자"는 우리 노드의 물리적 코어 수(8 x (3 + 1))입니다. 64는 가상 코어 수입니다.

명명법

모든 사람이 서로 다른 상황에서 코어, CPU 및 프로세서를 사용하므로 여기서 답변에 대한 용어를 소개하겠습니다.

  • 프로세서: 전체 하드웨어(예: Intel® Core™ i7-3740QM 프로세서)
  • CPU: CPU=프로세서
  • 코어 또는 물리적 코어: CPU의 물리적 컴퓨팅 장치 수
  • 스레드 또는 가상 코어: (인텔) 프로세서가 하이퍼스레딩을 지원하는 경우 CPU에서 병렬로 실행될 수 있는 스레드 수는 가상 코어 수는 물리적 코어 수의 두 배입니다. 다른 프로세서 공급업체에서는 이 기능을 호출합니다.)

__예: __

  • 프로세서: Intel(R) Core(TM) i7-3740QM CPU @ 2.70GHz
  • 원천:인텔 아크

데이터:

  • CPU 수: 1
  • 프로세서 수: 1
  • 코어(또는 물리적 코어): 4
  • 스레드(또는 가상 코어): 8

관련 정보