명령 줄에서 Linux의 CPU / 코어 수를 얻는 방법은 무엇입니까?


540

이 스크립트가 있지만 출력물의 마지막 요소를 얻는 방법을 모르겠습니다.

cat /proc/cpuinfo | awk '/^processor/{print $3}'

마지막 요소는 CPU 수에서 1을 뺀 것이어야합니다.


9
어쨌든 cat이전 과 같이 할 필요는 없습니다 . 그리고 당신은 "마이너스 하나"없이 들어갑니다. awkawk '<script>' /proc/cpuinfoawk '/^processor/{n+=1}END{print n}' /proc/cpuinfo
Tomasz Gandor

질문에 직접 대답하려면 tail -n 1마지막 줄을 가져 와서 인쇄하십시오.
Fábio Santos

unix.stackexchange.com/q/564494/5132 도 참조하십시오 .
JdeBP

답변:


659
grep -c ^processor /proc/cpuinfo     

"프로세서"로 시작하는 줄 수를 계산합니다. /proc/cpuinfo

하이퍼 스레딩이있는 시스템의 경우

grep ^cpu\\scores /proc/cpuinfo | uniq |  awk '{print $4}' 

(예를 들어)를 반환해야합니다 ( 8위의 명령은을 반환합니다 16)


42
하이퍼 스레딩이있는 시스템 (예 : P4 또는 Core i7)을 사용하는 경우이 두 가지 모두 실제로 존재하는 코어 수의 두 배로 계산됩니다.
duskwuff -inactive-

24
@ duskwuff : 대부분의 경우 원하는 것입니다.
Frank Kusters

8
grep -c '^processor' /proc/cpuinfozsh.
Steven Lu

40
cat /proc/cpuinfo | awk '/^processor/{print $3}' | tail -1CPU 번호가 0부터 시작하면 잘못된 숫자를 반환합니다.
Phazor

3
첫 번째 줄은 기존보다 적은 1 코어를 반환합니다. 더 나은 고양이 / proc / cpuinfo | awk '/ ^ processor / {print $ 3}'| wc -l
Mirko Ebert

649

내용을 처리하는 /proc/cpuinfo것은 불필요하게 바로크입니다. coreutils의 일부인 nproc 을 사용 하므로 대부분의 Linux 설치에서 사용할 수 있습니다.

명령 nproc은 현재 프로세스에 사용 가능한 처리 장치 수를 인쇄하며, 이는 온라인 프로세서 수보다 적을 수 있습니다.

설치된 모든 코어 / 프로세서 수를 찾으려면 nproc --all

내 8 코어 머신에서 :

$ nproc --all
8

8
가상 코어와 물리적 코어를 구분합니까?
Richard

12
물리적 코어 수가 필요한 경우 하이퍼 스레딩에서 작동하지 않습니다. 쿼드 코어 i7 상자에서 8을 반환합니다.
pratnala

1
@pratnala- teambob의 답변 은 물리적 코어 수를 제공합니다.
Nick Chammas

1
내 오래된 우분투 (10.10)에서는 nproc을 사용할 수 없습니다. 새로 추가해야합니다.
bukzor

3
Unfortunatelly, nprocboot2docker의 일부가 아닌
kgadek

269

내가 찾은 가장 휴대용 솔루션은 다음과 getconf같습니다.

getconf _NPROCESSORS_ONLN

이것은 Linux와 Mac OS X에서 모두 작동합니다. 다른 접근 방식에 비해 이것의 또 다른 이점은 getconf가 오랫동안 사용되어 왔다는 것입니다. 내가 개발해야하는 오래된 리눅스 시스템 중 일부에는 nproc또는 lscpu명령이 없지만 사용할 수 있습니다 getconf.

편집자 주 : 동안 유틸리티 POSIX-의무화 , 특정 및 값이 없습니다. 언급 한 바와 같이 Linux 플랫폼과 macOS에서도 작동합니다. FreeBSD / PC-BSD에서는 선행을 생략해야합니다 .getconf _NPROCESSORS_ONLN_NPROCESSORS_CONF _


11
이것은 Red Hat Entreprise Linux 5.4, Centos 6.5 & 7 및 Mac OSX 10.9 (Mavericks)에서 저에게 효과적이었습니다. lscpu는 이러한 시스템에 기본적으로 설치되어 있지 않기 때문에 가장 이식성이 좋은 것 같습니다. 감사!
big_gie

