개발자라면 한 번쯤은 리눅스 서버의 사양(CPU, 메모리, 디스크 등)을 직접 확인해야 할 상황을 마주하게 됩니다. 서버 세팅 직후, 리소스 최적화 전 점검, 혹은 장애 대응 시 정확한 하드웨어 정보 파악은 필수이죠.
이번 글에서는 리눅스 환경에서 자주 사용하는 서버 스펙 확인 명령어들을 항목별로 정리하고, 실제 출력값에 대한 해석도 함께 다뤄봤습니다. 실무에 바로 활용해보세요!
✅ CPU 정보 확인
1. lscpu
CPU 아키텍처, 코어 수, 스레드 수 등의 요약 정보를 출력합니다.
lscpu
예시 출력:
Architecture: x86_64
CPU(s): 8
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
Model name: Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz
❓ CPU(s)는 뭘 의미할까?
- CPU(s)는 논리 CPU의 개수를 의미합니다. 즉, 운영체제가 인식하는 총 스레드 수입니다.
- 예를 들어, 4코어 CPU에서 하이퍼스레딩이 활성화되면 각 코어당 2스레드 → 총 8 논리 CPU가 됩니다.
2. cat /proc/cpuinfo
각 코어(논리 CPU)별 상세 정보를 확인할 수 있습니다.
cat /proc/cpuinfo
출력 중 핵심 항목:
cpu cores : 4
siblings : 8
- cpu cores: 하나의 소켓(물리 CPU) 내에 있는 물리 코어 수
- siblings: 해당 소켓이 인식하는 총 논리 CPU 수
즉, siblings / cpu cores = 스레드 수이며, 2 이상이면 하이퍼스레딩이 활성화된 상태입니다.
🔍 하이퍼스레딩(Hyper-Threading)이란?
하이퍼스레딩은 물리 CPU 코어 하나가 두 개의 논리 CPU처럼 동작하도록 만들어주는 기술입니다.
✅ 핵심 개념
- 하나의 물리 코어 → 2개의 논리 코어처럼 작동
- 리눅스 등 운영체제는 CPU 개수가 2배로 보입니다
✅ 장점과 주의사항
장점 단점
리소스 활용률 향상 | 성능이 2배 향상되는 것은 아님 |
멀티태스킹/멀티스레드 처리 향상 | 일부 워크로드에선 오히려 느려질 수 있음 |
머신러닝, 웹 서버 등에 효과적 | 보안 이슈(Spectre, Meltdown 등) 존재 |
실제로 CPU 개수가 많다고 해서 코어가 많은 것은 아니므로 cpu cores, siblings, threads per core를 함께 봐야 정확한 이해가 가능합니다.
✅ 메모리(RAM) 정보 확인
1. free -h
시스템의 메모리 사용량을 요약해서 보여주는 대표적인 명령어입니다.
free -h
예시 출력:
total used free shared buff/cache available
Mem: 31Gi 4.5Gi 22Gi 1.1Gi 4.1Gi 25Gi
Swap: 2Gi 0Gi 2Gi
▶️ Mem:의 의미
항목 설명
total | 전체 물리 메모리 (RAM) |
used | 사용 중인 메모리 (버퍼/캐시 포함) |
free | 아무 작업도 하지 않는 진짜 여유 공간 |
shared | 여러 프로세스 간 공유된 메모리 |
buff/cache | 커널이 사용 중인 버퍼/캐시 |
available | 실제로 애플리케이션이 사용할 수 있는 메모리 (가장 중요!) ✔️ |
⚠️ used는 캐시 포함 값이므로, 실제 사용량 판단은 available 기준으로 해야 정확합니다.
▶️ Swap:의 의미
항목 설명
total | 설정된 전체 스왑 공간 |
used | 현재 사용 중인 스왑 |
free | 남은 스왑 공간 |
- 스왑은 디스크를 메모리처럼 사용하는 공간이며, 속도가 매우 느립니다.
- RAM 부족 시에만 사용되며, 과도하게 사용되면 성능 저하의 원인이 됩니다.
✅ 디스크 용량 확인
1. df -h
디스크 파티션별 사용량과 남은 공간을 확인합니다.
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 40G 15G 23G 40% /
2. lsblk
디스크와 파티션 구조를 트리 형태로 확인합니다.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
└─sda1 8:1 0 50G 0 part /
3. du -sh /경로
특정 디렉토리의 전체 크기를 확인할 때 사용합니다.
du -sh /var/log
✅ 전체 시스템 요약 정보
1. inxi -Fxz
시스템 전체의 CPU, RAM, 디스크, GPU 등을 보기 좋게 요약해주는 명령어입니다. 설치가 필요합니다.
sudo apt install inxi
inxi -Fxz
2. neofetch
간단한 시스템 정보를 시각적으로 출력해줍니다.
sudo apt install neofetch
neofetch
✅ 보너스: 네트워크 정보 확인
- IP 주소 확인:
ip a
# 또는
ifconfig
- 네트워크 속도/정보 확인:
ethtool eth0
✅ 마무리하며
리눅스 서버의 사양을 빠르게 파악하는 것은 운영 안정성 확보와 성능 튜닝의 기본입니다.
이번 글에서는 단순 명령어 나열이 아니라 각 명령어의 출력 결과가 의미하는 바까지 함께 정리해보았습니다.
실제 서버를 운영하거나 성능 문제를 분석할 때, 위 명령어들을 적극 활용해보세요.
'데브옵스 (DevOps)' 카테고리의 다른 글
GitHub Actions: 자동화의 새로운 길을 열다 (1) | 2024.10.21 |
---|---|
CI/CD: 효율적이고 신속한 소프트웨어 개발을 위한 전략 (0) | 2024.10.21 |
도커(Docker)와 도커 컴포즈(Docker Compose) 소개 (0) | 2024.10.21 |
데브옵스(DevOps)란 무엇인가? (3) | 2024.10.21 |