OS 및 스토리지/Linux

[리눅스] 시스템 구성 정보 확인

Cloud Engineer 2022. 5. 14. 20:33

0. 배경

리눅스 서버를 구축/운영할 때 bash/python와 같은 Shell 혹은 앤서블과 같은 IaC 도구를 사용하여 패치 등을 자동화하기 위해 다양한 시스템 정보 확인 관련 명령어 사용하여 정보를 수집하는 경우가 생깁니다. 물론 앤서블을 사용할 때는 gather_facts 정보를 통해 파악이 가능하지만, 본 기능은 성능 저하 이슈가 발생할 수 있으며 성능을 극한으로 끌어올릴 때 uname을 통해 커널 정보를 수집해야될 수도 있습니다. 따라서 시스템 정보 확인 명령어는 DevOps 및 SE 업무를 수행하는데 반드시 알고 있어야됩니다. 본 포스팅에서는 커널, CPU/Memory, 디스크 및 NIC 등을 확인하는 방법에 대해 알아보겠습니다.

1. 커널 정보 확인 (uname)

# 커널 전체 정보 확인
$ uname -a
Linux ip-172-31-100-100.ap-northeast-2.compute.internal 4.18.0-348.23.1.el8_5.x86_64 #1 SMP Tue Apr 12 11:20:32 EDT 2022 x86_64 x86_64 x86_64 GNU/Linux

# 커널 버전 확인
$ uname -r
4.18.0-348.23.1.el8_5.x86_64

# 프로세서 타입 확인
$ uname -p
x86_64

# 호스트이름 확인 (hostname 명령어와 동일)
$ uname -n
ip-172-31-100-100.ap-northeast-2.compute.internal

2. CPU/BIOS 정보 확인 (dmidecode)

dmidecode는 컴퓨터의 DMI (Desktop Management Interface) 테이블 정보를 사람이 읽을 수 있는 형태로 디코딩하여 보여주는 명령어입니다. 해당 명령어를 통해 CPU 및 BIOS 등에 대한 정보를 확인할 수 있습니다. dmidecode에서 자주 사용하는 타입은 system,processor, memory, bios가 있습니다.

# dmide
$ dmidecode -t
dmidecode: option requires an argument -- 't'
Type number or keyword expected
Valid type keywords are:
  bios
  system
  baseboard
  chassis
  processor
  memory
  cache
  connector
  slot
  
# 하드웨어에 대한 정보를 비롯하여 전반적인 시스템 관련 정보를 확인
$ dmidecode -t system
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
13 structures occupying 568 bytes.
Table at 0x7D9F0000.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
	Vendor: Amazon EC2    # BIOS 제조사
	Version: 1.0
	Release Date: 10/16/2017
	Address: 0xF0000
	Runtime Size: 64 kB
	ROM Size: 64 kB
	Characteristics:
		PCI is supported
		EDD is supported
		ACPI is supported
		System is a virtual machine
	BIOS Revision: 1.0

Handle 0x0001, DMI type 1, 27 bytes
System Information
	Manufacturer: Amazon EC2    # 장비 제조사
	Product Name: t3.small      # 장비 타입
	Version: Not Specified
	Serial Number: ec2927db-4af7-88b1-7b5e-1c14c865f446
	UUID: ec2927db-4af7-88b1-7b5e-1c14c865f446
	Wake-up Type: Power Switch
	SKU Number: Not Specified
	Family: Not Specified

....

2.1. CPU 정보 확인

dmidecode -t system 명령어 입력 시 나오는 부분 중 CPU 관련 내용을 해석해보겠습니다. 본 서버의 CPU는 Intel Xeon 모델이며 단일 소켓으로 최대 3.5 GHz 속도를 낼 수 있습니다. 하기 정보에서 주의깊게 볼 수 있는 부분이 단일 소켓이 보유한 코어 개수가 1개인데 멀티 코어 기능을 수행한다는 것입니다. 즉 한 개 코어로 두 개 코어와 같은 역할을 수행하며 이게 가능한 이유는 하이퍼스레딩 기능이 enabled되어 있기 때문입니다.

Handle 0x0004, DMI type 4, 42 bytes
Processor Information
	Socket Designation: CPU 0  # Socket 확인
	Type: Central Processor
	Family: Xeon
	Manufacturer: Intel(R) Corporation
...
	Version: Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz # CPU 모델 정보
	Voltage: 1.6 V
	External Clock: 100 MHz
	Max Speed: 3500 MHz    # CPU 최대 속도
	Current Speed: 2500 MHz  # 현재 CPU 속도
...
	Core Count: 1     # 코어 개수
	Core Enabled: 1
	Thread Count: 2
	Characteristics:
		64-bit capable
		Multi-Core    # 1개 코어가 멀티 코어 역할을 수행 (하이퍼스레딩 기능 enabled)
		Hardware Thread
		Execute Protection