1
동의한다. 이것은 매우 이식성이 있습니다.
bukzor


1
@BCran _NPROCESSORS_ONLNPOSIX에서 찾을 수 없습니다 . 당신은 그것에 연결할 수 있습니까?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

3
@CiroSantilli 六四 事件 法轮功 纳米比亚 威 视github.com/gstrauss/plasma/blob/master/plasma_sysconf.c에서 그것은 내가 잘못한 것처럼 보입니다 : 선택 사항 일뿐입니다. "sysconf _SC_NPROCESSORS_ONLN 및 _SC_NPROCESSORS_CONF는 표준에 필요하지 않지만 수많은 유닉스 플랫폼에서 제공되며 Open Group에 의해 옵션으로 문서화되어 있습니다."
BCran

100

머리말:

  • 기반 답변문제점/proc/cpuinfo사람이 소비 할 수있는 정보를 구문 분석 하여 기계 구문 분석을 위해 설계된 안정적인 형식이 부족 하다는 것입니다 . 출력 형식은 플랫폼 및 런타임 조건에 따라 다를 수 있습니다. Linux (및 macOS)에서 사용 lscpu -p하면 sysctl이 문제를 무시합니다 .

  • getconf _NPROCESSORS_ONLN/ 논리적 CPU 와 물리적 CPU를 getconf NPROCESSORS_ONLN구분하지 않습니다 .


다음은 온라인 및 논리적 또는 물리적 CPU 를 결정하기 위해 Linux 및 macOS 에서 sh작동 하는 (POSIX 호환) 스 니펫입니다 . 자세한 내용은 의견을 참조하십시오.

용도 lscpu리눅스 및 sysctl맥 OS에 대한.

용어 참고 : CPU 는 OS에서 볼 수있는 가장 작은 처리 장치를 나타냅니다. 하이퍼 스레딩 코어는 각각 1 개의 CPU에 해당하는 반면, 하이퍼 스레딩 코어에는 2 개 (일반적으로 2 개)-논리-CPU가 포함됩니다.
Linux는 가장 작은 단위부터 시작 하여 다음 분류법 [1]을 사용합니다 . 각 레벨이 다음 하위 레벨의 인스턴스를 하나 이상 포함하는
CPU < core < socket < book < node
.

#!/bin/sh

# macOS:           Use `sysctl -n hw.*cpu_max`, which returns the values of 
#                  interest directly.
#                  CAVEAT: Using the "_max" key suffixes means that the *maximum*
#                          available number of CPUs is reported, whereas the
#                          current power-management mode could make *fewer* CPUs 
#                          available; dropping the "_max" suffix would report the
#                          number of *currently* available ones; see [1] below.
#
# Linux:           Parse output from `lscpu -p`, where each output line represents
#                  a distinct (logical) CPU.
#                  Note: Newer versions of `lscpu` support more flexible output
#                        formats, but we stick with the parseable legacy format 
#                        generated by `-p` to support older distros, too.
#                        `-p` reports *online* CPUs only - i.e., on hot-pluggable 
#                        systems, currently disabled (offline) CPUs are NOT
#                        reported.

# Number of LOGICAL CPUs (includes those reported by hyper-threading cores)
  # Linux: Simply count the number of (non-comment) output lines from `lscpu -p`, 
  # which tells us the number of *logical* CPUs.
logicalCpuCount=$([ $(uname) = 'Darwin' ] && 
                       sysctl -n hw.logicalcpu_max || 
                       lscpu -p | egrep -v '^#' | wc -l)

# Number of PHYSICAL CPUs (cores).
  # Linux: The 2nd column contains the core ID, with each core ID having 1 or
  #        - in the case of hyperthreading - more logical CPUs.
  #        Counting the *unique* cores across lines tells us the
  #        number of *physical* CPUs (cores).
physicalCpuCount=$([ $(uname) = 'Darwin' ] && 
                       sysctl -n hw.physicalcpu_max ||
                       lscpu -p | egrep -v '^#' | sort -u -t, -k 2,4 | wc -l)

# Print the values.
cat <<EOF
# of logical CPUs:  $logicalCpuCount
# of physical CPUS: $physicalCpuCount
EOF

[1] macOS sysctl (3)설명서

macOS 이외의 BSD 파생 시스템 (예 : FreeBSD) 은 macOS에서는 더 이상 사용되지 않는에 hw.ncpu대한 키만 지원합니다 sysctl. 어떤 새 키가 다음에 hw.npu해당 하는지 확실하지 않습니다 hw.(logical|physical)cpu_[max].

