리눅스 / CPU 이름, 코어 수, 스레드 수 확인하는 방법

리눅스에서는 lscpu로 CPU 모델명과 논리 프로세서·소켓·코어 구성을 확인할 수 있습니다. CPU(s)는 보통 논리 CPU 개수이므로 물리 코어 수와 구분해야 하며, 가상 머신에서는 게스트에 제공된 구성이 표시됩니다.

lscpu로 전체 정보 확인

터미널에서 다음 명령을 실행합니다. lscpu는 util-linux에 포함되며 일반적인 정보 조회에 관리자 권한은 필요하지 않습니다. 명령을 찾지 못하면 배포판의 util-linux 또는 관련 분리 패키지 제공 여부를 확인합니다.

lscpu

다음은 균일한 2코어·4스레드 구성에서 핵심 항목만 추린 출력 예시입니다. 실제 줄 이름과 표시 항목은 언어·버전·하드웨어에 따라 다릅니다.

CPU(s):                  4
On-line CPU(s) list:     0-3
Model name:              Intel(R) Core(TM) i3-7350K CPU @ 4.20GHz
Thread(s) per core:      2
Core(s) per socket:      2
Socket(s):               1
항목 읽는 방법
Model name 운영체제가 인식한 모델명. 가상 머신에서는 호스트 실제 모델과 다를 수 있습니다.
CPU(s) 논리 CPU 개수. 온라인과 오프라인 상태도 별도로 확인합니다.
Thread(s) per core 표시된 코어별 하드웨어 스레드 구성. 서로 다른 코어 종류가 섞이면 단순 곱셈에 주의합니다.
Core(s) per socket / Socket(s) 운영체제가 인식한 코어·소켓 토폴로지. VM의 물리 부품 개수라는 보장은 없습니다.

코어와 논리 CPU를 행 단위로 보기

각 논리 CPU의 코어·소켓·온라인 상태를 비교하려면 확장 출력을 사용합니다. 아래 열 이름은 일반적인 util-linux lscpu의 옵션이며, 해당 버전에서 지원하는 열은 lscpu --help로 확인합니다.

lscpu -e=CPU,CORE,SOCKET,ONLINE

CPU 열은 논리 CPU 번호입니다. 같은 SOCKET·CORE 조합이 여러 행에 나타나면 같은 물리 코어에 속하는 하드웨어 스레드로 해석할 수 있습니다. CORE 번호는 소켓별로 반복될 수 있으므로 CORE 숫자 하나만 세지 않습니다. 온라인 항목만 보려면 -b 옵션을 함께 사용할 수 있습니다.

lscpu -b -e=CPU,CORE,SOCKET,ONLINE

예시처럼 모든 코어가 2스레드를 제공하면 1소켓 × 2코어 × 2스레드 = 4논리 CPU입니다. 그러나 하이브리드 CPU, SMT 비활성화, CPU 오프라인, 가상 토폴로지에서는 이 공식을 모든 시스템에 적용하면 안 됩니다. 코어 수와 CPU 스레드를 구분해 실제 행과 온라인 상태를 확인합니다.

nproc 값과 다른 경우

nproc

nproc는 현재 프로세스가 사용할 수 있는 처리 장치 수를 확인할 때 쓰입니다. CPU affinity나 컨테이너·런타임 제한 등의 조건으로 시스템 전체 lscpu 목록과 다를 수 있습니다. 두 값이 다르다는 이유만으로 코어가 고장 났다고 판단하지 말고 실행 환경의 제한을 확인하세요.

캐시·클럭·가상 머신 표시의 주의점

lscpu 매뉴얼에 따르면 util-linux 2.34부터 캐시 크기는 전체 CPU에 대한 요약으로 표시되며 이전 버전의 코어당 표기와 다를 수 있습니다. L1·L2·L3 캐시를 읽을 때 출력 버전과 공유 범위를 함께 봅니다.

모델명 문자열에 들어 있는 GHz와 순간 동작 클럭은 같은 항목이 아닙니다. VM에서는 호스트가 노출한 정보만 볼 수 있으며, 토폴로지가 실제 호스트를 정확히 반영하지 않을 수도 있습니다. 물리 서버의 부품 확인이 목적이라면 호스트 또는 제조사 관리 도구의 정보와 대조합니다.