연구실의 스토리지 서버 OS로 Fedora 20을 쓰고있는데 몇 주마다 굉장히 느려질 때가 있다.
top으로 확인해보니 acpi_pad라는 프로세스가 CPU를 전부 먹고 있었던 것
검색해보니 Ubuntu나 RHEL, CentOS에서도 흔히 발생하는 커널 이슈였다.
커널을 업데이트하면 해결된다는데 라이브 서버에서 그런게 쉬울 리가 없다.
acpi_pad는 고급 구성 및 전원 인터페이스(Advanced Configuration and Power Interface)에서 사용되는 프로세서 관련 드라이버 모듈이다. [Wiki]
그런데 프로세서의 전원 관리를 위해 만든 모듈이 오히려 프로세서를 독점하는 경우가 발생한다.
이를 해결하기 위해서는 acpi_pad를 꺼버리면 된다.
모듈이다보니 일반적인 모듈 관리방법을 사용해 acpi_pad를 제어할 수 있다.
아래와 같이 blacklist로 다음 부팅부터 모듈을 로드하지 않게끔 하거나
$ echo blacklist acpi_pad >> /etc/modprobe.d/blacklist.conf $ sudo sh -c 'echo blacklist acpi_pad >> /etc/modprobe.d/blacklist.conf'
또는, 모듈 자체를 지워버리는 방법을 사용할 수 있다.
다만 모듈을 지워버리는 경우 다음 부팅시에 다시 모듈이 로드되니, 이는 재부팅이 불가능한 경우에서 사용하면 된다.
아래의 두 방법 중 아무거나 사용하면 된다.
$ modprobe -r acpi_pad $ rmmod acpi_pad
grub에서 설정할 수도 있다.
grub이 /etc/default/grub.conf에서 관리되는 경우 (필자의 Fedora는 아니었다)
다음의 키워드로 acpi를 disable할 수 있다.
acpi_pad.disable=1