실제 CPU 카운트 lscpu명령 을 수정하는 데 도움이되는 @teambob의 팁 .

주의 사항 : lscpu -p출력에는 "book"열이 포함되지 않습니다 ( man페이지는 분류 체계에서 소켓과 노드 사이의 엔티티로 "books"를 언급합니다). 주어진 Linux 시스템에서 "books"가 재생중인 경우 ( 아무도 언제 어떻게 알 수 있습니까? ) 물리적 CPU-count 명령은 -report 미만일 수 있습니다 (이는 lscpu고유하지 않은 ID를 더 높은 수준으로 보고 한다는 가정을 기반으로 함) -레벨 엔티티 (예 : 2 개의 다른 소켓에서 2 개의 다른 코어는 동일한 ID를 가질 수 있음)


쉘 스크립트cpus같이 위의 코드저장하고 실행 가능하게 만들고 chmod +x cpus폴더에 배치 $PATH하면 다음과 같은 출력이 표시됩니다.

$ cpus
logical  4
physical 4

[1] Xaekai 는 다음과 같은 서적 에 대해 밝힙니다 . " 은 CPU 소켓, RAM 소켓, 모서리를 따라 IO 연결 및 냉각 시스템 통합을위한 후크가있는 회로 보드를 수용하는 모듈입니다. 이들은 IBM 메인 프레임에서 사용됩니다. 추가 정보 : http://ewh.ieee.org/soc/cpmt/presentations/cpmt0810a.pdf "


1
예 죄송합니다. sort 명령이 정확합니다. lscpu 매뉴얼 이외의 책에 대한 정보를 찾을 수 없습니다. 나는 그것이 NUMA 관련되어 생각 en.wikipedia.org/wiki/Non-uniform_memory_access
teambob을

2
나는 여기에서와 달리 대부분의 솔루션이 멀티 소켓 머신을 무시한다고 생각합니다. 감사!
splitbyzero

1
리눅스와 관련하여 설치 프로그램 이미지와 같이 lscpu를 사용할 수없는 컨텍스트가 많이 있습니다. 나는 그것을 좋아한다. 그것이 어디에서나 사용되기를 바란다.
Brian Chrisman

43

lscpu 사람이 읽을 수있는 형식으로 / proc / cpuinfon 형식의 CPU 아키텍처 정보를 수집합니다.

# lscpu


Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    1
Core(s) per socket:    4
CPU socket(s):         2
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 15
Stepping:              7
CPU MHz:               1866.669
BogoMIPS:              3732.83
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
NUMA node0 CPU(s):     0-7

/unix/468766/understanding-output-of-lscpu참조하십시오 .


13

이것은 나를 위해 일했습니다. tail -nX마지막 X 줄만 잡을 수 있습니다.

cat /proc/cpuinfo | awk '/^processor/{print $3}' | tail -1

하이퍼 스레딩이있는 경우 물리적 코어 수를 파악하는 데 효과적입니다 .

grep "^core id" /proc/cpuinfo | sort -u | wc -l

1
전체 물리적 코어에 대한 "^ core id"는 하나의 프로세서에있는 p- 코어입니까?
Richard

1
시스템의 고유 한 물리적 코어 당 하나의 코어 ID 라인이 있습니다. 그러나 두 번째 물리적 프로세서의 경우 숫자가 0에서 다시 시작되는지 여부는 알 수 없습니다.
lunixbochs

1
물리적 프로세서가 두 개 이상인 경우 "실제 ID"도 확인해야합니다.
Anne

첫 번째 줄은 나에게 효과가 없었습니다. 이것은 나를 위해 작동합니다. cat /proc/cpuinfo | awk '/^processor/{print $3}'| wc -l올바른 숫자를 보여줍니다.
jaylweb

11

총 물리적 코어 수 :

grep '^core id' /proc/cpuinfo |sort -u|wc -l

다중 소켓 시스템에서 (또는 항상) 위의 결과에 소켓 수를 곱하십시오.

echo $(($(grep "^physical id" /proc/cpuinfo | awk '{print $4}' | sort -un | tail -1)+1))

@ mklement0에는 lscpu를 사용하여 아래에 좋은 답변이 있습니다. 의견에 간결한 버전을 작성했습니다.


10

