Windows 2012R VM (VMWare) で Oracle 18c を実行しています。(VM 管理ツールにはアクセスできません。)
VM には 5 つの vCPU と 12 GB の RAM があります (これは CPU の競合を減らすための VM チームからの推奨事項だったと思われます...)。ただし、コミットされたメモリ (Oracle によって使用される) が、マシンで使用可能な RAM よりも大幅に多いことに気付きました。
v$memory_target_advice
メモリターゲットを増やすことで改善される可能性は低いようです...
質問
- これは、Oracle の大部分がページファイルにあることを意味しますか?
- 3GB がまだ使用可能であるということは、Oracle が追加の RAM を必要とする場合 (または Windows が Oracle にアクセスを許可すると決定した場合)、それが可能になることを意味しますか? (つまり、何も変更する必要がないということですか?)
答え1
Oracle のオプティマイザにはバグがあり、データのソートに必要なメモリの計算が間違っていました。この計算ミスにより、多くの場合、使用可能な量を超える大量のメモリが割り当てられました。このメモリが実際に使用されたわけではないため、ページ ファイルに割り当てられても、使用されることはありませんでした。
ただし、このバグはバージョン 12 で修正されたと主張されています。1 つの可能性としては、まだ存在しているということです。
もう 1 つの可能性は、Oracle にメモリ リークがあることです。再起動直後に、Oracle の起動後および SELECT の実行後にコミットされたメモリを検証することで、これをテストできます。
テストで Oracle のメモリ割り当てのバグが見つかった場合は、それを報告する必要があります。