** 아래는 제 짧은 경험 및 지식과 Oracle MOS 문서등에서 얻은 지식을 기반으로 작성되었습니다. **
** 저는 Oracle Engineer 를 대표하는 사람이 아니니 참고하시고, 실제 적용하고자 하는 경우에는 좀더 알아보신후 본인 책임하에 확신이 선 경우에 하셔야 합니다. **
이 파라메타는 리눅스(Linux) 시스템을 사용하는 경우에만 해당합니다. HP-UX, IBM AIX OS 등의 경우에는 다릅니다.
use_large_pages 파라메타는 말 그대로 "큰 램메모리 페이지(hugepages)"를 사용하겠다는 겁니다.
리눅스에서 기본 Memory Page 는 4K 인데, 이걸 2M 단위로 관리하도록 하여 성능을 향상시키려는 목적으로 hugepage 라는 개념이 만들어졌습니다.
hugepages 를 사용하게되면, swap 영역을 사용하지 않고, 실제 physical 한 RAM 메모리만 이용하게 됩니다.
따라서, swap page in/out 에 따른 오버헤드가 없어지고, page table 을 관리하는데 따르는 오버헤드가 없어져서 성능상의 이점을 얻을 수 있게 됩니다.
오라클 DB의 use_large_pages 파라메타 디폴트값은 "true" 입니다.
"true" 는 리눅스 시스템에 hugepages 가 설정되어 있으면 이걸 사용하고, 없으면 말겠다는 것입니다.
Oracle DB 인스턴스가 hugepages 에 올라가지 않으면 성능이 많이 저하되는 것으로 알려져 있습니다.
따라서 반드시 충분한 크기의 hugepages 을 리눅스 OS 상에서 먼저 세팅하고, 여기에 Oracle DB 인스턴스가 올라가도록 해야 합니다.
반드시 hugepages 를 사용하도록 하려면 use_large_pages 파라메타값을 "only" 로 하면 됩니다.
"only" 로 해놓으면, 리눅스 OS 상에 hugepages 값이 세팅되어 있지 않거나 충분히 크지 않으면 Oracle DB Startup 이 안됩니다.
이렇게하여 Oracle DB가 확실히 hugepages 를 이용하도록 하여 성능저하를 방지할 수 있습니다.
세팅은 아래와 같이 합니다.
SQL> alter system set use_large_pages='ONLY' scope=spfile;
DB를 기동할때 영향을 미치는 파라메타이기 때문에 scope=spfile 을 넣어줘야 합니다.
파라메타 변경후 DB 재기동이 필요합니다.
이때, Linux OS 상에서 hugepages 값이 설정되어 있지 않으면 DB Startup 이 안됩니다.
반드시 충분한 크기의 hugepages 를 먼저 세팅하여야 합니다.
또, hugepage 사용시 AMM 을 지원하지 않아 memory_target 파라메타를 DB에서 사용하면 안됩니다. (MOS문서 1134002.1 참조)
memory_target 대신에 sga_target, pga_aggregate_target 파라메타를 사용합니다.
'IT관련' 카테고리의 다른 글
Oracle Database Software 21c 설치(Install) 절차/화면 (0) | 2022.06.17 |
---|---|
오라클 Parallel DML 주의 사항 (ORA-12838 : cannot read/modify) (1) | 2022.04.25 |
Oracle DB 권고 파라메타 (_cursor_obsolete_threshold=1024) (0) | 2022.02.15 |
VirtualBox 게스트 확장CD 설치 에러 : Kernel headers not found, modprobe vboxguest failed (0) | 2022.01.19 |
Oracle Alert Log, Trace 파일 볼때 컬러풀하게 색깔넣어서 보는 방법 (vim 세팅) (0) | 2021.12.31 |