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

변재한·2023년 5월 13일
0
post-thumbnail

실행환경


Cloud Platform: AWS

OS: Amazon Linux 2023 AMI 2023.0.20230503.0 x86_64 HVM kernel-6.1
인스턴스 유형: t2.micro

본 실습에서는 AWS에 리눅스 OS를 띄운 VM에 SSH로 접속하여 진행하였다.

커널 정보 확인하기

리눅스의 커널 버전을 확인할 수 있는 방법 즉, 커맨드는 여러가지 방법이 있다.

  • uname -a
    [root@ip-10-0-1-13 ~]# uname -a
    Linux ip-10-0-1-13.ap-northeast-2.compute.internal 6.1.25-37.47.amzn2023.x86_64 
    #1 SMP PREEMPT_DYNAMIC Mon Apr 24 23:20:16 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
    위 서버의 커널 버전은 6.1.25-37.47.amzn2023.x86_64로 x86 계열의 64비트 운영체제를 사용하고 있음을 확인할 수 있다.
  • cat /proc/version
    [root@ip-10-0-1-13 ~]# cat /proc/version
    Linux version 6.1.25-37.47.amzn2023.x86_64 (mockbuild@ip-10-0-36-105) (gcc (GCC) 11.3.1 20221121 
    (Red Hat 11.3.1-4), GNU ld version 2.39-6.amzn2023.0.5) #1 SMP PREEMPT_DYNAMIC Mon Apr 24 23:20:16 UTC 2023
  • hostnamectl
    [root@ip-10-0-1-13 ~]# hostnamectl
    ...
              Kernel: Linux 6.1.25-37.47.amzn2023.x86_64
        Architecture: x86-64
     Hardware Vendor: Xen
      Hardware Model: HVM domU
    Firmware Version: 4.11.amazon
    Kernel 부분을 보면 리눅스의 커널 버전을 알 수 있다.

버전에 이어 커널에 관한 다양한 정보를 더 보기 위해 dmesg 명령어를 사용해본다.

dmesg는 커널의 디버그 메시지를 볼 수 있는 명령어로, 커널이 부팅할 때 나오는 메시지와 운영 중에 발생하는 메시지를 볼 수 있게 해주는 명령어이다.

[root@ip-10-0-1-13 ~]# dmesg | grep -i kernel | more
...
[    0.040224] Kernel command line: BOOT_IMAGE=(hd0,gpt1)/boot/vmlinuz-6.1.25-37.47.amzn2023.x
86_64 root=UUID=974bfdce-a279-4e16-b3a4-114c0f95708b ro console=tty0 console=ttyS0,115200n8 nv
me_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0 selinux=1 security=selinux quie
t ====> 커널이 부팅시에 사용한 커널 파라미터 표시
...
[    0.042708] Memory: 199372K/1048180K available (14346K kernel code, 8885K rwdata, 8224K rod
ata, 2208K init, 19424K bss, 102092K reserved, 0K cma-reserved) ====> 부팅 시에 커널이 인식하는 메모리 정보

커널의 컴파일 옵션 확인

[root@ip-10-0-1-13 ~]# cat /boot/config-`uname -r` | more
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 6.1.25-37.47.amzn2023.x86_64 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4)"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=110301
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23900
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=23900
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
CONFIG_PAHOLE_VERSION=122
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y
...

CPU 정보 확인

리눅스에서는 dmidecode 명령을 통해 하드웨어의 정보를 확인한다.

본 실습의 AWS Linux OS에서는 dmidecode 명령어가 기본적으로 탑재가 안되어있어 패키지 설치 후 실행하였다.

[root@ip-10-0-1-13 ~]# yum install dmidecode
  • Bios 키워드 결과
[root@ip-10-0-1-13 ~]# dmidecode -t bios
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
        Vendor: Xen
        Version: 4.11.amazon
        Release Date: 08/24/2006
        Address: 0xE8000
        Runtime Size: 96 kB
        ROM Size: 64 kB
        Characteristics:
                PCI is supported
                EDD is supported
                Targeted content distribution is supported
        BIOS Revision: 4.11

bios 키워드의 출력을 통해 특정 bios 버전의 문제를 알아차리고, 내가 사용하는 버전이 특정 버전과 매치하는지를 확인할 때 주로 사용한다.

본 실행환경의 서버는 Xen에서 만든 서버이며 bios의 버전은 2006/08/24에 발표된 4.11.amazon 버전이다.

  • system 키워드 결과
[root@ip-10-0-1-13 ~]# dmidecode -t system
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.

Handle 0x0100, DMI type 1, 27 bytes
System Information
        Manufacturer: Xen
        Product Name: HVM domU
        Version: 4.11.amazon
        Serial Number: ec2d9cd6-3180-6285-9d42-eb4f22e4dd2f
        UUID: ec2d9cd6-3180-6285-9d42-eb4f22e4dd2f
        Wake-up Type: Power Switch
        SKU Number: Not Specified
        Family: Not Specified

Handle 0x2000, DMI type 32, 11 bytes
System Boot Information
        Status: No errors detected