파이썬을 사용할 수도 있습니다! 물리적 코어 수를 얻으려면 :

$ python -c "import psutil; print(psutil.cpu_count(logical=False))"
4

하이퍼 스레드 코어 수를 얻으려면 :

$ python -c "import psutil; print(psutil.cpu_count(logical=True))"
8

Python 2.7.15에서는 이러한 명령이 아무 것도 인쇄하지 않습니다. REPL에서는 그렇습니다.
Vytenis Bivainis

1
@VytenisBivainis 감사합니다, 나는 대답을 고정시켰다!
ostrokach

9

Linux, MacOS, Windows 용 크로스 플랫폼 솔루션 :

CORES=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || sysctl -n hw.ncpu || echo "$NUMBER_OF_PROCESSORS")

9

Linux에서 온라인 상태 인 물리적 코어 수를 계산하는 데 사용하는 방법은 다음과 같습니다.

lscpu --online --parse=Core,Socket | grep --invert-match '^#' | sort --unique | wc --lines

또는 짧게 :

lscpu -b -p=Core,Socket | grep -v '^#' | sort -u | wc -l

예 (1 소켓) :

> lscpu
...
CPU(s):                28
Thread(s) per core:    2
Core(s) per socket:    14
Socket(s):             1
....
> lscpu -b -p=Core,Socket | grep -v '^#' | sort -u | wc -l
14

예 (2 소켓) :

> lscpu
...
CPU(s):                56
Thread(s) per core:    2
Core(s) per socket:    14
Socket(s):             2
...
> lscpu -b -p=Core,Socket | grep -v '^#' | sort -u | wc -l
28

예 (소켓 4 개) :

> lscpu
...
CPU(s):                64
Thread(s) per core:    2
Core(s) per socket:    8
Socket(s):             4
...
> lscpu -b -p=Core,Socket | grep -v '^#' | sort -u | wc -l
32

여러 소켓 작동 및 처리
jbo5112

이것이 가장 좋은 대답입니다.
Jorma Rebane

7

getconf를 사용하는 것이 실제로 가장 이식 가능한 방법이지만 변수는 BSD와 Linux에서 getconf와 다른 이름을 가지 므로이 요점에서 제안하는 것처럼 두 가지를 모두 테스트해야합니다. https://gist.github.com/jj1bdx/5746298 (또한 포함 ksh를 사용한 Solaris 수정)

나는 개인적으로 사용합니다 :

$ getconf _NPROCESSORS_ONLN 2>/dev/null || getconf NPROCESSORS_ONLN 2>/dev/null || echo 1

그리고 파이썬에서 이것을 원한다면 os 모듈을 가져 와서 syscall getconf 사용을 사용할 수 있습니다.

$ python -c 'import os; print os.sysconf(os.sysconf_names["SC_NPROCESSORS_ONLN"]);'

에 관해서 nproc는 GNU Coreutils의 일부이므로 기본적으로 BSD에서는 사용할 수 없습니다. 다른 메소드 후에도 sysconf ()를 사용합니다.


6

Linux 및 OS X에서 작동하도록하려면 다음을 수행하십시오.

CORES=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || sysctl -n hw.ncpu)

광산에서는 하이퍼 스레드 수를 반환합니다. 또한 물리적 코어 수와 소켓 수를 알아야합니다.
user2465201

OK-hw.physicalcpu와 정확히 동일한 명령으로 코어 수를 얻습니다. 소켓 수에 대해서는 아직 확실하지 않습니다 ... "논리적"및 "활성"CPU 수도 있지만 그 의미를 잘 모르겠습니다.
user2465201

빠른 업데이트-휴대하기가 쉽지 않습니다. 나는 리눅스 박스에서 그것을 시도했고, / proc 디렉토리를 읽는 것 같다. / proc 디렉토리는 Mac과 Linux 시스템에서 모두 다르다-예를 들어, hw 서브 디렉토리가 없다. 그 존재는 당신이 할 수있는 아직 해석은 / proc / cpuinfo을했다
user2465201


3

