[Oracle] OS 커널 파라미터 설정 값: sysctl.conf

HYEOB KIM·2022년 10월 7일
0

Oracle

목록 보기
2/58
post-custom-banner

OS 커널 파라미터 설정 값

Oracle을 설치할 때 /etc/sysctl.conf, /etc/security/limits.d/oracle-database-preinstall-19c.conf에 파라미터를 추가했었습니다.

각 파라미터의 의미가 무엇인지 알아보겠습니다.

/etc/sysctl.conf

fs.file-max = 6815744 < - 시스템에서 동시에 오픈 가능한 파일의 수와 연관된 파일 핸들의 최대값
kernel.sem = 250 32000 100 128

  • semmsl : 세마포어 세트당 세마포어의 최대 개수
  • semmns : 시스템 전체에 대한 세마포어의 최대 개수
  • semopm : 시스템 호출(call)별로 수행될 수 있는 세마포어 작업의 수
  • semmni : 시스템 전체에 대한 세마포어 세트의 최대 개수
  • 세마포어(semaphore) : 오라클 백그라운드 프로세스들 간 동시성(Concurrency)을 조절하기 위해 사용

kernel.shmmni = 4096 <- 공유 메모리 세그먼트의 최대 개수
kernel.shmall = 1073741824 <- 특정 시점에 시스템에서 사용 가능한 공유 메모리의 최대 크기

  • 이 값은 ceil(shmmax/page_size)로 권장. 기본 값은 209715 byte.

kernel.shmmax = 4398046511104 <- 공유 메모리 세그먼트의 최대 크기

  • 커널이 응용프로그램들에게 메모리를 할당해줄 때 작게 여러 번 할당하지 않고 큰 덩어리(=세그먼트)로 한꺼번에 주게되는데 이값이 너무 작으면 DB가 시작할 때 ORA-27123 : unable to attach to shared memory segment라는 메시지가 발생할 수 있고 너무 크면 세그먼트의 사용되지 않는 빈 공간을 두기 때문에 메모리 낭비가 발생함.
  • 이 값의 기본 값은 32MB. 오라클 사용 시에는 2G로 설정하도록 권장.

kernel.panic_on_oops = 1 <- 버그가 발생하면 시스템 PANIC 상태로 처리할지를 결정
net.core.rmem_default = 262144 <-TCP 수신 버퍼 크기의 기본값 설정
net.core.rmem_max = 4194304 <- TCP 수신 버퍼 크기의 최대값 설정
net.core.wmem_default = 262144 <-TCP 송신 버퍼 크기의 기본값 설정
net.core.wmem_max = 1048576 <-TCP 송신 버퍼 크기의 최대값 설정
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2 <-모든 인터페이스에서 들어오는 패킷에 대해 reply를 하여 들어오는 인터페이스로 나가지 못하는 패킷을 거부함
fs.aio-max-nr = 1048576 <- 동시에 들어오는 요청의 개수를 제한함
net.ipv4.ip_local_port_range = 9000 65500 <- 시스템에 접속할 때 사용할 수 있는 네트워크 포트의 범위

/etc/security/limits.d/oracle-database-preinstall-19c.conf

OS 리소스 제한 설정

oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
oracle   hard   memlock    134217728
oracle   soft   memlock    134217728
  • soft : 새로운 프로그램을 생성하면 기본적으로 적용되는 한도. 간간히 지키지 않아도 되는 limit
  • hard : Soft한도에서 최대로 늘릴 수 있는 한도. 무조건 지켜야 하는 최대 limit
  • nofile : 한 번에 열 수 있는 최대 파일 수
  • nproc : 최대 프로세스의 개수(KB)
  • stack : 최대 스택 사이즈(KB)
  • memlock : 쉘에 허용 가능한 가상메모리의 최대량 제한

참고

profile
Devops Engineer
post-custom-banner

0개의 댓글