top에 표시되는 코어 수가 cpuinfo와 다른 이유는 무엇입니까?

top에 표시되는 코어 수가 cpuinfo와 다른 이유는 무엇입니까?

맨 위로 실행하면 CPU 0-7이 표시됩니다. 내가 할 때 :

cat /proc/cpuinfo | grep "cpu cores" | uniq

나는 얻다:

cpu cores : 4

"물리적 ID"를 grep하면 1이 있습니다.

내 명령이 잘못되었고 top이 올바른 것 같습니다. 이것은 가상 머신이 아닌 물리적 서버인 RedHat입니다. 내가 뭘 잘못했나요?

다음 답변이 확실하지 않습니다.

Linux 시스템의 코어 수를 어떻게 알 수 있나요?

/proc/cpuinfo의 프로세서 수

편집: 물리적 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개의 논리적 코어가 있는 것 같습니다. 그래서 top8이 표시됩니다.

게다가 내용은 /proc/cpuinfo구현에 따라 다소 다릅니다. 루트 안드로이드 셸과 마찬가지로 이 cpuinfo파일에는 cpu cores.

그러나 cpuinfo각 스레드의 이름은 스레드 번호 processor : X로 지정됩니다. X따라서 마지막 스레드 번호는 top/htop출력과 동일해야 합니다.

결과 nproc --all도 일치해야 합니다.top/htop

답변3

top각 논리적 CPU는 x86에서 "CPU"를 표시하며 이는 시스템의 소켓 수, 소켓당 물리적 ​​코어 수 및 코어당 스레드 수를 곱한 것입니다.

cpu cores의 항목에는 /proc/cpuinfox86의 물리적 코어 수도 표시됩니다. 논리 코어 수( 에 사용됨)를 찾으려면 top다음 값을 확인해야 합니다 siblings.

cat /proc/cpuinfo | grep "siblings" | uniq

이것은커널 문서.

lscpu이보다 더 이해하기 쉬운, 설치된 CPU에 대한 정보를 제공합니다. /proc/cpuinfo(또는 오히려 동일한 정보를 더 간단한 방법으로 제공합니다.)

답변4

cpuinfo는 실제 코어를 표시하고, htop/top은 코어와 스레드를 코어로 표시합니다. 아마도 4개의 코어와 4개의 스레드가 있을 것입니다.

관련 정보