Cloudera ECS 에 호스트를 추가하기 전 prereq_check.sh 가 지적하는 vm.swappiness=1, vm.overcommit_memory=1, Transparent Huge Pages 비활성화를 RHEL 8 에서 즉시 적용하고 재부팅 후에도 유지되게 하는 방법이다.
sysctl -w vm.swappiness=1
sysctl -w vm.overcommit_memory=1
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
tee /etc/sysctl.d/99-cloudera-ecs.conf <<'EOF'
vm.swappiness = 1
vm.overcommit_memory = 1
EOF
sysctl --system
# THP — GRUB 커널 인자 (권장)
grubby --update-kernel=ALL --args="transparent_hugepage=never"
grubby --info=ALL | grep transparent
RHEL 8 은 tuned 프로파일이 THP 를 다시 켜는 경우가 있어 tuned 에서도 막아 두는 편이 안전하다.
mkdir -p /etc/tuned/no-thp
tee /etc/tuned/no-thp/tuned.conf <<'EOF'
[main]
include=throughput-performance
[vm]
transparent_hugepages=never
EOF
tuned-adm profile no-thp
rc.local 방식을 쓸 때는 /etc/rc.d/rc.local 에 echo never > ... 두 줄을 넣고 chmod +x 와 systemctl enable rc-local 이 필요하다. 스크립트로 실행되는 것이지 source 하는 것이 아니다.
sysctl vm.swappiness vm.overcommit_memory
cat /sys/kernel/mm/transparent_hugepage/enabled # always madvise [never]
swapoff -a 후 /etc/fstab 의 swap 항목을 주석 처리한다.vm.overcommit_memory=1 은 할당 요청을 거의 무조건 허용하는 모드라 실제 메모리가 부족하면 OOM Killer 가 동작한다. ECS 요구사항이므로 따르되 노드 메모리 여유를 감시한다.