본 실행환경의 장비는 Xen에서 만든 HVM domU 모델이다.

이러한 모델명을 통해 어느 정도의 성늘을 낼 수 있는지 확인할 수 있다.

  • processor 키워드 결과
[root@ip-10-0-1-13 ~]# dmidecode -t processor
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.

Handle 0x0401, DMI type 4, 35 bytes
Processor Information
        Socket Designation: CPU 1
        Type: Central Processor
        Family: Other
        Manufacturer: Intel
        ID: F2 06 03 00 FF FB 8B 17
        Version: Not Specified
        Voltage: Unknown
        External Clock: Unknown
        Max Speed: 2400 MHz
        Current Speed: 2400 MHz
        Status: Populated, Enabled
        Upgrade: Other
        L1 Cache Handle: Not Provided
        L2 Cache Handle: Not Provided
        L3 Cache Handle: Not Provided
        Serial Number: Not Specified
        Asset Tag: Not Specified
        Part Number: Not Specified

processor 키워드로 장비의 cpu 정보를 확인할 수 있다.

본 서버는 한개의 소켓이 있는 것을 볼 수 있는데, 이 소켓에 대한 코어는 나타나 있지 않다.

소켓: 물리적인 CPU 개수

코어: 물리적인 CPU 안에 몇개의 컴퓨팅 코어가 있는지

아래 명령어를 통해 본 서버의 cpu 코어의 개수가 1개인 것을 알 수 있었다.

[root@ip-10-0-1-13 ~]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 63
model name      : Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz
stepping        : 2
microcode       : 0x49
cpu MHz         : 2400.023
cache size      : 30720 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology 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 cpuid_fault invpcid_single pti fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit mmio_stale_data
bogomips        : 4800.04
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

똑같은 목적을 위한 다른 명령어로 lscpu도 있다.

메모리 정보 확인

  • memory 키워드 결과
[root@ip-10-0-1-13 ~]# dmidecode -t memory
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.

Handle 0x1000, DMI type 16, 19 bytes
Physical Memory Array
        Location: Other
        Use: System Memory
        Error Correction Type: Multi-bit ECC
        Maximum Capacity: 1 GB
        Error Information Handle: Not Provided
        Number Of Devices: 1

Handle 0x1100, DMI type 17, 34 bytes
Memory Device
        Array Handle: 0x1000
        Error Information Handle: 0x0000
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 1 GB
        Form Factor: DIMM
        Set: None
        Locator: DIMM 0
        Bank Locator: Not Specified
        Type: RAM
        Type Detail: None
        Speed: Unknown
        Manufacturer: Not Specified
        Serial Number: Not Specified
        Asset Tag: Not Specified
        Part Number: Not Specified
        Rank: Unknown
        Configured Memory Speed: Unknown

memory 키워드는 크게 physical memory array와 memory device의 두 영역으로 나눌 수 있다.

  • Physical Memory Array : 하나의 CPU 소켓에 함께 할당된 물리 메모리의 그룹을 의미
  • Memory Device : 실제로 시스템에 꽂혀 있는 메모리를 의미

본 서버의 CPU 소켓이 하나였기 때문에 Physical Memory Array도 1개가 있다.

또한, 본 서버의 실제로 시스템에 꽂혀 있는 메모리는 Size: 1 GB인 것을 볼 수 있다.

디스크 정보 확인

[root@ip-10-0-1-13 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           475M     0  475M   0% /dev/shm
tmpfs           190M  2.8M  188M   2% /run
/dev/xvda1      8.0G  1.7G  6.3G  21% /
tmpfs           475M     0  475M   0% /tmp
tmpfs            95M     0   95M   0% /run/user/1000

본 서버에는 1개의 파티션이 있으며, 이 파티션은 /dev/xvda1에 마운트되어 있다.

  • 디스크의 물리적 정보 확인

네트워크 정보 확인

  • lspci | grep -i ether
[root@ip-10-0-2-116 ~]# lspci | grep -i ether

위 명령어를 본 서버에 적용했을 때 아무런 출력이 나타나지 않았다.

EC2 인스턴스에서 가상화된 NIC가 나타나야 할 것 같은데 왜 안나타나지 ? 해서

검색해봤더니 두 가지 이유가 있을 수 있다고 했다.

  1. lspci의 한계: lspci 명령은 PCI 버스에 연결된 물리적 장치를 포함하는 PCI 장치에 대한 정보를 제공한다. 그러나 EC2 인스턴스의 모든 네트워크 인터페이스가 PCI 장치를 통해 노출되는 것은 아니다. 일부 가상화된 네트워크 인터페이스는 다르게 구현될 수 있으며 lspci 명령을 통해 표시되지 않을 수 있다.
  2. 가상화된 네트워킹: EC2 인스턴스는 네트워크 인터페이스가 물리적 PCI 장치 대신 가상 장치로 표시되는 가상화된 네트워킹을 활용한다. 이러한 가상 인터페이스는 하이퍼바이저에서 관리하며 lspci를 통해 표시되지 않을 수 있다.
profile
Infra and Devops 엔지니어가 되고 싶어용

0개의 댓글