...

dmidecode 명령어 뿐만 아니라 lscpu 명령어를 통해 CPU 세부내용 조회가 가능합니다.

# CPU 세부내용 확인
$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              2    # CPU 코어는 2개
On-line CPU(s) list: 0,1
Thread(s) per core:  2    # 각 코어 당 스레드는 2개
Core(s) per socket:  1    # 각 소켓은 1개 코어로 구성
Socket(s):           1    # 소켓은 1개
NUMA node(s):        1    # NUMA 노드는 1개
Vendor ID:           GenuineIntel
BIOS Vendor ID:      Intel(R) Corporation    # BIOS 제조사
CPU family:          6
Model:               85
Model name:          Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
BIOS Model name:     Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
Stepping:            7
CPU MHz:             2499.996
BogoMIPS:            4999.99
Hypervisor vendor:   KVM
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            1024K
L3 cache:            36608K
NUMA node0 CPU(s):   0,1
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves ida arat pku ospke

2.2. Memory 정보 확인

dmidecode -t system 명령어 입력 시 나오는 부분 중 Memory 관련 내용을 해석해보겠습니다. 본 서버는 Physical Memory Array 1개로 구성되어 있으며 해당 어레이에 2GB 메모리 1개가 장착되어 있습니다.

Handle 0x0008, DMI type 16, 23 bytes
Physical Memory Array   # Physcal Memory Array임을 확인
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: Unknown
	Maximum Capacity: 2 GB    # 1개 이상의 Physical Memory를 장착하여 최대 2GB 용량까지 확장 가능
	Error Information Handle: Not Provided
	Number Of Devices: 1

Handle 0x0009, DMI type 17, 34 bytes
Memory Device    # Physical Memory임을 확인
	Array Handle: 0x0008
	Error Information Handle: Not Provided
	Total Width: 72 bits
	Data Width: 64 bits
	Size: 2 GB   # 본 메모리 용량
	Form Factor: DIMM
	Set: None
	Locator: Not Specified
	Bank Locator: Not Specified
	Type: DDR4
	Type Detail: Static Column Pseudo-static Synchronous Window DRAM
	Speed: 3200 MT/s
	Manufacturer: Not Specified
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Rank: Unknown
	Configured Memory Speed: Unknown

Handle 0x000A, DMI type 19, 31 bytes
Memory Array Mapped Address
	Starting Address: 0x0000000000000000k
	Ending Address: 0x000000007FFFFFFFk
	Range Size: 2 GB
	Physical Array Handle: 0x0008
	Partition Width: 1

Handle 0x000B, DMI type 20, 35 bytes
Memory Device Mapped Address
	Starting Address: 0x0000000000000000k
	Ending Address: 0x000000007FFFFFFFk
	Range Size: 2 GB
	Physical Device Handle: 0x0009
	Memory Array Mapped Address Handle: 0x000A
	Partition Row Position: 1

Handle 0x000C, DMI type 127, 4 bytes
End Of Table

4. 디스크 정보 확인

디스크 정보를 확인할 수 있는 명령어는 lsblk, df입니다. lsblk와 df의 차이점에 대해 간략하게 설명드리면, lsblk는 디바이스 드라이버(/dev 참고)에 쿼리를 보내 물리 디스크에 대한 정보를 질의하는 반면, df는 파일시스템에 쿼리를 보내 논리 디스크에 대한 정보를 질의합니다. 본 포스팅에서는 df를 통한 디스크 정보 확인 방법을 살펴보겠습니다.

$ df -h
Filesystem		Size	Used	Avail	Use%	Mounted on
/dev/vda1		 20G	 19G	 543M	 98%	/
tmpfs			 16G	   0	  16G	  0%	/dev/shm
/dev/vda2		1.4T	371G	 986G	 28%	/data
...
/dev/sda, /dev/hda, /dev/vda의 차이점

- /dev/sda : SCSI, SATA, SAS 타입 (서버용 컴퓨터)
- /dev/hda : IDE 타입 (개인용 컴퓨터)
- /dev/vda : 하이퍼바이저 전용 타입 (XEN, KVM 등)
* SCSI, IDE : 시스템이 실제 물리 디스크와 통신하기 위해 사용하는 컨트롤러 부품의 타입

5. 네트워크 정보 확인

RAID 카드 ,HBA 카드, VGA 카드, NIC 등 메인보드의 주변 장치 종류 및 정보를 확인하고 싶을 때 lspci 명령을 사용합니다.

 

 

 

[출처]

- https://jangpd007.tistory.com/240

- https://lifegoesonme.tistory.com/378