다음 방법 중 하나를 사용하여 물리적 CPU 코어 수를 결정할 수 있습니다.

  • 고유 코어 ID 수를 계산합니다 (대략 grep -P '^core id\t' /proc/cpuinfo | sort -u | wc -l).

    awk '/^core id\t/ {cores[$NF]++} END {print length(cores)}' /proc/cpuinfo

  • '소켓 당 코어 수'에 소켓 수를 곱하십시오.

    lscpu | awk '/^Core\(s\) per socket:/ {cores=$NF}; /^Socket\(s\):/ {sockets=$NF}; END{print cores*sockets}'

  • Linux 커널에서 사용하는 고유 논리 CPU 수를 계산하십시오. 이 -p옵션은 쉽게 구문 분석 할 수 있도록 출력을 생성하며 이전 버전의와 호환됩니다 lscpu.

    lscpu -p | awk -F, '$0 !~ /^#/ {cores[$1]++} END {print length(cores)}'


다른 사람들의 말을 반복하기 위해 여러 가지 관련 속성이 있습니다.

사용 가능한 프로세서 수를 확인하려면 다음과 같이하십시오.

getconf _NPROCESSORS_ONLN
grep -cP '^processor\t' /proc/cpuinfo

사용 가능한 처리 장치 수를 결정합니다 (코어 수와 반드시 같을 필요는 없음). 하이퍼 스레딩을 인식합니다.

nproc

토끼 구멍으로 너무 멀리 가고 싶지는 않지만을 통해 구성된 프로세서 수 (단순히 사용 가능한 / 온라인 프로세서가 아닌)를 결정할 수도 있습니다 getconf _NPROCESSORS_CONF. 총 CPU 수 (오프라인 및 온라인)를 결정하려면의 출력을 구문 분석하려고합니다 lscpu -ap.


실제 코어를 원한다면 이것이 정답입니다.
Dinesh

3

나는 또한 cat /proc/cpuinfo정답을 줄 것이라고 생각 했지만 최근에 ARM 쿼드 코어 Cortex A53 시스템에 단일 코어 만 표시되는 것을 보았습니다. / proc / cpuinfo는 활성 코어 만 표시하는 것 같습니다.

cat /sys/devices/system/cpu/present

거기에 대한 더 나은 척도입니다. 당신은 또한 수

cat /sys/devices/system/cpu/online

어떤 코어가 온라인 상태인지 확인하고

cat /sys/devices/system/cpu/offline

어떤 코어가 오프라인인지 확인하십시오. online, offlinepresentsysfs를 항목은 CPU의 인덱스를 반환 할 정도의 반환 값이 0반환 값 반면 단지 수단 코어 0 1-3수단 코어, 2, 3.

https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-devices-system-cpu를 참조 하십시오


2

다음은 하이퍼 스레드 및 비스 레드 스레드 시스템에서 "실제"코어 수를 제공합니다. 적어도 그것은 모든 테스트에서 효과가있었습니다.

awk -F: '/^physical/ && !ID[$2] { P++; ID[$2]=1 }; /^cpu cores/ { CORES=$2 };  END { print CORES*P }' /proc/cpuinfo

-1, 이것은 0Opteron 4170 HE가있는 단일 코어에서 반환되지만 4Opteron 3280이있는 8 개의 코어 상자에서 반환 됩니다. ... 나의 일부는이 단일 라이너가 작동하기를 정말로 원합니다!
zamnuts

1

내 웹 페이지는 아니지만 http://www.ixbrian.com/blog/?p=64&cm_mc_uid=89402252817914508279022&cm_mc_sid_50200000=1450827902 의이 명령은 centos에서 잘 작동합니다. 하이퍼 스레딩이 활성화 된 경우에도 실제 CPU를 표시합니다.

cat /proc/cpuinfo | egrep "core id|physical id" | tr -d "\n" | sed s/physical/\\nphysical/g | grep -v ^$ | sort | uniq | wc -l


+1, "lscpu -p = Core, Socket"을 사용하는 솔루션보다 길지만 lscpu가 필요없이 / proc / cpuinfo를 직접 구문 분석합니다.
Fravadona

1

"core id"를 사용할 수없는 경우 (라즈베리와 같이) "processor"수에 폴 백이있는 awk를 사용하여 "physical id"방법 당 "core id"수

echo $(awk '{ if ($0~/^physical id/) { p=$NF }; if ($0~/^core id/) { cores[p$NF]=p$NF }; if ($0~/processor/) { cpu++ } } END { for (key in cores) { n++ } } END { if (n) {print n} else {print cpu} }' /proc/cpuinfo)

1
cat /proc/cpuinfo | grep processor

