• ADADADADAD

    MySQL5.7关闭NUMA方法[ mysql数据库 ]

    mysql数据库 时间:2024-12-24 19:10:15

    作者:文/会员上传

    简介:

    非一致存储访问结构 (NUMA : Non-Uniform Memory Access) 也是最新的内存管理技术。它和对称多处理器结构 (SMP : Symmetric Multi-Processor) 是对应的。

    MySQL在NUMA架构上

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    非一致存储访问结构 (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方法.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysql5.7numa关闭