zoukankan      html  css  js  c++  java
  • numa 和 mysql

    cpu numa结构反应的内存访问速度问题:

    在多核cpu的时代引入了cpu的numa(非一致内存访问结构):

    NUMA引入了node的概念,每个物理CPU都被视作一个node,而每个node都有一个local memory(访问速度更快),其他node的内存则为remote

    NUMA的内存分配策略有localalloc、preferred、membind、interleave。
    localalloc规定进程从当前node上请求分配内存;
    preferred比较宽松地指定了一个推荐的node来获取内存,如果被推荐的node上没有足够内存,进程可以尝试别的node。
    membind可以指定若干个node,进程只能从这些指定的node上请求分配内存。
    interleave规定进程从指定的若干个node上以Round-roll算法交织地请求分配内存。

    在centos中,localalloc是默认的NUMA内存分配策略,
    这个配置选项导致资源独占程序很容易将某个node的内存用尽。而当某个node的内存耗尽时,
    Linux又刚好将这个node分配给了某个需要消耗大量内存的进程(或线程),
    此时即便其他node有空闲内存也无济于事,于是就产生了swap(swap对性能影响非常大)


    [root@zabbix-server bin]# sysctl -a|grep vm.zone
    vm.zone_reclaim_mode = 0
    numa结构中设置 vm.zone_reclaim_mode = 0:内存不足时去remote memory分配优先于swap out local page



    调低mysql被oom_kill的可能
    echo -15 > /proc/`pidof mysqld`/oom_adj

     关闭numa:

    1、

    [root@zabbix-server ~]# vim /etc/grub.conf 

    2、

    在bois中关闭

  • 相关阅读:
    网站并发量的计算方法
    Kubernetes-1.16部署之一 ETCD+K8s+Calico
    CentOS 7和Ubuntu 18.04安装Docker
    Tomcat8的kryo序列化方式session共享
    Tomcat启动慢问题解决
    Memcached集群配置
    sed命令使用方法
    python数据分析与算法之五 算法
    python数据分析与算法之四 二叉树和排序二叉树
    python数据分析与算法之三 顺序表和链表
  • 原文地址:https://www.cnblogs.com/fanxuanhui-linux/p/6262990.html
Copyright © 2011-2022 走看看