차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
oracle_db_사용을_위한_rhel_튜닝 [2018/06/25 03:04] – 만듦 koov | oracle_db_사용을_위한_rhel_튜닝 [2021/04/08 00:52] (현재) – koov | ||
---|---|---|---|
줄 1: | 줄 1: | ||
====== Oracle DB 사용을 위한 RHEL 튜닝 ====== | ====== Oracle DB 사용을 위한 RHEL 튜닝 ====== | ||
+ | |||
+ | Oracle Database를 사용하기 위한 RHEL 튜닝방법은 3가지가 있다. | ||
+ | * '' | ||
+ | * https:// | ||
+ | * 수동 설정 | ||
+ | |||
+ | |||
+ | ===== tuned profile 사용 ===== | ||
+ | |||
+ | Oracle RDBMS를 위한 '' | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | 위의 채널(레포지토리)를 등록하면 사용할 수 있다. | ||
+ | |||
+ | ===== 수동 설정 ===== | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | 이 내용에 언급 된 모든 수치는 일반적인 것이 아니며 Red Hat Enterprise Linux에 상주하는 데이터베이스 워크로드에 긍정적인 영향을 미치는 것으로 나타났습니다. 즉, 특정 값은 사용자 환경에 따라 다르며 추가 조정이 필요할 수 있습니다. | ||
+ | </ | ||
+ | |||
+ | ==== / | ||
+ | |||
+ | * Oracle 사용시 Swap을 사용하는것은 좋지 않으며 가능한 한 피해야합니다. 다음 내용은 커널이 스왑을 덜 사용하도록 합니다. | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | vm.swappiness=10 | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * '' | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | vm.dirty_background_ratio=3 | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * '' | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | vm.dirty_ratio=40 | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * 만료되기 전에 데이터가 페이지 캐시에있을 수있는 기간 (1/100초): | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | vm.dirty_expire_centisecs=500 | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * 더티 페이지를 정리하기 위해 '' | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | vm.dirty_writeback_centisecs=100 | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== HugePages ==== | ||
+ | |||
+ | * ''/ | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | $ grep Huge / | ||
+ | HugePages_Total: | ||
+ | HugePages_Free: | ||
+ | HugePages_Rsvd: | ||
+ | Hugepagesize: | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * Oracle의 '' | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | SGA / huge page size | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | 다음은 20GB SGA에 맞추기 위해 필요한 '' | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | Hugepagesize = 2048 KB | ||
+ | 20 GB SGA = 20971520 KB | ||
+ | |||
+ | (20971520 / 2048) = 10240 | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * ''/ | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | vm.nr_hugepages=10240 | ||
+ | vm.hugetlb_shm_group=< | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * 위의 설정이 테스트되고 필요한 성능을 제공하는 것으로 확인되면 '' | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | kernel / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * '' | ||
+ | * 시스템에 메모리 부족이 발생하면 대용량 페이지를 교체 할 수 없습니다. | ||
+ | |||
+ | * Huge Pages를 사용하도록 Oracle 데이터베이스 구성을 변경하십시오. 도움이 필요한 경우 Oracle 지원에 문의하십시오. | ||
+ | |||
+ | ==== / | ||
+ | |||
+ | Oracle 데이터베이스가 '' | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | oracle | ||
+ | oracle | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== 공유 메모리 ==== | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | * 시스템의 총 메모리 (바이트)를 얻습니다. | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | mem=$(free -b | awk '/Mem/ {print $2}') | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * 페이지 크기 (바이트) 가져 오기 : | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | page=$(getconf PAGE_SIZE) | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * 다음에 '' | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | all=$(expr $mem \* 75 / 100 / $page + 1) | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * '' | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | max=$(expr $all \* $page) | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * ''/ | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | echo " | ||
+ | echo " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * ''/ | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | echo " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== 세마포어 ==== | ||
+ | |||
+ | * 세마포어 작업에 권장되는 최소값 : | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | kernel.sem=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * 첫 번째 값인 '' | ||
+ | * 두 번째 값인 '' | ||
+ | * 세 번째 값인 '' | ||
+ | * 마지막 값인 '' | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # sysctl -w " | ||
+ | # echo " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== Oracle 계정을 위한 open files ==== | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # vi / | ||
+ | |||
+ | #< | ||
+ | oracle | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== Red Hat Enterprise Linux 6 및 7에만 권장되는 TPP(Transparent hugepages) 비활성화 ==== | ||
+ | |||
+ | |||
+ | * '' | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # service tuned stop | ||
+ | # chkconfig tuned off | ||
+ | # service ktune stop | ||
+ | # chkconfig ktune off | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # tuned-adm off | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | 이 '' | ||
+ | </ | ||
+ | |||
+ | * ''/ | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | kernel / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * 변경 사항을 적용하려면 서버를 재부팅하십시오. | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # reboot | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== I / O 스케줄러 ==== | ||
+ | |||
+ | 기본 '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ==== NUMA 밸런싱 ==== | ||
+ | * 자동 NUMA 밸런싱 | ||
+ | |||
+ | * '' | ||
+ | * ''/ | ||
+ | |||
===== 참조링크 ===== | ===== 참조링크 ===== | ||
* https:// | * https:// | ||