
상단을 실행하면 CPU 0-7이 표시됩니다. 내가 할 때 :
cat /proc/cpuinfo | grep "cpu cores" | uniq
나는 얻다:
cpu cores : 4
"물리적 ID"를 grep하면 1이 있습니다.
내 명령이 잘못되었고 top이 옳다고 생각합니다. 이것은 VM이 아니며 물리적 서버인 RedHat입니다. 내가 도대체 뭘 잘못하고있는 겁니까?
나는 이것이 대답하는지 확신하지 못합니다:
Linux에서 시스템의 코어 수를 어떻게 알 수 있나요?
편집: 물리적 ID가 1로만 표시되면 마더보드에 물리적 칩이 하나 있는 것입니까?
편집: Intel(R) Xeon(R) CPU X5560 @ 2.80GHz인데 물리 ID가 1이고 0일 줄 알았는데 cpuinfo에 물리 ID 0이 없습니다.
편집: 중요한 경우 코어 수가 0.5배인 라이선스를 알아내려고 노력 중입니다.
답변1
X5560은 단일입니다.칩. 다음과 같습니다.
grep "physical id"
하나의 물리적 프로세서가 설치되어 있음을 알려줍니다.
상단에서 열 분산기를 떼어내면 다음과 같은 모습을 볼 수 있습니다. 단일 물리적주사위(얼굴이 아래로 향함) :
해당 주사위를 제거하고 뒤집어 보면 다음과 같습니다.
그 하나의 물리적 다이에는 4개의 다이가 있습니다.물리적 CPU 코어실리콘 위에 구축:
grep "cpu cores"
프로세서에 4개의 물리적 코어가 내장되어 있음을 알려줍니다.
각 코어는 부동 소수점 단위, 다수의 정수 실행 단위, 한 쌍의 레지스터 스택 및 각 단일 코어가 한 번에 두 개의 독립적인 명령어 스트림(스레드)을 효과적으로 실행할 수 있게 해주는 기타 마법을 갖춘 단일 프로세서입니다.
top
이는 컴퓨터의 모든 프로세서와 코어가 집합적으로 한 번에 8개의 독립적인 작업 흐름을 실행할 수 있음을 의미합니다. 이는 운영 체제가 언제든지 실행을 위해 8개의 동시 스레드를 예약할 수 있음을 의미합니다.
답변2
어떤 CPU를 사용하고 있나요? 물리적 코어당 몇 개의 스레드가 존재합니까?
cat /proc/cpuinfo
물리적 코어 수를 표시하고 top
존재하는 총 스레드 수를 표시합니다.
귀하의 CPU에는 물리적 코어당 4개의 물리적 코어와 2개의 논리적 코어가 있는 것 같습니다. 그래서 top
8이 표시됩니다.
게다가 의 내용은 /proc/cpuinfo
구현에 따라 다소 다릅니다. 루팅된 Android 쉘과 마찬가지로 cpuinfo
파일에는 용어가 포함되어 있지 않습니다 cpu cores
.
그러나 cpuinfo
각 스레드의 이름은 입니다 . 스레드 번호는 processor : X
어디에 있습니까? X
따라서 마지막 스레드 번호는 top/htop
출력과 동일해야 합니다.
의 결과 nproc --all
도 다음과 일치해야 합니다.top/htop
답변3
top
논리 CPU당 하나의 "CPU"를 표시합니다. x86에서는 시스템의 소켓 수, 소켓당 물리적 코어 수, 코어당 스레드 수를 곱한 값입니다.
다시 x86의 항목 cpu cores
에는 /proc/cpuinfo
물리적 코어 수가 표시됩니다. 에서 사용된 논리 코어 수를 찾으려면 대신 값을 top
살펴봐야 합니다 siblings
.
cat /proc/cpuinfo | grep "siblings" | uniq
이에 대해서는 에 자세히 설명되어 있습니다.커널 문서.
lscpu
설치된 CPU에 대한 정보를 보다 이해하기 쉽게 제공합니다 /proc/cpuinfo
(또는 동일한 정보를 더 간단한 방식으로 제공합니다).
답변4
cpuinfo는 실제 코어를 표시하고 htop/top은 코어와 스레드를 모두 코어로 표시합니다. 아마도 4개의 코어와 4개의 스레드가 있을 가능성이 높습니다.