이것은 잘 작동했습니다. 첫 번째 답변을 시도했을 때 3 CPU를 출력으로 얻었습니다. 나는 시스템에 4 개의 CPU가 있다는 것을 알고 있으므로 grep프로세서를 위해 수행했으며 출력은 다음과 같습니다.

[root@theservername ~]# cat /proc/cpuinfo | grep processor
processor       : 0
processor       : 1
processor       : 2
processor       : 3

1
 dmidecode  | grep -i cpu | grep Version

나에게 준다

버전 : Intel (R) Xeon (R) CPU E5-2667 v4 @ 3.20GHz

버전 : Intel (R) Xeon (R) CPU E5-2667 v4 @ 3.20GHz

정확한 소켓의 수는 어느 것 - 찾는 것은은 E5-2667각 소켓이 나에게 말한다 8 cores때문에 곱셈과 함께 끝 16 cores에서 2 sockets.

어디에서 lscpu나에게 20 CPUs-완전히 잘못 되었습니까? 왜 그런지 확실하지 않습니다. (와 동일하게 cat /proc/cpu끝납니다 20.


1

포크없이 더 빠름

이 almsost 모두와 함께 작동 .

ncore=0
while read line ;do
    [ "$line" ] && [ -z "${line%processor*}" ] && ncore=$((ncore+1))
  done </proc/cpuinfo
echo $ncore
4

호환성을 유지하기 위해 , , 그리고 다른 사람들은 ncore=$((ncore+1))대신에 사용 했습니다 ((ncore++)).

버전

ncore=0
while read -a line ;do
    [ "$line" = "processor" ] && ((ncore++))
  done </proc/cpuinfo
echo $ncore
4


1

파이썬을 사용할 수 있다면 numexpr모듈에는 다음과 같은 기능이 있습니다.

In [5]: import numexpr as ne

In [6]: ne.detect_number_of_cores()
Out[6]: 8

또한 이것 :

In [7]: ne.ncores
Out[7]: 8

명령 프롬프트에서이 정보를 쿼리하려면 다음을 사용하십시오.

# runs whatever valid Python code given as a string with `-c` option
$ python -c "import numexpr as ne; print(ne.ncores)"
8

또는 단순히이 정보를 multiprocessing.cpu_count()함수 에서 가져올 수 있습니다

$ python -c "import multiprocessing; print(multiprocessing.cpu_count())"

또는 더 간단하게 사용하십시오 os.cpu_count()

$ python -c "import os; print(os.cpu_count())"

1
파이썬에서 명령 으로이 작업을 수행 할 수있는 방법이 있습니까? 예를 들어 python -m numexpr.ncores를 시도했지만 작동하지 않습니다.
MonsieurBeilto 2018 년

1
@MonsieurBeilto 업데이트 된 답변을보십시오!
kmario23

반환 된 개수 cpu_count가 잘못 되었습니다. 코어 수는 반환하지 않고 인텔 CPU의 하이퍼 스레드 수만 반환합니다.
Antti Haapala

1

물리적 코어를 세고 싶다면이 명령이 도움이되었습니다.

lscpu -e | tail -n +2 | tr -s " " | cut -d " " -f 4 | sort | uniq | wc -w

꽤 기본적이지만 논리적 카운트를 무시하고 실제 물리적 코어를 계산하는 것 같습니다.


0

파이썬 3은 또한 몇 가지 간단한 방법을 제공합니다.

$ python3 -c "import os; print(os.cpu_count());"

4

$ python3 -c "import multiprocessing; print(multiprocessing.cpu_count())"

4


각각에 2 개의 스레드가있는 4 개의 코어가있을 때 이것은 8을 반환합니다.
Antti Haapala

0

아래 쿼리를 사용하여 핵심 정보를 얻으십시오.

[oracle@orahost](TESTDB)$ grep -c ^processor /proc/cpuinfo
8

0

요약 : 물리적 CPU 를 얻으려면 다음을 수행하십시오.

grep 'core id' /proc/cpuinfo | sort -u

물리적논리적 CPU 를 얻으려면 다음을 수행하십시오.

grep -c ^processor /proc/cpuinfo

/proc << 이것은 프로세스에 필요한 모든 정보의 황금 원천이며

/proc/cpuinfo <<는 모든 CPU 정보의 황금 소스입니다.


물리적 CPU 수는 다중 소켓 컴퓨터에서 작동하지 않습니다. 이를 위해서는 각 '코어 ID'를 '실제 ID'와 연결해야합니다.
Fravadona
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.