목차

Oracle DB 사용을 위한 RHEL 튜닝

Oracle Database를 사용하기 위한 RHEL 튜닝방법은 3가지가 있다.

tuned profile 사용

Oracle RDBMS를 위한 tuned-profiles-oracle은 기본으로 제공되지는 않는다.

위의 채널(레포지토리)를 등록하면 사용할 수 있다.

수동 설정

이 내용에 언급 된 모든 수치는 일반적인 것이 아니며 Red Hat Enterprise Linux에 상주하는 데이터베이스 워크로드에 긍정적인 영향을 미치는 것으로 나타났습니다. 즉, 특정 값은 사용자 환경에 따라 다르며 추가 조정이 필요할 수 있습니다.

/etc/sysctl.conf의 메모리 설정

vm.swappiness=10
vm.dirty_background_ratio=3
vm.dirty_ratio=40
vm.dirty_expire_centisecs=500
vm.dirty_writeback_centisecs=100

HugePages

$ grep Huge /proc/meminfo
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
Hugepagesize:       2048 kB
SGA / huge page size 

다음은 20GB SGA에 맞추기 위해 필요한 10240 Hugepages의 양을 보여주는 예 입니다. 값은 계산을 위해 모두 킬로바이트로 변환되었습니다.

Hugepagesize = 2048 KB
20 GB SGA = 20971520 KB

(20971520 / 2048) = 10240 
vm.nr_hugepages=10240
vm.hugetlb_shm_group=<insert oracle group ID here>
kernel /vmlinuz-<kernel-version> ro root=/dev/vg01/lv01 hugepages=10240 <other boot options>

/etc/security/limits.conf의 제한 설정

Oracle 데이터베이스가 Red Hat Enterprise Linux에서 Huge Pages를 사용하려면 /etc/security/limits.conf에서 oracle 사용자에 대한 ulimit 매개 변수 memlock을 늘려야 할 수도 있습니다. memlock 설정은 KB 단위로 지정되며 Oracle이 할당 할 수있는 Huge Pages 수의 메모리 크기와 일치해야합니다. 따라서 Oracle 데이터베이스가 512 개의 Huge Pages를 사용할 수 있어야한다면 memlock을 최소한 (512 * Hugepagesize)로 설정해야합니다. 기본 시스템에서는 1048576KB (512 * 2048)가 됩니다.

oracle     soft     memlock     1048576  
oracle     hard     memlock     1048576

공유 메모리

mem=$(free -b | awk '/Mem/ {print $2}')
page=$(getconf PAGE_SIZE)
all=$(expr $mem \* 75 / 100 / $page + 1)
max=$(expr $all \* $page)
echo "kernel.shmmax = $max" >> /etc/sysctl.conf
echo "kernel.shmall = $all" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf

세마포어

kernel.sem="250 32000 100 128"
# sysctl -w "kernel.sem = 250 32000 100 128"
# echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf

Oracle 계정을 위한 open files

    # vi /etc/security/limits.conf

    #<domain>      <type>  <item>         <value>
    oracle          hard    nofile          10000

Red Hat Enterprise Linux 6 및 7에만 권장되는 TPP(Transparent hugepages) 비활성화

# service tuned stop
# chkconfig tuned off
# service ktune stop
# chkconfig ktune off
# tuned-adm off

tuned-adm명령은 모든 설정을 조정 시작 전의 설정으로 되돌리고 부팅시 조정 서비스가 실행되지 않도록합니다. 대안으로, 사용자 정의 된 조정 된 프로필을 생성하여 이전 설정을 대신하고 THP 만 비활성화 할 수 있습니다. Red Hat Enterprise Linux 6 에서 TPP (Transparent hugepages) 비활성화가 적용되지 않음을 참조하십시오.

kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=a216d1e5-884f-4e5c-859a-6e2e2530d486 rhgb quiet transparent_hugepage=never
# reboot

I / O 스케줄러

기본 CFQ I/O 스케줄러는 대부분의 워크로드에 적합하지만 데이터베이스 환경에 최적의 성능을 제공하지 않습니다. 대신 다음 IO 스케줄러 중 하나를 사용해야합니다.

NUMA 밸런싱

참조링크