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 통한 구성을 권장.

↘ 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 후 값 변경 확인

↘ OS KERNEL 구성 검증

OS/DBMS 버전별 최소 요구 OS/KERNEL 검증 필요


➽|LINUX: OS/KERNEL 요구조건

↘ OS KENREL 파라미터 설명

(ORACLE 권장) OS KERNEL PARAMETER 구성과 관련 각 커널 파라미터 설명

KERNEL.PARAMCOMMENTVALUE_CHECK
SEMMSL
SEMMNS
SEMOPM
SEMMNI
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-nrAIO 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_oopsOUI & 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 및 값 변경 진행

↘ (최소) DBMS/GI 구성 OS Platform Kernel 요건

Reference Site

RedHat Enterprise Linux

PRODOSVERFORMKERNEL VERSION
19.19RHEL95.14.0-70.22.1.el9_0.x86_64 or later
19.09RHEL84.18.0-80.el8.x86_64 or later
19.03RHEL7.53.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

PRODOSVERFORMKERNEL VERSION
19.19Oracle Linux9UEK 75.15.0-1.43.4.2.el9uek.x86_64 or later
19.19Oracle Linux9RHCK5.14.0-70.22.1.0.2.el9_0.x86_64 or later
19.09Oracle Linux8.1UEK 65.4.17-2011.0.7.el8uek.x86_64 or later
19.09Oracle Linux8RHCK4.18.0-80.el8.x86_64 or later
19.03Oracle Linux7.4UEK 44.1.12-124.19.2.el7uek.x86_64 or later
19.03Oracle Linux7.4UEK 54.14.35-1818.1.6.el7uek.x86_64 or later
19.03Oracle Linux7.7UEK 65.4.17-2011.4.4.el7uek.x86_64 or later
19.03Oracle Linux7.5RHCK3.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 안정화 버전에 맞는 커널 버전 선택 검토

SUSE Linux

PRODOSVERFORMKERNEL VERSION
19.03SUSE154.12.14-23-default or later
19.03SUSE12SP 34.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