![top에 표시되는 코어 수가 cpuinfo와 다른 이유는 무엇입니까?](https://linux55.com/image/122222/top%EC%97%90%20%ED%91%9C%EC%8B%9C%EB%90%98%EB%8A%94%20%EC%BD%94%EC%96%B4%20%EC%88%98%EA%B0%80%20cpuinfo%EC%99%80%20%EB%8B%A4%EB%A5%B8%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
맨 위로 실행하면 CPU 0-7이 표시됩니다. 내가 할 때 :
cat /proc/cpuinfo | grep "cpu cores" | uniq
나는 얻다:
cpu cores : 4
"물리적 ID"를 grep하면 1이 있습니다.
내 명령이 잘못되었고 top이 올바른 것 같습니다. 이것은 가상 머신이 아닌 물리적 서버인 RedHat입니다. 내가 뭘 잘못했나요?
다음 답변이 확실하지 않습니다.
편집: 물리적 ID를 수정해야 합니까? 1만 표시되면 마더보드에 물리적 칩이 있는 것입니다.
편집: Intel(R) Xeon(R) CPU X5560 @ 2.80GHz이지만 물리적 ID는 1입니다. 0일 것이라고 생각했지만 cpuinfo에 물리적 ID 0이 없습니다.
편집: 중요한 경우 0.5 코어 카운트 라이센싱을 어디서 수행하는지 알아보려고 합니다.
답변1
X5560은 싱글입니다칩. 다음과 같습니다.
grep "physical id"
물리적 프로세서가 설치되어 있음을 알려줍니다.
방열판을 위에서 떼어내면 이를 볼 수 있습니다. - Single Physics주사위(얼굴이 아래로 향함):
해당 주사위를 제거하고 뒤집어 보면 다음과 같습니다.
단일 물리적 칩에는 4개의 칩이 있습니다.물리적 CPU 코어실리콘 기반:
grep "cpu cores"
프로세서에 4개의 물리적 코어가 내장되어 있음을 알려줍니다.
각 코어는 부동 소수점 단위, 다중 정수 실행 단위, 한 쌍의 레지스터 스택 및 각 코어가 두 개의 독립적인 명령어 스트림(스레드)을 동시에 효과적으로 실행할 수 있도록 하는 몇 가지 기타 기능을 갖춘 프로세서입니다.
top
컴퓨터의 모든 프로세서와 코어가 한 번에 총 8개의 독립적인 작업 프로세스를 수행할 수 있음을 알려줍니다. 이는 운영 체제가 주어진 시간에 8개의 동시 실행 스레드를 예약할 수 있음을 알려줍니다.
답변2
어떤 CPU를 사용하고 있나요? 물리적 코어당 스레드 수는 몇 개입니까?
cat /proc/cpuinfo
실제 코어 수와 top
존재하는 총 스레드 수가 표시됩니다.
귀하의 CPU에는 4개의 물리적 코어와 물리적 코어당 2개의 논리적 코어가 있는 것 같습니다. 그래서 top
8이 표시됩니다.
게다가 내용은 /proc/cpuinfo
구현에 따라 다소 다릅니다. 루트 안드로이드 셸과 마찬가지로 이 cpuinfo
파일에는 cpu cores
.
그러나 cpuinfo
각 스레드의 이름은 스레드 번호 processor : X
로 지정됩니다. X
따라서 마지막 스레드 번호는 top/htop
출력과 동일해야 합니다.
결과 nproc --all
도 일치해야 합니다.top/htop
답변3
top
각 논리적 CPU는 x86에서 "CPU"를 표시하며 이는 시스템의 소켓 수, 소켓당 물리적 코어 수 및 코어당 스레드 수를 곱한 것입니다.
cpu cores
의 항목에는 /proc/cpuinfo
x86의 물리적 코어 수도 표시됩니다. 논리 코어 수( 에 사용됨)를 찾으려면 top
다음 값을 확인해야 합니다 siblings
.
cat /proc/cpuinfo | grep "siblings" | uniq
이것은커널 문서.
lscpu
이보다 더 이해하기 쉬운, 설치된 CPU에 대한 정보를 제공합니다. /proc/cpuinfo
(또는 오히려 동일한 정보를 더 간단한 방법으로 제공합니다.)
답변4
cpuinfo는 실제 코어를 표시하고, htop/top은 코어와 스레드를 코어로 표시합니다. 아마도 4개의 코어와 4개의 스레드가 있을 것입니다.