## 예시 (100GB 메모리 기준)
# 1. 공유 메모리 및 세마포어
kernel.shmmax = 107374182400 # 100 * 1024^3 = 100GB
kernel.shmall = 26214400 # 100GB / 4096 (페이지 크기 = 4KB)
kernel.sem = 250 32000 100 128
# 2. OOPS 발생 시 커널 패닉 유도 → 자동 재부팅 감지 가능
kernel.panic_on_oops = 1
# 3. 네트워크 버퍼 튜닝 (DB와 클라이언트 간 처리량 향상)
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
# 4. IP 패킷의 source validation 비활성화 (HA 구성 등에서 유용)
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
# 5. TCP 포트 범위 확장 (DB connection 수용력 증가)
net.ipv4.ip_local_port_range = 9000 65500
# 6. 메모리 오버커밋 정책 (DB shared memory 운영에 중요)
vm.overcommit_memory = 2
vm.overcommit_ratio = 80
# 7. 스와핑 최소화
vm.swappiness = 1
vm.force_cgroup_v2_swappiness = 1 # cgroup v2 환경에서의 swappiness 제어
# 8. listen() 큐 사이즈 증가 (connection backlog 개선)
net.core.somaxconn = 65535
# 9. mmap 가능한 최대 메모리 영역 수 제한 (ELK, 대용량 Shared Memory 대응)
vm.max_map_count = 262144
# 10. TCP timestamp 비활성화 (성능 및 보안 목적)
net.ipv4.tcp_timestamps = 0
# 11. 파일 디스크립터 전체 제한 (ulimit과 별도로 시스템 전체 제한) - 오라클 기준 적용
fs.file-max = 6815744
##ulimit 설정 (/etc/security/limits.conf)
enterprisedb soft nofile 65536
enterprisedb hard nofile 65536
enterprisedb soft nproc 65536
enterprisedb hard nproc 65536
##Transparent Hugepage 비활성화 (부팅 시 적용) - RHEL/Ubuntu 공통
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
##I/O 스케줄러 설정
# HDD 예시: deadline
echo deadline > /sys/block/<Device name. ex)sda1>/queue/scheduler
# SSD 예시: none 또는 noop
echo none > /sys/block/<Device name. ex)sda1>/queue/scheduler
'Postgresql, EPAS > 파라미터 튜닝' 카테고리의 다른 글
pg_hba.conf (0) | 2025.06.17 |
---|