본 문서는 Push 서비스의 원할한 서비스 운영을 위해 설치 전 반드시 수용되어야 하는 권장 설정을 Linux OS를 기준으로 가이드 합니다.
본 설정은 UPNS 사용자 수가 많을 경우, 설정 값의 증설이 필요할 수 있습니다.
vi /etc/security/limits.conf
아래 구문 추가(계정이 morpheus 라는 가정, 실제 계정 반영필요)
morpheus soft nproc 819200
morpheus hard nproc 819200
morpheus soft nofile 1048570
morpheus hard nofile 1048570
일부 OS에서 하위 설정으로 메인 설정이 무시되어 덮어쓰는 경우가 있습니다. 해당 현상을 방지하기 위해 다음의 파일이 존재하는 경우, 삭제 또는 주석 처리가 필요합니다.
vi /etc/security/limits.d/90-nproc.conf
vi /etc/security/limits.d/20-nproc.conf
동일 디렉토리에 다른 파일이 있을 경우 그 파일도 해당 *로 시작하는 구문 아래처럼 주석처리
#* soft nproc 4096
Redis의 권장 설정을 포함하고 있습니다.
# 커널 설정파일 열기
vi /etc/sysctl.conf
# 최하단에 다음의 세 줄을 추가
net.core.somaxconn=65535
vm.overcommit_memory=1
net.ipv4.ip_local_port_range = 1024 64000
# [!!!중요!!!] OS 방화벽(iptable, firewall) 사용 시, 다음의 한 줄도 같이 추가
net.nf_conntrack_max = 500000
# vi에서 `:wq` 커맨드로 저장 후 종료
# 커널 설정 반영(OS 재기동을 하지 않기 위함)
sysctl -p
Redis는 성능 최적화를 위해 THP(Transparent Huge Pages) 기능의 비활성화를 권장합니다. THP는 메모리 관리를 자동화하는 기능이지만, Redis처럼 메모리 할당과 해제가 잦은 애플리케이션에서는 성능 저하나 지연을 유발할 수 있습니다.
# OS 기동 시, 자동실행 설정 파일을 vi에서 열기
vi /etc/rc.local
# 최하단에 다음의 한 줄을 추가
echo never > /sys/kernel/mm/transparent_hugepage/enabled
# vi 에디터에서 저장 후 종료
# 쉘 프롬프트에서 아래 명령을 실행(시스템 재기동 없이 적용하기 위함)
echo never > /sys/kernel/mm/transparent_hugepage/enabled
CentOS 또는 RHEL 7.0 이상일 경우, 다음도 진행이 필요함
###############################################################################
################ CentOS 또는 RHEL 7.0 이상일 때 아래 항목 진행 ################
###############################################################################
# rc.local 기동 서비스 설정 수정
vi /lib/systemd/system/rc-local.service
# 최하단에 다음의 두 줄을 추가
[Install]
WantedBy=multi-user.target
# vi에서 `:wq` 커맨드로 저장 후 종료
# 서비스 설정을 반영
systemctl daemon-reload
# rc.local 기동 서비스를 항상 시작하도록 설정
systemctl enable rc-local.service
# rc.local의 실행 권한 부여
chmod u+x /etc/rc.local