**리눅스 NMI 덤프 (NMI Dump)**는 **Non-Maskable Interrupt (NMI)**가 발생했을 때, 시스템의 상태를 덤프하여 문제의 원인을 추적하고 디버깅하는 데 도움을 주는 중요한 기능입니다. 주로 하드웨어 오류나 심각한 시스템 오류가 발생했을 때 사용됩니다. 이 덤프는 시스템의 메모리 상태, CPU 레지스터, 스택 트레이스 등을 포함하여, 문제 발생 시점의 정보를 기록합니다.
NMI 덤프의 역할
1. 하드웨어 오류 디버깅: NMI는 보통 하드웨어 오류(예: 메모리 오류, CPU 오류 등)로 인해 발생하는데, 이러한 오류가 발생할 때 시스템의 상태를 덤프하여 하드웨어 오류를 분석할 수 있습니다.
2. 커널 오류 및 시스템 오류 분석: NMI가 발생하면, 시스템이 치명적인 오류로 인해 응답을 멈추지 않도록 빠르게 상태 정보를 기록하여 나중에 분석할 수 있게 도와줍니다.
3. 디버깅: 시스템의 상태를 덤프하면, 관리자나 개발자는 문제를 재현하지 않고도 문제의 원인이나 오류 상태를 조사할 수 있습니다.
NMI덤프 발생 상황
1. 하드웨어 오류: 예를 들어, 메모리 오류나 CPU 오류, 특정 I/O 장치의 문제가 발생할 때.
2. 심각한 시스템 상태: 예를 들어, 커널 패닉이 발생하기 전에 시스템 상태를 기록하거나, 시스템이 심각한 과부하 상태에 빠졌을 때.
3. 디버깅 용도: 개발 중 시스템을 디버깅하기 위해 NMI를 강제로 발생시켜 특정 상태를 덤프할 수 있습니다.
NMI 덤프 활성화 방법
리눅스에서 NMI 덤프를 활성화하고 사용하는 방법은 주로 kexec, kdump, 또는 nmi_watchdog 같은 리눅스 커널 기능을 활용하는 방식입니다.
1. NMI Watchdog 활성화
NMI Watchdog는 시스템에 NMI를 발생시켜 하드웨어 오류나 커널 문제가 발생했을 때, 이를 감지하고 자동으로 덤프를 생성하는 기능입니다.
NMI Watchdog 활성화: NMI Watchdog을 활성화하려면 커널 부팅 파라미터에 nmi_watchdog=1을 추가합니다. nmi_watchdog는 시스템이 응답하지 않거나 오류가 발생했을 때, 커널이 자동으로 NMI를 발생시키게 해줍니다.
부팅 파라미터에 nmi_watchdog 설정을 추가하려면:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nmi_watchdog=1"
그런 다음 update-grub을 실행하고 시스템을 재부팅합니다.
NMI Watchdog 상태 확인: NMI Watchdog이 활성화되었는지 확인하려면 다음 명령어를 사용합니다.
cat /proc/sys/kernel/nmi_watchdog
1이면 활성화된 상태이고, 0이면 비활성화된 상태입니다.
2. NMI 더프 강제 발생
NMI를 강제로 발생시켜 시스템의 상태를 덤프하려면 echo 명령을 사용하여 NMI를 트리거할 수 있습니다.
NMI 발생 명령 :
echo c > /proc/sysrq-trigger
이 명령은 시스템에 커널 패닉을 발생시키며, 시스템이 설정된 덤프 메커니즘을 사용하여 메모리 덤프를 생성합니다.
'Server > Linux' 카테고리의 다른 글
[Linux] tcpdump 명령어 (0) | 2024.12.07 |
---|---|
[Linux] U2L NAS uid/gid 검토사항 (0) | 2024.11.25 |
[Linux] nc 명령어 정리 (0) | 2024.11.18 |
[Linux] RedHat 7.x 버전별 EOSL (End of Support Lifecycle) (0) | 2024.11.12 |
[Linux] ssh config 내 AddressFamily inet 설정 (1) | 2024.10.13 |