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

网页题目:MySQL5.7关闭NUMA方法-创新互联
文章链接:http://bzwzjz.com/article/esppo.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都企业网站制作 成都网站设计 高端定制网站设计 专业网站建设 成都网站制作 网站建设开发 成都企业网站设计 广安网站设计 四川成都网站制作 移动手机网站制作 品牌网站建设 网站设计 手机网站建设套餐 网站建设 重庆企业网站建设 营销型网站建设 高端网站设计 响应式网站建设 网站建设方案 LED网站设计方案 手机网站设计 企业手机网站建设