一般情况下使用的内存为每页4K,使用 huge page 的话默认是每页 2M。如果设置MySQL使用 huge page 至少有两个好处,一个是可以减少 Translation Lookaside Buffer (TLB) 失误以提高性能,另一个是利用 huge page不会swap的特性保证MySQL的内存不会被交换到swap中。

MySQL 5.0.3之后在linux上支持huge page,可以使用 large-page 选项启动MySQL。

当然还有一些相关的系统设置。

echo 400 > /proc/sys/vm/nr_hugepages

这个指定总共huge page的页数,可以放到/etc/rc.local中。由于分配时需要有连续的内存空间,所以如果在运行了一段时间的系统上执行,可能无法分配到指定的数量,即使还有足够的内存。

之后还需要设置内核参数kernel.shmmax和kernel.shmall,否则MySQL启动时会报22的错误

InnoDB: HugeTLB: Warning: Failed to allocate 536887296 bytes. errno 22

shmmax是最大的共享内存段的大小,单位是字节,默认32M,肯定是不够的,这个应该比innodb_buffer_pool要大。shmall是共享内存的总大小,单位是页,默认2097152(8G)。可以使用sysctl -w或者在/etc/sysctl.conf中设置。

除此还需要设max locked memory,使用ulimit -l或设置/etc/security/limits.conf,否则会报12的错误:

Warning: Failed to allocate 31457280 bytes from HugeTLB memory. errno 12

MySQL启动之后可以使用

grep Huge /proc/meminfo

查看huge page的使用情况。

HugePages_Total: 400

HugePages_Free: 128

Hugepagesize: 2048 kB

mysql设置最大使用内存_设置MySQL使用大内存页面相关推荐

  1. mysql设置参数不生效_关于mysql的wait_timeout参数 设置不生效的问题【转】

    关于wait_timeout 有一次去online set wait_timeout 的时候发现改了不生效,如下: mysql> show variables like 'wait_timeou ...

  2. mysql开放允许外部连接_设置MySql允许外部连接的方法

    在linux上或window下cmd命令行下用root登陆,设置权限,grant 权限名(sqlserver和mysql不一样的,可以看手册知道,分所有的权限用all) on    库名(*表全部). ...

  3. mysql占用多少内存_解决mySQL占用内存超大问题

    解决mySQL占用内存超大问题 解决mySQL占用内存超大问题 为了装mysql环境测试,装上后发现启动后mysql占用了很大的虚拟内存,达8百多兆.网上搜索了一下,得到高人指点my.ini.再也没见 ...

  4. mysql56 配置内存_【mysql】mysql 内存配置调优

    mysql的内存计算公式: mysql used mem = key_buffer_size + query_cache_size + tmp_table_size + innodb_buffer_p ...

  5. mysql和python的关系_八MySQL与Python

    <1>数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. ...

  6. mysql 自动化运维工具_部署MySQL自动化运维工具inception+archer

    *************************************************************************** 部署MySQL自动化运维工具inception+ ...

  7. mysql query browser的使用_影响MySQL性能的配置参数

    (一)连接 连接通常来自Web服务器,下面列出了一些与连接有关的参数,以及该如何设置它们.1.max_connections这是Web服务器允许的最大连接数,记住每个连接都要使用会话内存(关于会话内存 ...

  8. mysql 配置多个数据库连接_总结MySQL修改最大连接数的两个方式

    问题 在使用MySQL数据库的时候,经常会遇到这么一个问题,就是"Can not connect to MySQL server. Too many connections"-my ...

  9. mysql数据库重做日志文件_数据库:mysql:重做日志文件(redo log file)

    一.重做日志缓冲(redo log buffer) 1. log block 在InnoDB存储引擎中,重做日志都是以512字节进行存储的.这意味着重做日志缓存.重做日志文件都是以块(block)的方 ...

  10. mysql ibd文件一直增加_为什么 MySQL 回滚事务也会导致 ibd 文件增大?

    一个简单的测试: start transaction; insert into tb1 values(3, repeat('a', 65000),'x',1); --commit; rollback; ...

最新文章

  1. linux ftp随机端口,linuxFTP生产环境配置
  2. SQL自动审核-自助上线平台
  3. 比特币Cash Hard Fork辩论在压力测试后重新召开
  4. Java泛型详解:<T>和Class<T>的使用,泛型类
  5. 命令(CMD)终端的清屏(清除/清空)命令/快捷键
  6. S3C2440扩展SDRAM
  7. NLP领域中更有效的迁移学习方法
  8. Python系统性能信息模块
  9. [Java] [Lock] [Synchronized VS ReentrantLock]
  10. JS实现将所有超链接指向同一个页面地址
  11. MongoDB 主从架构
  12. ProGuard正确下载网址
  13. 百度文库免费下载方法
  14. python刷新网页_python调用浏览器刷新网页的简单示例
  15. 为何Set检索效率低下
  16. NFT数字藏品交易平台免费版源码-视觉猿CMS
  17. DBeaver21.1.5如何迁移已有数据库连接
  18. win10网络适配器不见了_win10设备管理器里没有网络适配器的原因及处理方法
  19. HDU - 5894 hannnnah_j’s Biological Test 组合数(插板法)
  20. Easy Deep Learning——卷积层

热门文章

  1. 计算机一级选择题计算题,计算机一级选择题计算一级选择题.doc
  2. 其中的各种居中(水平居中,垂直居中,水平垂直居中)
  3. 纽约2050交通发展战略——高效移动性
  4. Arduino Leonardo 模拟键盘
  5. 社区发现(一):社区简介
  6. python矩阵运算,转置,逆运算,共轭矩阵
  7. STM32 热敏电阻NTC的软件设计(ADC采集)
  8. Uniapp URL地址栏获取指定参数
  9. 上网的时候不知道自己电脑的IP地址怎么办? 找藏拙IP搜索
  10. Unity ForceMode