HugePages设置

本文详细介绍了如何在Linux系统中针对Oracle数据库调整HugePages设置,包括设置memlock限制、禁用AMM特性、调整SGA和PGA目标,以及管理透明大页以提高性能和避免潜在问题。
摘要由CSDN通过智能技术生成

HugePages设置

运维笔记本2021-12-13

1362

1.设置memlock

编辑/etc/security/limits.conf

增加:

* Soft memlock 稍小于RAM值
* hard memlock 稍小于RAM值

Memlock,锁定内存地址的大小,值大于sga没关系的,所以我们可以设置这个值在我们想要的SGA size和物理内存size之间,这个值得单位是kb

验证

ulimit -l
104857600   --- 为memlock大小

2.禁用AMM特性

SQL> show parameter target

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target                   integer     0
db_flashback_retention_target        integer     1440
fast_start_io_target                 integer     0
fast_start_mttr_target               integer     0
memory_max_target                    big integer 0
memory_target                        big integer 0
parallel_servers_target              integer     16
pga_aggregate_target                 big integer 200M
sga_target                           big integer 600M
SQL>

SQL> alter system set sga_max_size=640M scope=spfile sid='*';
SQL> alter system set sga_target=640M scope=spfile sid='*';
SQL> alter system set pga_aggregate_target=320M scope=spfile sid='*';
SQL> alter system reset memory_max_target scope=spfile sid='*';
SQL> alter system reset memory_target scope=spfile sid='*';


3.根据Oracle的脚本计算hugepage大小

计算时要确保Oracle实例已经启动

./hugepages_setting.sh 

hugepages_setting.sh脚本链接

4.根据脚本的计算值在2个节点编辑/etc/sysctl.conf

加入

vm.nr_hugepages = 30739

5.设置USE_LARGE_PAGES

ALTER SYSTEM SET use_large_pages=only SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;

alert日志显示

****************** Large Pages Information *****************

Total Shared Global Region in Large Pages = 602 MB (100%)

Large Pages used by this instance: 301 (602 MB)
Large Pages unused system wide = 5 (10 MB) (alloc incr 4096 KB)
Large Pages configured system wide = 306 (612 MB)
Large Page size = 2048 KB
***********************************************************

6.查看

# grep HugePages /proc/meminfo
HugePages_Total:    1496
HugePages_Free:      485
HugePages_Rsvd:      446
HugePages_Surp:        0

上面的输出会发生变化,确保配置有效

the HugePages_Free value should be smaller than HugePages_Total and there should be some HugePages_Rsv.

另需确保环境变量DISABLE_HUGETLBFS unset,该变量会禁用Oracle使用Hugepage

7.禁用透明大页

ORACLE建议关闭透明大页的功能:透明大页会导致节点不可预料的重启,以及RAC的性能问题;透明大页也会导致单节点数据库环境发生不可预料的性能问题或延迟。

(1)查看是否开启

# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
#

[always]表示启用
[never]表示禁用

# grep AnonHugePages /proc/meminfo
AnonHugePages:  20142080 kB

参考:

  • ALERT: Disable Transparent HugePages on SLES11, RHEL6, RHEL7, OL6, OL7 and UEK2 Kernels (Doc ID 1557478.1)

  • Transparent Huge Pages

2)和(3)两种方法,优先选择(2)

(2)修改文件/etc/grub.conf,添加一行:

transparent_hugepage=never

(3)修改文件/etc/rc.local文件,添加:

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

(4)重启

  • Configuring HugePages for Oracle on Linux (x86-64)

  • HugePages on Oracle Linux 64-bit (文档 ID 361468.1)

  • Hugepages详解(详细介绍了Hugepages的原理)

  • oracle 11g use_large_pages和AMM的使用

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值