Oracle Commit 크기는 사용 가능한 Ram보다 크지만 v$memory_target_advice는 OK라고 말합니다.

Oracle Commit 크기는 사용 가능한 Ram보다 크지만 v$memory_target_advice는 OK라고 말합니다.

Windows 2012R VM(VMWare)에서 Oracle 18c를 실행합니다. (VM 관리 도구에 액세스할 수 없습니다.)

VM에는 5개의 vCPU와 12GB RAM이 있습니다(CPU 경합을 줄이기 위해 VM 팀에서 권장한 것으로 추정됩니다...). 그러나 커밋된 메모리(Oracle에서 사용)가 머신에 사용 가능한 RAM보다 훨씬 높은 것으로 나타났습니다. .


커밋된 36GB 중 18.9GB를 보여주는 작업 관리자 성능 탭의 조각


Oracle 프로세스별 분석을 보여주는 작업 관리자 세부 정보 탭의 스니펫




v$memory_target_advice메모리 목표를 늘려서 어떤 개선도 암시하지 않습니다...


여기에 이미지 설명을 입력하세요


질문

  1. 이는 Oracle의 대부분이 페이지 파일에 있다는 것을 의미합니까?
  2. 3GB를 여전히 사용할 수 있다는 것은 Oracle이 추가 RAM이 필요하거나 Windows가 Oracle에 액세스를 허용해야 한다고 결정한 경우 추가 RAM이 가능하다는 것을 의미합니까? (아무것도 변경할 필요가 없다는 뜻인가요?)

답변1

Oracle은 최적화 프로그램에 버그가 있어서 데이터 정렬에 필요한 메모리를 잘못 계산했습니다. 잘못된 계산으로 인해 엄청난 양의 메모리가 할당되었으며, 많은 경우 사용 가능한 양보다 더 많은 메모리가 할당되었습니다. 이는 이 메모리를 사용한 적이 있다는 의미가 아니므로 페이지 파일에 할당되었지만 사용되지 않았습니다.

하지만 이 버그는 버전 12에서 수정되었다고 합니다. 한 가지 가능성은 이 버그가 여전히 존재한다는 것입니다.

또 다른 가능성은 Oracle에 메모리 누수가 있다는 것입니다. Oracle이 시작된 후 SELECT를 수행한 후 커밋된 메모리를 확인하여 재부팅 후 즉시 이를 테스트할 수 있습니다.

테스트 결과 Oracle 메모리 할당의 버그가 발견되면 이를 보고해야 합니다.

관련 정보