Cloudera에서는 클러스터 성능을 위해 swap을 최소로 사용하도록 설정할 것을 권고한다.
Redhat7에서는 sysctl.conf에 vm.swappiness 설정을 추가하는 것으로 문제가 없지만
Redhat8 일부 버전에서 sysctl.conf의 vm.swappiness설정이 전체 프로세스로 적용이 안되는 현상.
관련 링크(https://access.redhat.com/solutions/6785021)
확인 방법 예시
1. 현재 os 설정값 1 확인
$ sysctl -a | grep vm.swappiness
vm.swappiness = 1
$ cat /sys/fs/cgroup/memory/memory.swapiness
1
2. 특정 프로세스 swappiness 적용 값 확인
1) impala process 확인
$ ps -ef | grep impalad
root 299460 2004684 0 09:41 pts/0 00:00:00 grep --color=auto impalad
impala 3270958 3270935 1 Feb23 ? 01:26:24 /opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1000.24102687/lib/impala/sbin-retail/impalad --flagfile=/var/run/cloudera-scm-agent/process/1964-impala-IMPALAD/impala-conf/impalad_flags
2) impala process 가 속해있는 cgroup 확인
$ cat /proc/3270958/cgroup
12:pids:/system.slice/cloudera-scm-supervisord.service
11:hugetlb:/
10:freezer:/
9:cpuset:/
8:perf_event:/
7:cpu,cpuacct:/system.slice/cloudera-scm-supervisord.service
6:memory:/system.slice/cloudera-scm-supervisord.service
5:blkio:/system.slice/cloudera-scm-supervisord.service
4:devices:/system.slice/cloudera-scm-supervisord.service
3:net_cls,net_prio:/
2:rdma:/
1:name=systemd:/system.slice/cloudera-scm-supervisord.service
3) impalad cgroup의 swappiness 60 확인
$ cat /sys/fs/cgroup/memory/system.slice/cloudera-scm-supervisord.service/memory.swappiness
60
3. 해결 방안
- 커널 업그레이드
- 스크립트로 cgroup 하위 프로세스 swappiness =1 로 수정하는 스크립트 수행 및 systemd 등록
$ cat <<EOF> /etc/systemd/system/apply_swappiness.service 파일 생성
[Unit]
Description=Apply swappiness value to cgroups
After=systemd-sysctl.service
Requires=systemd-sysctl.service
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'for cgfile in $(find /sys/fs/cgroup -name *swappiness); do echo $(cat /proc/sys/vm/swappiness) > $cgfile; done'
[Install]
WantedBy=multi-user.target
EOF
$ chmod 644 /etc/systemd/system/apply_swappiness.service
$ systemctl daemon-reload
$ systemctl enable apply_swappiness.service
$ reboot'Linux' 카테고리의 다른 글
| mtail을 활용한 prometheus metric 생성 (0) | 2025.10.01 |
|---|---|
| rsync 사용법 정리 (4) | 2025.07.29 |
| Mit kerberos with Openldap backend (0) | 2024.04.18 |