Linux 시스템은 대용량 메모리 접근을 위한 Hugepage 기능을 제공합니다. 이는 특정 애플리케이션, 특히 데이터베이스나 인메모리 계산과 같은 메모리 집약적인 작업의 성능을 향상시키는 데 효과적입니다. 하지만 모든 경우에 Hugepage가 최선의 선택은 아닙니다. 일부 애플리케이션에서는 오히려 메모리 낭비나 심지어 시스템 멈춤(hang)과 같은 문제를 야기할 수 있기 때문입니다. 이 글에서는 Rocky Linux 시스템에서 Hugepage 기능을 안전하게 비활성화하는 방법을 간단 명료하게 설명합니다. 특히, 성능 저하를 경험하거나 Hugepage 관련 문제를 해결해야 하는 경우 유용한 정보가 될 것입니다.
Hugepage를 비활성화하는 가장 일반적인 방법은 부팅 시 커널 파라미터를 수정하는 것입니다. 먼저 /etc/default/grub 파일을 vi 에디터(혹은 nano, vim 등 다른 에디터)를 이용하여 열어야 합니다. 파일을 열었다면 GRUB_CMDLINE_LINUX 라인을 찾아서 수정해야 합니다. 이 라인에는 시스템 부팅 시 커널에 전달되는 다양한 파라미터가 포함되어 있습니다. 이 라인의 끝에 다음 두 가지 옵션을 추가합니다.
transparent_hugepage=never: 이 옵션은 투명 Hugepage 기능을 완전히 비활성화합니다. 시스템이 자동으로 Hugepage를 할당하거나 사용하지 않습니다.elevator=noop: I/O 스케줄러를 'noop' 모드로 설정합니다. 'noop'는 가장 간단한 스케줄러로, 요청 순서대로 I/O 작업을 처리합니다. 일부 경우 Hugepage와의 상호작용으로 인한 성능 저하를 완화하는 데 도움이 될 수 있습니다.
옵션 추가 후에는 파일을 저장하고 종료합니다. 다음으로, grub2-mkconfig -o /boot/grub2/grub.cfg 명령어를 실행하여 GRUB 설정 파일을 업데이트해야 합니다. 이 명령어는 변경된 grub 설정을 반영하여 새로운 grub.cfg 파일을 생성합니다. 마지막으로 시스템을 재부팅하면 변경 사항이 적용됩니다. 재부팅 후 cat /proc/meminfo 명령어를 통해 Hugepage 관련 정보를 확인하여 비활성화가 제대로 적용되었는지 확인할 수 있습니다. Hugepagesize 값이 0KB로 표시되면 성공적으로 비활성화된 것입니다.
Hugepage 비활성화는 시스템 성능에 긍정적 또는 부정적 영향을 줄 수 있습니다. 따라서 문제 해결이나 성능 최적화를 위해서만 사용하는 것이 좋습니다. 필요에 따라 위에 설명된 방법을 통해 Hugepage를 비활성화하고, 시스템 성능을 모니터링하여 최적의 설정을 찾으시길 바랍니다. 잘못된 설정으로 인한 문제 발생을 방지하기 위해 변경 전 시스템 상태를 백업하는 것도 좋은 방법입니다.