mysql5.7.9+支持的新参数innodb_numa_interleave
admin
2023-05-07 09:02:11
0次

        大家都知道,在运行mysql服务的服务器上,linux系统的内存numa特性是强烈建议关闭的。因为这种特性很容易引起内存泄漏的情况:即发现物理内存还有剩余,但是系统已经开始使用swap内存。

        numa内存特性:比如一台机器是有2个处理器,有4个内存块。我们将1个处理器和两个内存块合起来,称为一个NUMA node,这样这个机器就会有两个NUMA node。在物理分布上,NUMA node的处理器和内存块的物理距离更小,因此访问也更快。比如这台机器会分左右两个处理器(cpu1, cpu2),在每个处理器两边放两个内存块(memory1.1, memory1.2, memory2.1,memory2.2),这样NUMA node1的cpu1访问memory1.1和memory1.2就比访问memory2.1和memory2.2更快。所以使用NUMA的模式如果能尽量保证本node内的CPU只访问本node内的内存块,那这样的效率就是最高的。

        其实由于mysql数据库服务器一般只会部署mysql一种服务在运行,而不会部署若干应用在运行。所以一般是希望mysql是独占整个服务器的资源(剔除留给操作系统运行的资源)。所以根据这种业务特性,mysql服务器上是不建议开启numa内存特性。

        那如果关闭numa特性呢?

        1、BLOS层面:

        由于不同系统之间各种BLOS类型的区别,设置各有不同。这里不再展开。

        2、操作系统层面:

        可以直接在/etc/grub.conf的kernel行最后添加numa=off。

        3、MySQL层面:

        直接修改启动脚本:

        numactl --interleave=all mysqld --defaults-file=/etc/my.cnf &

        4、设置innodb_numa_interleave参数:

        MySQL5.7.9版本+,新增了参数innodb_numa_interleave。根据官方文档的描述:当设置innodb_numa_interleave=1的时候,对于mysqld进程的numa内存分配策略设置为MPOL_INTERLEAVE,而一旦Innodb buffer pool分配完毕,则策略重新设置回MPOL_DEFAULT。当然这个参数是否生效,必须建立在mysql是在支持numa特性的linux系统上编译的基础上。

        在MySQL5.7.17版本+, CMake编译软件新增了WITH_NUMA参数,可以在支持numa特性的linux系统上编译mysql。

        注:innodb_numa_interleave目前在mysql5.7.17的二进制包是不支持的,详细的bug信息:https://bugs.mysql.com/bug.php?id=80288 。如果需要规避这种情况,建议下载源码包,直接在系统上进行mysql编译。


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...