Oracle 11gR2サーバーとして実行されているLinuxサーバーでスワップ使用率を削減するにはどうすればよいですか?
現在、Enterprise Managerでは80%を超えています。
Oracleでスワップメモリを使用しているプロセスを特定するにはどうすればよいですか?
Oracleデータベースはデータベースサーバーであり、オペレーティングシステムではありません。仮想メモリ管理とスワップの使用については認識していません。最初にswapを使用してプロセスを特定し、データベースに関連していることを確認します。
LinuxでOracleデータベースを使用する場合のメモリ管理とスワッピングに関連するいくつかの一般的な落とし穴:
上級DBAでもpga_aggregate_target
を制限として扱うことがよくありますが、これは制限ではなく、目標値です。 PGAはその値よりかなり大きくなる可能性があり、このパラメーターの値は、メモリ要件を計算するときに使用すべきではありません。メモリ量が過小になる可能性があるためです。 V$PGASTAT
からインスタンスを起動してからの最大PGAサイズを確認できます。 maximum PGA allocated
がpga_aggregate_target
の複数回である場合があります。これには、データベースをさらに調査する必要があります。
filesystemio_options
パラメータの値は、デフォルトではnone
です。つまり、データベースは直接I/Oを使用せず、そのため、I/O操作はファイルシステムキャッシュにキャッシュされます(ASMではなく通常のファイルシステムを使用する場合)。これとvm.swappiness
のデフォルトの高い値を組み合わせると、多くの場合、メモリ使用量とスワッピングが不必要に高くなります。 filesystemio_options
はsetall
に設定する必要があり、vm.swappinness
をデフォルトの60/30値(RHEL6/RHEL7)から減らすことをお勧めします。
OracleデータベースがPGAおよびSGAにメモリを割り当てることは一般的な知識です。それでも、ほとんどの人は、データベースサーバープロセスがSGA(明らかに共有メモリではない)の一部ではなく、PGA(オンラインパッチなどに必要)の一部でもない一部のメモリも割り当てるという事実を見落とします。数百または数千のデータベースプロセスがある場合、これらのプロセスごとの小さなメモリ割り当ては、かなりの量のメモリになる可能性があります。キューイング要求と接続プールは、データベース層ではなく、アプリケーションサーバー層に実装する必要があります。データベースプロセスの数は、比較的少なく保つ必要があります。
Linuxは、各データベースプロセスの共有メモリ使用量を個別に追跡します。プロセス数が多く、SGAが大きい場合、このアカウンティング情報は、PGA + SGAを組み合わせた場合よりもさらに多くのメモリを必要とする場合があります。このために使用されているメモリの量はgrep PageTables /proc/meminfo
で確認できます。ここに大量のメモリ(数GBなど)が表示される場合、そのメモリは無駄なメモリの一種であり、オペレーティングシステムとデータベースで HugePages を使用するように構成する必要があります。 HugePagesを構成すると、通常、データベースは4 KBのページではなく2 MBのメモリページを使用します。この500倍のページサイズの増加により、共有メモリの計算に必要なメモリが500分の1になります。
Balazsが言ったことに加えて、おそらく/ proc/meminfoファイルのPageTablesを見るべきです。 PageTablesが本当に高い場合は、Huge Pagesを使用してメモリを節約します。 100 GBを超えるSGA/PGAを使用する1つのサーバーで2つの本番データベースを実行しています。 HugePagesを使用すると、メモリ管理のオーバーヘッドが大幅に削減されました。 HugePagesを使用している場合は、AMMを使用できません。ただし、メモリはスワップされず、予約されます。それを試したら、スワッピングが少ないかどうかを確認してください。そうでない場合は、SGA/PGAのターゲットと制限を縮小する必要があります。 12cでは、PGAの最大値を設定できます。
$ grep Page /proc/meminfo
AnonPages: 7785364 kB
PageTables: 329344 kB
AnonHugePages: 0 kB
HugePages_Total: 60000
HugePages_Free: 10864
HugePages_Rsvd: 4626
HugePages_Surp: 0