zoukankan      html  css  js  c++  java
  • Linux HugePages及MySQL 大页配置

    http://blog.csdn.net/dba_waterbin/article/details/9669929

          ㈠ HugePages简介
         
            HugePages是kernel 2.6引入以便适应越来越大的物理内存
            在Linux下、page size默认是4K、如果使用HugePages、默认是2M
         
            再看2个术语:
            page table 映射表:物理内存和swap的对应关系、访问内存是先读page table、根据表里的映射关系操作
            TLB :cpu cache组件、缓存部分page table以提高转换速度
         
         
         
         ㈡ MySQL 配置大页
         
           好处
         
             ① 提高TLB的命中率
             ② 利用HugePages不会被Swap 的特性保证MySQL内存不会被交换到Swap中
           
           目前在MySQL中HugePages只被InnoDB所支持
           
           以下简单介绍其配置流程
           

           ⑴ 配置前:

    [plain] view plain copy
     
     print?
    1. [root@cdio ~]# cat /proc/meminfo | grep -i huge  
    2. HugePages_Total:     0  
    3. HugePages_Free:      0  
    4. HugePages_Rsvd:      0  
    5. Hugepagesize:     2048 kB  

           ⑵ 设置大页数量、每页通常2M、20个就40M、系统要有足够的内存待分配
    [plain] view plain copy
     
     print?
    1. [root@obe11g ~]# echo 20 > /proc/sys/vm/nr_hugepages  

           ⑶ 增加最大共享内存段的大小、本例12G
    [plain] view plain copy
     
     print?
    1. [root@obe11g ~]# echo 1560281088 > /proc/sys/kernel/shmmax  

           ⑷ 增加共享内存的大小、每页4K
    [plain] view plain copy
     
     print?
    1. [root@obe11g ~]# echo 4194304 > /proc/sys/kernel/shmall  

           ⑸ 将mysql用户所属组添加到系统内核中
    [plain] view plain copy
     
     print?
    1. [root@obe11g ~]# more /proc/sys/vm/hugetlb_shm_group  
    2. 0  
    3. [root@obe11g ~]# id mysql  
    4. uid=501(mysql) gid=501(dba) groups=501(dba)  
    5. [root@obe11g ~]# echo 501 > /proc/sys/vm/hugetlb_shm_group  

           ⑹ 再次确认配置情况
    [plain] view plain copy
     
     print?
    1. [root@obe11g ~]# cat /proc/meminfo | grep -i huge  
    2. HugePages_Total:    20  
    3. HugePages_Free:     20  
    4. Hugepagesize:     4096 kB  

           ⑺ 设置max locked memory
    [plain] view plain copy
     
     print?
    1. [root@obe11g ~]# cat /etc/security/limits.conf  | grep -i mysql  
    2. mysql            hard    memlock         unlimited  
    3. mysql            soft    memlock         unlimited  

           ⑻ 配置 my.cnf
    [plain] view plain copy
     
     print?
    1. [mysqld]  
    2. large-pages  

           ⑼ 启动mysqld
         
           ⑽ 观察HugePages 使用情况
    [plain] view plain copy
     
     print?
    1. [root@obe11g ~]# grep -i huge /proc/meminfo  
    2. HugePages_Total:    20  
    3. HugePages_Free:     16  
    4. Hugepagesize:     4096 kB  
     

     

  • 相关阅读:
    用几何画板画三星状图形的方法有哪些
    ChemDraw 15.1 Pro插入阿尔法可以这样做
    用MathType编辑异或与非符号有什么方法
    整合Thinkphp数据库基本操作CURD,界面datagrid采用EasyUi的Demo
    可编辑表格
    jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、
    jfinal 使用类里的方法
    左右值无限分类实现算法
    PHP递归实现无限级分类
    ThinkPHP自动填充实现无限级分类的方法
  • 原文地址:https://www.cnblogs.com/zengkefu/p/5655057.html
Copyright © 2011-2022 走看看