본문으로 바로가기


고객사 DB서버가 갑자기 ICMP 체크가 안돼서 보니

위 화면과 같은 irq 에러로그가 찍혀있었습니다.

irq가 뭔지 먼저 알아보겠습니다.





irq(Interrupt ReQuest)


인터럽트 신호를 처리하는 데에 쓰이는 컴퓨터 버스 라인의 인터럽트 행위

또는 프로그래머블 인터럽트 컨트롤러의 인터럽트 입력 라인을 가리킨다.





그렇다면 다시 에러로그로 돌아와서

에러로그를 확인해봅시다.


irq 63: nobody cared (try booting with the "irqpoll" option)

handlers:

[<ffffffffa01d1ef0>] (e1000_msix_other+0x0/0x130 [e1000e])

Disabling IRQ #63


irq 에 핸들러가 등록되어 있지 않거나

공유 인터럽트의 경우에는 H/W 나 F/W 또는 버그가있는 드라이버 일 경우 

그를 지원하는 하드웨어로부터 그를 가리 키지 않았음을 나타내는 반환 된 상태를 의미합니다



해결법은

위 에러로그에 나와있듯이 부팅시에 irpoll 옵션을 주면되는데요


/etc/grub.conf



kernel 부분 맨 끝에 irqpoll 옵션을 추가해 재부팅하시면 정상적으로 네트워크 통신이 가능합니다.

pcie_aspm=off 옵션은 왜 주었냐면

PCIe 연결로 접속된 장치가 사용하지 않을때 저전력모드로 전환이 되어

네트워크가 죽는경우가 있어서 pcie_aspm=off 옵션으로

aspm 을 비활성화 해줌으로써 PCIe 연결이 최대 성능을 발휘하게 해줍니다.

[ASPM = 활성 상태 전원 관리(Active-State Power Management)]