美文网首页我爱编程
【Oracle】Oracle如何开启大页

【Oracle】Oracle如何开启大页

作者: 拾荒者charley | 来源:发表于2018-04-10 14:24 被阅读0次

前言:在Linux中配置hugepage可以提高oracle的性能,减少oracle sga的页交换,类似于aix中的lagepage。
为什么 使用大页?
LINUX内存的默认块大小是4K
如果SGA为:128G
select 128* 1024* 1024/4 from dual;33554432个块(三千多万),
select 128*1024/2 from dual; 65536个块
每个内存页,有一个页表项(大概10个字节),记录页的状态、位置
默认块大小是4K时--页表大小:320M。
在大页下2M时,页表只占.625M

在Linux中,每个进程页表独立,有各自的页表。
如果有1000个进程:1000 * 320M大约是320G。
而1000个进程使用大页:1000 * 0.625=625M
设置了大页,但没被Oracle使用,原因只有两个

  • SGA_MAX_SIZE超过了大页
  • 没有设置内存锁

内存:是进程活动的舞台,ORACLE数据库在startup时会自动去查找是否设置有大页。
如有,在大页中分配SGA。
如没有,则正常使用默认数据块大小启动。

设置大页步骤:

1.查看系统当前的大页使用情况:

[oracle@qbyldb ~]$ cat /proc/meminfo |grep Huge
AnonHugePages:    131072 kB
HugePages_Total:    7200
HugePages_Free:     7200
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB --大页页大小是2M
SQL> show parameter sga_max;

NAME                     TYPE                  VALUE
------------------------------------ --------------------------------- ------------------------------
sga_max_size                 big integer               5G

2. 设置大页的数量

--这里是7200个*2M=14400M,SGA最大5G,大页的内存要大于SGA大小,才能被ORACLE使用,因为我一个机器上部署了两个实例,所以我设置7200个。

vi /etc/sysctl.conf

在里面增加一行:

vm.nr_hugepages=7200

保存之后执行:

sysctl -p

查看: --如果HugePages_Free:未到7200,多执行几次sysctl -p

[oracle@qbyldb ~]$ cat /proc/meminfo |grep Huge
AnonHugePages:    131072 kB
HugePages_Total:    7200
HugePages_Free:     7200
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB --大页页大小是2M

3.还需要设置内存锁:-- memlock数量要大于大页的数量--设置为-1,不限制。

vi /etc/security/limits.conf
oracle soft memlock -1
oracle hard memlock -1
[oracle@qbyldb ~]$ ulimit -l
unlimited

4.重启数据库,大页已经被ORACLE用上了。

SQL>shutdown immediate;
SQL>startup

重启数据库过程中不断执行;cat /proc/meminfo |grep Huge,能看到HugePages_Free:的数量不断减少,说明大页正在被使用。

[oracle@qbyldb ~]$ cat /proc/meminfo |grep Huge
AnonHugePages:    131072 kB
HugePages_Total:    7200
HugePages_Free:     1530
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB --大页页大小是2M

相关文章

  • 【Oracle】Oracle如何开启大页

    前言:在Linux中配置hugepage可以提高oracle的性能,减少oracle sga的页交换,类似于aix...

  • centos7.5 安装 jdk1.8

    1.Oracle官网下载jdk 下载页链接:https://www.oracle.com/java/technol...

  • 恢复oracle的软件权限

    在安装了 gi,oracle的情况下,如果我们手工修改了$ORACLE_HOME/bin/oracle的权限,如何...

  • Oracle Notes

    1.Oracle匹配 2.Oracle转义 3.设置Oracle开机启动 重启操作系统后测试: 4.如何判断Ora...

  • 数据库面试

    数据库方向 oracle 1.oracle分页是如何实现的 Oracle中的表,除了我们建表时设计的各个字段,...

  • Oracle SQL优化学习

    Oracle SQL优化进阶学习 引言 对于下面的Oracle分页如何优化该段语句: SELECT * FROM ...

  • oracle总结

    Oracle1、对象关系型数据库管理系统 ORDBMS美国Oracle公司推出,在中国注册 “甲骨文” 开启服...

  • Oracle数据库学习整理(一)

    Oracle 基础知识 查询数据 本节将学习如何从Oracle数据库中查询数据。 ●Select语句-演示如何查询...

  • oracle12c静默安装

    Oracle 12c 静默安装Oracle Database,又名Oracle RDBMS,或简称Oracle。是...

  • 2016/12/06

    技术 vue-router2.0设置title Vue 2.0 构建单页应用最佳实战 如何得到oracle数据库中...

网友评论

    本文标题:【Oracle】Oracle如何开启大页

    本文链接:https://www.haomeiwen.com/subject/jgtnhftx.html