Note-Notice
❖|LINUX:
➽|LINUX: OS 최소 구성 - 기본 검증
ORACLE 설치 구성 OS 설정 #1 - LINUX
↘ OS KERNEL 및 PLATFORM 구성
-
DBMS 서버 Kernel 정보 확인 방안
hostnamectl cat /etc/os-release cat /etc/redhat-release cat /etc/oracle-release lsb_release -id -
DBMS 구성 가능한 최소 OS Kernel 정보 검토
- 아래 기본 정보 기준 Oracle MOS 상 Certification 정보 사전 검토 필수
- 각 OS Platform 별로 DBMS 구성 가능한 최소 Kernel 버전 존재
- 해당 Kernel 버전보다 큰 OS Platform 구성 필수
↘ OS RUNLEVEL 및 DISPLAY 구성
-
OS Boot Level 지정 중, 아래 두개 옵션 구성 필수
- Multi User : 3
- Multi User + GUI : 5
- 즉 Linux Platform 에서 유지보수 모드가 아닌 유저 접속 가능 필요.
# Env Root runlevel who -r systemctl get-default
-
OUI 구성을 위한 Display 환경 구성 필수
- Local / Remote Virtual Display 환경 구성 필수
- 구성 간 최소
1024 X 768해상도 지원 필요 - OUI를 통한 구성 필수 사항 , 구성 X 시 Silent 구성
- 구성 간 최소
- ORACLE 설치 간 OUI 통한 구성을 권장.
- Local / Remote Virtual Display 환경 구성 필수
↘ OS BOOT(GRUB/EFI) 구성
- Linux for Oracle 관련 구성 기능 검토 사항
- NUMA 관련 기능
- Linux NUMA는 다중 CPU 환경에서 메모리 효율을 위해 메모리를 분할하여 사용하는 방식
- Oracle Database의 경우 공유메모리 환경구성 상 NUMA 기능이 성능 효율을 떨어뜨림.
- numa=Off 권장
- THP , Transparents Huge Pages - Disabled 권장
- Linux 메모리 관리 기능 중 HugePage 기능을 사용하여 성능 개선을 위하여
Standard HugePages만 사용 권고. - Linux 6 이상 버전부터 구성 가능. (+SUSE11)
# Env Root cat /sys/kernel/mm/redhat_transparent_hugepage/enabled cat /sys/kernel/mm/transparent_hugepage/enabled # Default : [always] madvise never # 해당 기능 Server Boot 부터 [never] 옵션 필요 # 구성 방안 # /etc/default/grub 파일 백업 후 값 수정 cp /etc/default/grub /etc/default/grub_org vi /etc/default/grub # ==> GRUB_CMDLINE_LINUX 값 quiet 값 뒤에 아래 라인 추가 # numa=off transparent_hugepage=never grub2-mkconfig -o /boot/grub2/grub.cfg # 이후 서버 Reboot 후 값 변경 확인 - Linux 메모리 관리 기능 중 HugePage 기능을 사용하여 성능 개선을 위하여
- NUMA 관련 기능
↘ OS KERNEL 구성 검증
OS/DBMS 버전별 최소 요구 OS/KERNEL 검증 필요
- OS 검증 단계 / 실 KERNEL 적용은 DEPLOY 단계에서 수행 권장
➽|LINUX: OS/KERNEL 요구조건
↘ OS KENREL 파라미터 설명
(ORACLE 권장) OS KERNEL PARAMETER 구성과 관련 각 커널 파라미터 설명
| KERNEL.PARAM | COMMENT | VALUE_CHECK |
|---|---|---|
SEMMSLSEMMNSSEMOPMSEMMNI | Semaphore Limits 지정 값 메모리 배열 값 관리 | kernel.sem→> /proc/sys/kernel/sem |
shmall | 공유 메모리 구성 최소 용량 지정 | kernel.shmall →> /proc/sys/kernel/shmall |
shmmax | 공유 메모리 구성 최대 용량 지정 | kernel.shmmax →> /proc/sys/kernel/shmmax |
shmmni | 공유 메모리 최대 세그먼트 갯수 지정 | kernel.shmmni →> /proc/sys/kernel/shmmni |
file-max | 파일 시스템 MAX 파일 개수 지정 | fs.file-max→> /proc/sys/fs/file-max |
aio-max-nr | AIO File System 퍼포먼스 관련 값 | fs.aio-max-nr→> /proc/sys/fs/aio-max-nr |
rmem_default | 소켓 메모리 : Receiver Window Size 기본값 | net.core.rmem_default→> /proc/sys/net/core/rmem_default |
rmem_max | 소켓 메모리 : Receiver Window Size 최대값 | net.core.rmem_max→> /proc/sys/net/core/rmem_max |
wmem_default | 소켓 메모리 : Write Window Size 기본값 | net.core.wmem_default→> /proc/sys/net/core/wmem_default |
wmem_max | 소켓 메모리 : Write Window Size 최대값 | net.core.wmem_max→> /proc/sys/net/core/wmem_max |
panic_on_oops | OUI & CVU Check Bug Fix 18468128.8 | kernel.panic_on_oops→> /proc/sys/kernel/panic_on_oops |
ip_local_port_range | 유저 사용 가능 IPv4 Port 범위 지정 | net.ipv4.ip_local_port_range→> /proc/sys/net/ipv4/ip_local_port_range |
➽|19c: OS 구성 검토 및 반영 사항
ORACLE 19c - Kernel Parameter 구성 (12cR2 이상) - LINUX
↘ (권장/최소) DBMS 구성 최소 커널 파라미터 구성
LINUX 구성 Oracle 19c - Kernel Parameter Setup 구성 (12cR1 이상) / (Memory 8G 기준)
# (권장) ORACLE
kernel.sem=250 32000 100 128 # SEMMSL/SEMMNS/SEMOPM/SEMMNI
kernel.shmall=6230486016 # 공유메모리 구성 최소 용량 지정 (Phy 80%)
kernel.shmmax=6230486016 # 공유메모리 구성 최대 용량 지정 (eqal SHAMALL)
kernel.shmmni=4096 # 공유메모리 최대 세그먼트 갯수 지정
fs.file-max=6815744 # 파일 시스템 MAX 파일 개수 지정
fs.aio-max-nr=1048576 # AIO FS 퍼포먼스 관련 지정
net.core.rmem_default=262144 # 소켓 메모리 : Receiver Window Size 기본값
net.core.rmem_max=4194304 # 소켓 메모리 : Receiver Window Size 최대값
net.core.wmem_default=262144 # 소켓 메모리 : Write Window Size 기본값
net.core.wmem_max=1048576 # 소켓 메모리 : Write Window Size 최대값
kernel.panic_on_oops=1 # OUI & CVU Check Bug Fix 18468128.8
# 유저 사용 가능 IPv4 Port 범위 지정
net.ipv4.ip_local_port_range=9000 65500
# (MOS) ORACLE ISSUE HANDLE
vm.swappiness=0 # kernel Level SWAP 사용 제한 기능 Docs 2328563.1
kernel.randomize_va_space=0 # ALSR 메모리 리다이렉션 기능 Disable - Fix 1379200.1
net.ipv4.conf.default.rp_filter=0 # RAC Interconnect BOND NIC Bug Fix 1286796.1 (Kernel 2.6.32+)
vm.min_free_kbytes=524288 # 프로세스 전용 메모리 상 Free 영역 값 지정
vm.panic_on_oom=1 # VM Guest OS - Out Of Memory Fix 2116763.1
net.core.netdev_budget=600 # polling cycle(NAPI poll)의 모든 인터페이스의 최대패킷수
net.core.netdev_max_backlog=30000 # SYSBACKLOG 지정 INPUT 대기 최대 패킷수
net.core.somaxconn=2048 # 소켓 Listen() 백로그의 갯수 제한 값- 해당 파라미터 구성은 ORACLE 구성을 위한 최소 값 가이드
- 각 시스템 별로 메모리 Tuning 및 값 변경 진행
- 각 시스템 별로 메모리 Tuning 및 값 변경 진행
↘ (최소) DBMS/GI 구성 OS Platform Kernel 요건
Reference Site
RedHat Enterprise Linux
| PROD | OS | VER | FORM | KERNEL VERSION |
|---|---|---|---|---|
| 19.19 | RHEL | 9 | 5.14.0-70.22.1.el9_0.x86_64 or later | |
| 19.09 | RHEL | 8 | 4.18.0-80.el8.x86_64 or later | |
| 19.03 | RHEL | 7.5 | 3.10.0-862.11.6.el7.x86_64 or later |
- (추가 검토 사항 - 19c)
- RHEL 9.0 이상 이나, 현재 안정화 버전 알수 없음 (2023.11)
- RHEL 8.0 이상 이나, RHEL 8.4 이상 버전 구성 권장 (4.18.0-305)
- ASMLib 관련 사항이나, CPU Bug 등의 문제
- RHEL 7.5 이상 이나, RHEL 7.8 이상 버전 구성 권장 (3.10.0-1127)
- DBMS Engine 패치 및 ACFS 구성 제공 등의 문제
Oracle Linux
| PROD | OS | VER | FORM | KERNEL VERSION |
|---|---|---|---|---|
| 19.19 | Oracle Linux | 9 | UEK 7 | 5.15.0-1.43.4.2.el9uek.x86_64 or later |
| 19.19 | Oracle Linux | 9 | RHCK | 5.14.0-70.22.1.0.2.el9_0.x86_64 or later |
| 19.09 | Oracle Linux | 8.1 | UEK 6 | 5.4.17-2011.0.7.el8uek.x86_64 or later |
| 19.09 | Oracle Linux | 8 | RHCK | 4.18.0-80.el8.x86_64 or later |
| 19.03 | Oracle Linux | 7.4 | UEK 4 | 4.1.12-124.19.2.el7uek.x86_64 or later |
| 19.03 | Oracle Linux | 7.4 | UEK 5 | 4.14.35-1818.1.6.el7uek.x86_64 or later |
| 19.03 | Oracle Linux | 7.7 | UEK 6 | 5.4.17-2011.4.4.el7uek.x86_64 or later |
| 19.03 | Oracle Linux | 7.5 | RHCK | 3.10.0-862.11.6.el7.x86_64 or later |
- (추가 검토 사항 - 19c)
- OEL 중 UEK 관련 플랫폼은 Oracle 표준 옵션으로 검토
- OEL 8.5 이하 버전 Kernel Version 이상문제로 권고 X (4.18.0-305)
- RHCK Kernel 이용 여부는 사전 필수 검토
- RHCK 옵션 사용 시, 상단 RHEL 안정화 버전에 맞는 커널 버전 선택 검토
- OEL 중 UEK 관련 플랫폼은 Oracle 표준 옵션으로 검토
SUSE Linux
| PROD | OS | VER | FORM | KERNEL VERSION |
|---|---|---|---|---|
| 19.03 | SUSE | 15 | 4.12.14-23-default or later | |
| 19.03 | SUSE | 12 | SP 3 | 4.4.162-94.72-default or later |
- (추가 검토 사항 - 19c)
- SUSE Linux의 경우, 사전 Vendor 이슈 사항 검토 필요 (OS 파트)
- C,C++ COMPATIBILITY 관련 이슈 및 라이브러리 충돌 등 문제 다수.
➽|11gR2: OS 구성 검토 및 반영 사항
ORACLE 11gR2 - Kernel Parameter 구성 (12cR1 미만) - LINUX
↘ (권장/최소) DBMS 구성 최소 커널 파라미터 구성
LINUX 구성 Oracle 11gR2 - Kernel Parameter Setup 구성 (12cR1 미만)
# (권장) ORACLE
kernel.sem=250 32000 100 128 # SEMMSL/SEMMNS/SEMOPM/SEMMNI
kernel.shmall=4185026560 # 공유메모리 구성 최소 용량 지정 (Phy 50%)
kernel.shmmax=6277539840 # 공유메모리 구성 최대 용량 지정 (Phy 80%)
kernel.shmmni=4096 # 공유메모리 최대 세그먼트 갯수 지정
fs.file-max=6815744 # 파일 시스템 MAX 파일 개수 지정
fs.aio-max-nr=1048576 # AIO FS 퍼포먼스 관련 지정
net.core.rmem_default=262144 # 소켓 메모리 : Receiver Window Size 기본값
net.core.rmem_max=4194304 # 소켓 메모리 : Receiver Window Size 최대값
net.core.wmem_default=262144 # 소켓 메모리 : Write Window Size 기본값
net.core.wmem_max=1048576 # 소켓 메모리 : Write Window Size 최대값
kernel.panic_on_oops=1 # OUI & CVU Check Bug Fix 18468128.8
# 유저 사용 가능 IPv4 Port 범위 지정
net.ipv4.ip_local_port_range=9000 65500
# (MOS) ORACLE ISSUE HANDLE
vm.swappiness=0 # kernel Level SWAP 사용 제한 기능 Docs 2328563.1
kernel.randomize_va_space=0 # ALSR 메모리 리다이렉션 기능 Disable - Fix 1379200.1
net.ipv4.conf.default.rp_filter=0 # RAC Interconnect BOND NIC Bug Fix 1286796.1 (Kernel 2.6.32+)
vm.min_free_kbytes=524288 # 프로세스 전용 메모리 상 Free 영역 값 지정
vm.panic_on_oom=1 # VM Guest OS - Out Of Memory Fix 2116763.1
net.core.netdev_budget=600 # polling cycle(NAPI poll)의 모든 인터페이스의 최대패킷수
net.core.netdev_max_backlog=30000 # SYSBACKLOG 지정 INPUT 대기 최대 패킷수
net.core.somaxconn=2048 # 소켓 Listen() 백로그의 갯수 제한 값- 해당 파라미터 구성은 ORACLE 구성을 위한 최소 값 가이드
- 각 시스템 별로 메모리 Tuning 및 값 변경 진행
↘ (최소) DBMS/GI 구성 OS Platform Kernel 요건
Reference Site
RedHat Enterprise Linux
Oracle Linux
SUSE Linux