Oracle コミット サイズが使用可能な RAM より大きいが、v$memory_target_advice は OK と表示しています

Oracle コミット サイズが使用可能な RAM より大きいが、v$memory_target_advice は OK と表示しています

Windows 2012R VM (VMWare) で Oracle 18c を実行しています。(VM 管理ツールにはアクセスできません。)

VM には 5 つの vCPU と 12 GB の RAM があります (これは CPU の競合を減らすための VM チームからの推奨事項だったと思われます...)。ただし、コミットされたメモリ (Oracle によって使用される) が、マシンで使用可能な RAM よりも大幅に多いことに気付きました。


タスク マネージャーのパフォーマンス タブの抜粋。コミットされた 36 GB のうち 18.9 GB が表示されている


タスク マネージャーの詳細タブから抜粋した、Oracle プロセス別の内訳を示すスニペット




v$memory_target_adviceメモリターゲットを増やすことで改善される可能性は低いようです...


ここに画像の説明を入力してください


質問

  1. これは、Oracle の大部分がページファイルにあることを意味しますか?
  2. 3GB がまだ使用可能であるということは、Oracle が追加の RAM を必要とする場合 (または Windows が Oracle にアクセスを許可すると決定した場合)、それが可能になることを意味しますか? (つまり、何も変更する必要がないということですか?)

答え1

Oracle のオプティマイザにはバグがあり、データのソートに必要なメモリの計算が間違っていました。この計算ミスにより、多くの場合、使用可能な量を超える大量のメモリが割り当てられました。このメモリが実際に使用されたわけではないため、ページ ファイルに割り当てられても、使用されることはありませんでした。

ただし、このバグはバージョン 12 で修正されたと主張されています。1 つの可能性としては、まだ存在しているということです。

もう 1 つの可能性は、Oracle にメモリ リークがあることです。再起動直後に、Oracle の起動後および SELECT の実行後にコミットされたメモリを検証することで、これをテストできます。

テストで Oracle のメモリ割り当てのバグが見つかった場合は、それを報告する必要があります。

関連情報