Oracle 提交大小大於可用 RAM,但 v$memory_target_advice 表示 OK

Oracle 提交大小大於可用 RAM,但 v$memory_target_advice 表示 OK

在 Windows 2012R VM (VMWare) 上執行 Oracle 18c。 (我無權存取任何虛擬機器管理工具。)

VM 有 5 個 vCPU 和 12GB RAM(這應該是 VM 團隊建議減少 CPU 爭用...)但是我注意到提交的記憶體(由 Oracle 使用)明顯高於機器的可用 RAM 。


任務管理器「效能」標籤中的片段顯示已提交 36GB 中的 18.9GB


工作管理員「詳細資料」標籤中的片段顯示了 Oracle 進程的細分




v$memory_target_advice並沒有暗示透過增加記憶體目標有任何改進...


在此輸入影像描述


問題

  1. 這是否意味著 Oracle 的大部分內容都在頁面文件中?
  2. 由於 3GB 仍然可用,這是否意味著如果 Oracle 需要(或如果 Windows 決定允許 Oracle 存取)額外的 RAM,它就能夠做到嗎? (意思是不需要改變任何東西?)

答案1

Oracle 的優化器曾經存在一個錯誤,導致其無法正確計算排序資料所需的記憶體。這種錯誤的計算導致它分配大量內存,在許多情況下超過了可用內存量。這並不是說它曾經使用過該內存,因此它被分配在頁面文件中但從未使用過。

然而,這個錯誤據稱已在版本 12 中修復。

另一種可能是Oracle存在記憶體洩漏。您可以在重新啟動後立即驗證 Oracle 啟動後和執行 SELECT 後提交的記憶體來測試這一點。

如果您的測試指出 Oracle 記憶體分配中存在錯誤,您應該報告它。

相關內容