ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Linux 시스템 정보 확인하기(BIOS/CPU/Memory/DISK/NIC)
    커널(Kernel) 2022. 11. 21. 00:52

     

    환경 정보

    OS: ubuntu18.04 

     

    Bios 정보 확인하기

    dmidecode 커맨드를 사용하면 시스템 컴포넌트의 정보를 쉽게 확인할 수 있다.

    다음은 -t bios 인자를 주어 이 시스템의 BIOS를 확인한 것이다.   

     

    이 시스템은 American Megatrends Inc 에서 만든 서버이며,

    bios의 버전이 2019/08/13에 발표된 F2임을 알 수 있다. 

     

     

    시스템 정보 확인하기

    주로 이 커맨드를 가장 많이 사용한다고 한다. 

     

    이 장비는 Gigabyte Technology Co.에서 만든 B365M D3H 모델이라는 것을 확인할 수 있다.  

     

     

    CPU 정보 확인하기

    -t processor를 인자로 주면 CPU 정보 확인이 가능하다.

     

    여기서 소켓이라는 말이 나오는데, 소켓은 물리적인 CPU를 의미하며

    소켓은 메인보드에 따라 여러 개가 될 수 있다. 

     

    현재 이 시스템에서는 소켓이 하나인데 Intel이 만든 Core i7을 사용하는 것을 확인할 수 있다.

     

    코어는 물리적인 CPU안에 들어가는 컴퓨팅 코어를 의미한다. 

     

    그리고 현재는 코어가 8개를 사용하고 있는 것을 알 수 있으며,

    스레드가 8개인 것으로 보아 하이퍼 스레딩은 사용하지 않는 것 같다. (확실하지 않다)

     

    dmidecode를 이용한 방법 이외에도

    /proc/cpuinfo를 확인하거나 lspcu 커맨드를 사용하여 cpu 정보를 확인할 수 있다. 

     

     

    Memory 정보 확인하기 

    dmidecode를 통해서 memory에 관련된 정보를 확인해보면

    physical memory array와 memory device라는 말이 나온다.

     

    physical memory array는 하나의 CPU 소켓에 함께 할당된 메모리 그룹을 말한다.

     

    그리고 memory device는 physical memory array에 할당되는 물리 메모리를 의미한다. 

     

    현재 이 시스템은 1개의 CPU 소켓을 가지고 있고,

    이 CPU 소켓과 연결된 physical memory array에는 

    최대 4개의 memory device가 연결가능하고, 최대 용량이 64GB이다.  

     

    다음과 같이 memory device 공간이 4개가 있는것을 확인할 수 있으며,

    DDR4 8GB 2개가 꽂혀 있는 것을 알 수 있다. 

     

     

    디스크 정보 확인하기 

    다음과 같이 sda라는 블록 디바이스에 / 경로가 마운트되어 있는 것을 확인할 수 있다. 

     

    sda라는 네이밍은 디스크 방식에 따라 결정되는데, sda 이외에도 hda, vda등이 있다.

     

    시스템이 디스크와 통신하기 위해서는 컨트롤러라는 것을 사용하는데,

    컨트롤러의 타입이 IDE인지 SCSI인지에 따라 달라진다.

     

    IDE 방식의 경우 hda로 표시되며,

    SCSI나 요즘 많이 사용되는 SATA, SAS와 같은 일반적인 하드 디스크의 경우 sda로 표시된다. 

     

    또한 vda의 경우 가상 머신에서 사용되는 디스크 타입으로 

    KVM이나 XEN 하이퍼바이저를 사용하면 볼 수 있다. 

     

    마운트된 디스크 정보가 아닌 디스크의 물리적인 정보를 확인하고 싶다면 smartctl을 통해서 확인할 수 있다. 

     

    현재 이 시스템은 SPCC M.2라는 SSD 256GB를 사용하는 것을 알 수 있다. 

    또한 SATA와 관련된 내용도 나온다. 

     

    만약 smartctl을 통해서 확인했을 때 Logical volume이라고 나온다면 이는 RAID 컨트롤러가 달려 있기 때문이다. 

    RAID controller가 달려 있는 경우에는 smartctl의 -d 옵션을 참고하자. 

    또한 RAID contorller은 lsmod 커맨드를 통해서 확인할 수 있다. 

     

     

    네트워크 카드 정보 확인하기 

    intel에서 만든 네트워크 카드를 사용하는데, 아마도 모델명이 I219-V인듯 한데 정확하게는 모르겠다. 

     

    이제 NIC의 연결 상태를 확인해보자

     

    NIC가 지원하는 속도(10~1000BaseT)와 현재의 Speed(100Mb/s),

    네트워크 연결(Link detected)이 정상인지 확인할 수 있다.  

     

    다음과 같이 -g 옵션을 사용하면, ring buffer의 크기 또한 확인할 수 있는데

     

    ring buffer는 NIC의 buffer 공간이다. 

    케이블을 통해서 들어온 패킷은 NIC의 ring buffer에 먼저 저장되고 이후 커널로 복사된다. 

    따라서 ring buffer의 current 크기가 maxium보다 작다면, current를 maximum에 맞춰 주는게 

    네트워크 성능 향상에 좋다. 

     

     

    -k 옵션을 사용하면, 네트워크 성능 최적화 옵션들을 확인할 수 있다.  

     

    특히 여기서 중요한 부분은 generic-receive-offload에 있는 tcp-offload 기능인데 

    이 기능은 MTU 이상의 패킷 분할 작업을 CPU에서 처리하지 않고,

    NIC에서 처리하여 CPU의 부담을 줄이고 패킷 처리 성능을 높이는 방법이다. 

     

    하지만 이 기능은 대역폭이 아주 높은 서버들에서는 패킷 유실과 같은 이슈를 만들 수 있기 때문에

    이를 고려해서 사용해야 한다. 

     

    마지막으로 -i 옵션을 사용하면 NIC가 사용하는 커널 드라이버의 종류 및 버전을 확인할 수 있다.

     

    Reference

    Devops와 SE를 위한 리눅스 커널 이야기 

    반응형

    댓글

Designed by Tistory.