为 Oracle RAC 11g R2 配置内存有哪些更好的方法?

为 Oracle RAC 11g R2 配置内存有哪些更好的方法?

我正在 Oracle RAC 11g 中设置新环境,但我想知道如何最好地使用内存功能。

今天我有两台服务器,配备 128GB RAM 和 1 核 CPU,16 核。

我部署了 64GB 的 SSD 到 Swap,尽可能地能够安装和配置 SO

环境配置在两台RHEL 6.9。

今天内存管理处于自动模式,使用 64GB 交换。

关于如何提高内存使用率或 pga 和 sga 有什么建议吗?


ASMM 当前配置。

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
memory_max_target                    big integer 0
memory_target                        big integer 0
shared_memory_address                integer     0
show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 80G
sga_target                           big integer 80G
show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 30G

答案1

ASMM(自动共享内存管理)通常在 oracle 中效果最好(恕我直言)。这涉及设置 sga 和 pga。除非您正在执行非常大的查询/排序,否则您的 pga 通常不需要与 sga 一样大。Oracle 可以安全地占用 Linux 机器上高达 80% 的内存,因此您可能不想为 oracle 分配超过 102G 的内存。对于 11g 及更高版本,您的交换空间不需要超过 16G(请参阅 oracle 文档)。在不了解您的工作量的情况下,我将从 sga_target=90g、sga_max_size=90g、pga_aggregate_target=10G 开始。您没有说您是 11gR1 还是 11gR2,但无论哪种情况,都使用大页面来提高 CPU 使用率。如果使用 11gR2,请设置 use_large_pages=ONLY 以确保使用大页面。您可以在此处查看有关大页面设置的更多详细信息: https://dbakerber.wordpress.com/2012/03/14/configuring-hugepages-for-oracle-on-linux/ 90G 的 hugepages 意味着将 vm.nr_hugepages 设置为 46085,这为设置提供了一个小缓冲区。我会将 SSD 用于重做日志。

相关内容