hugepage在linux中如何设置

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

hugepage在linux中如何设置


hugepage在oracle中的配置应用
大内存技术,不支持内存自动管理,必须关闭AMM(自动内存管理),不用MEMORY_TARGET(值要为0)  ,才能使用hugepage,检查数据库的参数设置是否支持:
SQL> show parameter memory_

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
memory_max_target                    big integer            0
memory_target                        big integer            0

如果不配置锁定内存,在后alert_sid.log中数据库实例启动时会有类似如下的建议:
RECOMMENDATION:
  Total System Global Area size is 5 GB. For optimal performance,
  prior to the next instance restart:
  1. Large pages are automatically locked into physical memory.
 Increase the per process memlock (soft) limit to at least 5 GB to lock
 100% System Global Area's large pages into physical memory
并且,hugepage并没有真正使用起来!

检查系统是否启用hugepage,或者是否可以启用:
 cat /proc/meminfo | grep -i huge
AnonHugePages:     75776 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

可以看到,HugePages_Total,HugePages_Free均为零,证明没有使用,但可以配置。如果上面什么都没有显示,证明不能配置。

查询参数nr_hugepages,shmmax,shmall设置值应该设置多少:
sqlplus / as sysdba
 column "kernel.shmmax" format 99999999999999999999


请输入服务器物理内存大小:
select
round(&InputPhysicalMemorySize*0.8*1024*1024*1024/(2048*1024)) as "vm.nr_hugepages",
round(&InputPhysicalMemorySize*0.8*1024*1024*1024)  as  "kernel.shmmax",
round(&InputPhysicalMemorySize*0.8*1024*1024*1024*0.9/4096) as "kernel.shmall"
from dual;

 输出结果会例如下所示:
vm.nr_hugepages         kernel.shmmax kernel.shmall
--------------- --------------------- ------------ (注意实际的值可能与些不同,应看实际输出结果,而不是直接复制下面的值!)
          52429          109951162778     24159191

#vi /etc/sysctl.conf, 在文件末尾加入:
vm.nr_hugepages = 上面查询值
kernel.shmmax = 上面查询值
kernel.shmall = 上面查询值 或kernel.shmall = 1073741824




修改以下文件:
[root@hdyydb1 u02]# vim /etc/security/limits.conf
添加:
oracle soft memlock 6291456
oracle hard memlock 6291456

* hard memlock unlimited
* soft memlock unlimited

大页需要重启操作系统才生效!
需关闭数据库,重启操作系统,再启动数据库。



检查设置是否生效,数据库未启动时_Total和_Free值应该是一致的:
 cat /proc/meminfo | grep -i huge
AnonHugePages:     75776 kB
HugePages_Total:     977
HugePages_Free:      977
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB


启动数据库后:
 cat /proc/meminfo | grep -i huge
AnonHugePages:     43008 kB
HugePages_Total:    2588
HugePages_Free:     2168
HugePages_Rsvd:     2105
HugePages_Surp:        0
Hugepagesize:       2048 kB

free比total小,证明已经生效,否则没生效 ,用户程序在申请Hugepages的时候,其实是reserve了一块内存,并未真正使用,此时/proc/meminfo中的 HugePages_Rsvd 会增加,而 HugePages_Free 不会减少。
 

hugepage在linux中如何设置

hugepage在oracle中的配置应用大内存技术,不支持内存自动管理,必须关闭AMM(自动内存管理),不用MEMORY_TARGET(值要为0) ,才能使用hug...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息