1. 커널 정보 확인
1.1 uname
uname -a
-> 커널 버전 정보 확인 가능
1.2 dmesg
- dmesg는 커널의 디버그 메세지로 커널이 부팅할 때 나오는 메시지와 운영 중에 발생하는 메시지를 볼 수 있게 하는 명령어
- 커널이 메모리를 인식하는 과정, 하드웨어를 인식하고 드라이버를 올리는 과정, 부팅 시 적용된 커널 파라미터 등 확인 가능
dmesg | grep -i | kernel
- Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.10.0-1127.19.1.el7.x86_64 root=UUID=6cd50e51-cfc6-40b9-9ec5-f32fa2e4ff02 ro crashkernel=auto net.ifnames=0 console=tty0 console=ttyS0,115200
- 커널이 부팅시에 사용한 커널 파라미터
- crashkernel, net.ifnames, console
- cat /proc/cmdline 명령어 통해 /proc 파일 시스템에서도 확인 가능
- Memory: 966740k/1048552k available (7784k kernel code, 392k absent, 81420k reserved, 5958k data, 1980k init)
- 부팅 시 커널이 인식하는 메모리 정보
- 해당 로그에서 나오는 가용 메모리와 부팅 완료 후 free 명령어 에서 보이는 메모리 양이 다를 수 있음. 이는 부팅 과정에서 사용된 일부 메모리들이 부팅 완료후에 반환되기 때문
2. CPU 정보 확인
CPU 정보는 dmidecode 명령어를 통해 하드웨어 정보 확인 가능
- bios, system, processor, memory 옵션 자주 사용
- bios : bios 정보 확인
[centos@ping ~]$ sudo dmidecode -t bios
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Seabios /*BIOS 벤더사*/
Version: 0.5.1
Release Date: 01/01/2011
Address: 0xE8000
Runtime Size: 96 kB
ROM Size: 64 kB
Characteristics:
BIOS characteristics not supported
Targeted content distribution is supported
BIOS Revision: 1.0
- system: 장비사, 장비 모델명, 제조사 등 확인
[centos@ping-test1 ~]$ sudo dmidecode -t system
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
Handle 0x0100, DMI type 1, 27 bytes
System Information
Manufacturer: Fedora Project
Product Name: OpenStack Nova
Version: 17.23.0-1.el7
Serial Number: 7b43caca-2bda-410b-93fa-82ad4ead733c
UUID: 6c89a211-1608-4e2a-8ff2-85b461de245d
Wake-up Type: Power Switch
SKU Number: Not Specified
Family: Virtual Machine
Handle 0x2000, DMI type 32, 11 bytes
System Boot Information
Status: No errors detected
- processor: cpu 장비 확인
[centos@ping-test1 ~]$ sudo dmidecode -t processor
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
Handle 0x0401, DMI type 4, 32 bytes
Processor Information
Socket Designation: CPU 1
Type: Central Processor
Family: Other
Manufacturer: Bochs
ID: E3 06 05 00 FF FB 8B 0F
Version: Not Specified
Voltage: Unknown
External Clock: Unknown
Max Speed: 2000 MHz
Current Speed: 2000 MHz
Status: Populated, Enabled
Upgrade: Other
L1 Cache Handle: Not Provided
L2 Cache Handle: Not Provided
L3 Cache Handle: Not Provided
- cpu 정보는 하기 명령어로도 확인이 가능
# cat /cpu/info
# lscpu
3. 메모리 정보 확인
[centos@ping-test1 ~]$ sudo dmidecode -t memory
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
Handle 0x1000, DMI type 16, 15 bytes
Physical Memory Array /* 하나의 CPU 소켓에 함게 할당된 무릴 메모리의 그룹 */
Location: Other
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 1 GB
Error Information Handle: Not Provided
Number Of Devices: 1 /* 총 1개 꽂을 수 있음 */
Handle 0x1100, DMI type 17, 21 bytes
Memory Device /* 실제 시스템에 꽂혀있는 메모리 */
Array Handle: 0x1000
Error Information Handle: 0x0000
Total Width: 64 bits
Data Width: 64 bits
Size: 1024 MB
Form Factor: DIMM
Set: None
Locator: DIMM 0
Bank Locator: Not Specified
Type: RAM
Type Detail: None
- Physical Memory Array: 하나의 CPU 소켓에 함께 할당된 물리 메모리 그룹
- 최근 프로세스는 NUMA 를 이용해서 각각의 CPU가 사용할 수 있는 로컬 메모리 제공
- Memory Device: 실제로 시스템에 꽂혀잇는 메모리
- free 명령어 통해서도 메모리 정보 확인 가능
4. 디스크 정보 확인
[centos@ping-test1 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 473M 0 473M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 20G 1.5G 19G 8% /
tmpfs 100M 0 100M 0% /run/user/1000
- 1개의 파티션 존재
- / 에 마운트 되어 있음
- /dev/vda : 가상 서버에서 사용하는 디스크 타입, XEN, KVM과 같이 하이퍼바이저 위에서 동작중인 서버
시스템이 디스크와 통신하기 위해 컨트롤러 라는 부품이 존재하는데 이 대 대표적으로 IDE 타입과 SCSI 타입이 있음
- hda : IDE 타입 (개인용 컴퓨터를 위한 방식)
- sda : SCSI 타입 (서버용 컴퓨터를 위한 타입, 더 많은 장치를 연결할 수 있어 확장성 및 접근 속도 good), SATA, SAS 와 같은 일반적인 하드디스크
- 대부분의 서버에는 raid 컨트롤러가 잇어, 물리적 디스크의 정보까지 확인이 어려움. (/dev/vda도 논리적 볼륨이기 때문)
- smarctl 명령어를 사용하면 물리적 디스크 정보까지 확인할 수 있으나, centos 기본 패키지에서는 존재하지 않나봄. 다음에 패키지 찾아서 테스트 해볼 예정
5. 네트워크 정보 확인
하기 명령어를 통해 네트워크 정보 확인 가능
lscpi
ethtool <이더넷 명>
[centos@ping-test1 ~]$ lspci | grep -i ether
00:03.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:04.0 Ethernet controller: Red Hat, Inc. Virtio network device
보통 네트워크 카드의 제조사명과 모델명이 뜬다. 나는 클라우드 환경에서 테스트해서 위와 같이 나옴
[centos@ping-test1 ~]$ ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX: 256
RX Mini: 0
RX Jumbo: 0
TX: 256
Current hardware settings:
RX: 256
RX Mini: 0
RX Jumbo: 0
TX: 256
- Ring Buffer: 네트워크 카드의 버퍼 공간을 의미
- ethtool에서 g 옵션을 사용하면 Ring Buffer의 크기 확인 가능
- 네트워크 패킷 이동 과정
- 1. 케이블을 통해 패킷 정보가 들어옴
- 2. 네트워크 카드의 Ring Buffer 공간에 패킷 정보 복사
- 3. 커널에 패킷 도착을 알림
- 4. 패킷 정보를 다시 커널로 복사
- 따라서 Ring Buffer의 크기 중요. maximums == current 값 같도록 셋팅해야 함.
- ethtool에서 -G 옵션을 통해 값 세팅 가능
- ethtool 옵션
- g : Ring Buffer 크기 확인
- G : Ring Buffer 값 세팅
- k : 네트워크 카드의 성능 최적화 옵션 확인 가능
- K : 네트워크 카드의 성능 최적화 옵션 설정
- i : 네트워크 카드의 커널 모듈 정보 표시
- 네트워크 카드는 단순 패킷 전달 외에도 성능 관련 기능도 제공
- tcp-offlad: MTU 이상의 크기를 가지는 패킷 분할 작업을 CPU가 아닌 네트워크 카드가 직접 수행 -> CPU 부하 줄임 -> 패킷 처리 성능 높임, 다만 패킷 유실 발생 가능성이 있어 off 권장
참조
강진우, DevOps와 SE를 위한 리눅스 커널 이야기, 인사이트, 2017, Chapter01
'IT > Linux' 카테고리의 다른 글
[리눅스 커널 이야기]프로세스 상태보기 - D, R, S, T, Z, fork(), wait(), exit() (0) | 2022.08.10 |
---|---|
[리눅스 커널 이야기] top로 보는 프로세스 정보(1), virt, res, shr, memory commit, page fault, page table (0) | 2022.08.02 |
Linux 파일 권한 - 사용자 접근 권한 구분, 리스트 각 역할 (0) | 2022.06.28 |
[FastCampus] 리눅스 운영 파트 - 사용자, 그룹 및 권한(sudo, su, sudoer, su -) (0) | 2022.06.21 |
[FastCampus] 리눅스 운영파트-명령어02 (cp, mv, ln, file, reboot, shutdown, man) (0) | 2022.06.20 |