文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

在LINUX平台配置 MSYQL 支持大页内存

2024-04-02 19:55

关注
操作系统:
[root@oradb ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.4 (Santiago)

数据库:
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.27    |
+-----------+
1 row in set (0.00 sec)

在这个测试中我们设置400MB的大页内存给 MYSQL使用

1. 关闭匿名大页内存

下面的命令输出为 [always]  表示开启匿名大页内存,需要关闭
[root@oradb ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] never

在  /boot/grub/grub.conf  文件中添加 transparent_hugepage=never 禁止匿名大页内存

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-358.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=bfd79be7-6446-4864-bc1f-ad15d4b242ad rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet  transparent_hugepage=never
        initrd /initramfs-2.6.32-358.el6.x86_64.img
        
        
重启操作系统,然后检查是否禁止了匿名大页

[root@oradb ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always [never]   # 已经成功禁止匿名大页内存


[root@oradb ~]# cat /proc/meminfo | grep -i huge
AnonHugePages:         0 kB  # AnonHugePages 为零,表示已经成功禁止了匿名大页内存
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB # 大页内存的页面大小是2MB


2. 在内核参数中配置400MB的大页内存
# vi  /etc/sysctl.conf
# config hugepages
# vm.nr_hugepages = MYSQL需要使用的内存 / 大页的页面大小 = 400/2=200
vm.nr_hugepages=200
vm.hugetlb_shm_group=507 # 507是MYSQL所属组ID

[root@oradb ~]# sysctl -a |grep shmmax
kernel.shmmax = 68719476736
[root@oradb ~]# sysctl -a |grep shmall
kernel.shmall = 4294967296

操作系统默认已经设置 kernel.shmmax=64GB,kernel.shmall=4GB,已经超过我们
需要的内存量(400MB)所以不需要调整这两个参数。

3.重新加 LINUX 载内核参数
sysctl  -p

4. 设置 MYSQL用户限制内存锁定400MB
vi /etc/security/limits.conf
mysql      soft    memlock   409600 #单位为KB,我们配置的是MYSQL用户限制内存锁定400MB
mysql      hard   memlock    409600

5. 配置MYSQL启用大页内存
[mysqld]
large-pages

6. 启动MYSQL
/app/oracle/oradata2/mysql-5.6.27/bin/mysqld_safe --defaults-file=/app/oracle/oradata2/mysql-5.6.27/my.cnf --user=mysql &

检查已经使用了大页内存
[root@oradb mysql-5.6.27]# cat /proc/meminfo | grep -i huge
AnonHugePages:         0 kB
HugePages_Total:     200
HugePages_Free:      197
HugePages_Rsvd:       67
HugePages_Surp:        0
Hugepagesize:       2048 kB

HugePages_Total为所分配的页面数目,和Hugepagesize相乘后得到所分配的内存大小。200*2/1024大约为200MB。

HugePages_Free为从来没有被使用过的Hugepages数目。即使 MYSQL INNDOB 缓冲池已经分配了这部分内存,但是如果没有实际写入,
那么看到的还是Free的。这是很容易误解的地方。

HugePages_Rsvd为已经被分配预留但是还没有使用的page数目。在 MYSQL 刚刚启动时,大部分内存应该都是Reserved并且Free的,随着
INNDOB 缓冲池的使用,Reserved和Free都会不断的降低。

HugePages_Free – HugePages_Rsvd 这部分是没有被使用到的内存,如果没有其他的 MYSQL实例,这部分内存也许永远都不会被使用到,也就是被浪费了。
在这个测试中没有使用的大页内存是 197-67=130*2=260MB。
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