MySQL5.7关闭NUMA方法
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,非一致存储访问结构 (NUMA : Non-Uniform Memory Access) 也是最新的内存管理技术。它和对称多处理器结构 (SMP : Symmetric Multi-Processor
千家信息网最后更新 2026年11月01日MySQL5.7关闭NUMA方法非一致存储访问结构 (NUMA : Non-Uniform Memory Access) 也是最新的内存管理技术。它和对称多处理器结构 (SMP : Symmetric Multi-Processor) 是对应的。
MySQL在NUMA架构上会出现的问题:
1).CPU规模因摩尔定律指数级发展,而总线发展缓慢,导致多核CPU通过一条总线共享内存成为瓶颈
2).于是NUMA出现了,CPU平均划分为若干个Chip(不多于4个),每个Chip有自己的内存控制器及内存插槽
3).CPU访问自己Chip上所插的内存时速度快,而访问其他CPU所关联的内存(下文称Remote Access)的速度相较慢三倍左右
4).于是Linux内核默认使用CPU亲和的内存分配策略,使内存页尽可能的和调用线程处在同一个Core/Chip中
5).由于内存页没有动态调整策略,使得大部分内存页都集中在CPU 0上
6).又因为Reclaim默认策略优先淘汰/Swap本Chip上的内存,使得大量有用内存被换出
7).当被换出页被访问时问题就以数据库响应时间飙高甚至阻塞的形式出现了
因此MySQL单机单实例,建议关闭NUMA,关闭的方法有三种:
1.硬件层,在BIOS中设置关闭;
2.OS内核,启动时设置numa=off;
3.可以用numactl命令将内存分配策略修改为interleave(交叉)
登录Linux系统,修改/etc/init.d/mysqld文件,加上numactl --interleave all
vi /etc/init.d/mysqld
找到如下行
# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
将$bindir/mysqld_safe --datadir="$datadir"这一行修改为:
/usr/bin/numactl --interleave all $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
然后重启MySQL服务.
#service mysqld restart
MySQL在NUMA架构上会出现的问题:
1).CPU规模因摩尔定律指数级发展,而总线发展缓慢,导致多核CPU通过一条总线共享内存成为瓶颈
2).于是NUMA出现了,CPU平均划分为若干个Chip(不多于4个),每个Chip有自己的内存控制器及内存插槽
3).CPU访问自己Chip上所插的内存时速度快,而访问其他CPU所关联的内存(下文称Remote Access)的速度相较慢三倍左右
4).于是Linux内核默认使用CPU亲和的内存分配策略,使内存页尽可能的和调用线程处在同一个Core/Chip中
5).由于内存页没有动态调整策略,使得大部分内存页都集中在CPU 0上
6).又因为Reclaim默认策略优先淘汰/Swap本Chip上的内存,使得大量有用内存被换出
7).当被换出页被访问时问题就以数据库响应时间飙高甚至阻塞的形式出现了
因此MySQL单机单实例,建议关闭NUMA,关闭的方法有三种:
1.硬件层,在BIOS中设置关闭;
2.OS内核,启动时设置numa=off;
3.可以用numactl命令将内存分配策略修改为interleave(交叉)
登录Linux系统,修改/etc/init.d/mysqld文件,加上numactl --interleave all
vi /etc/init.d/mysqld
找到如下行
# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
将$bindir/mysqld_safe --datadir="$datadir"这一行修改为:
/usr/bin/numactl --interleave all $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
然后重启MySQL服务.
#service mysqld restart
内存
策略
内核
总线
结构
速度
问题
分配
发展
方法
亲和
缓慢
一行
下文
单机
命令
处在
处理器
大部分
定律
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云南咖啡
互联网科技产业
科技平台互联网
浩特互联网科技
互联网科技美容
互联网科技创新企业排名
蓝色互联网科技
江苏南京365互联网科技
哈尔滨新华互联网科技学院
随着互联网科技发展
允成互联网科技有限公司融资
上海科技产业互联网平台
山东子淼互联网科技有限公司
互联网科技快讯热点
南京一网一红互联网科技有限公司
济南小医互联网科技有限公司招聘
中国互联网公司的科技投入
广西泛欧互联网科技有限公司
恒生科技指数 中概互联网
网互联网络科技
蓝思科技飞鸽互联网
互联网 科技
互联网前沿科技
互联网之后的科技是什么
字节跳动和互联网科技
承德科技产业互联网发展
中国互联网十大科技股排名
互联网安防科技感
互联网科技企业商标注意事项
现代互联网科技公司