【问题标题】:MySQL + hugepages + memlockMySQL + 大页面 + 内存锁
【发布时间】:2017-04-26 23:33:14
【问题描述】:

我已经成功配置了我的 Ubuntu 服务器,因此 MySQL 可以使用大页面。问题是当我想在my.cnf 中启用memlock 选项并将/proc/sys/vm/hugetlb_shm_group 设置为另一个组(MySQL 是该组的成员)。

# uname -a
Linux hostname 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:51:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

# mysqld --version
mysqld  Ver 5.5.53-0ubuntu0.12.04.1 for debian-linux-gnu on x86_64 ((Ubuntu))

# egrep ^Huge /proc/meminfo
HugePages_Total:   15000
HugePages_Free:    15000
HugePages_Rsvd:        0
HugePages_Surp:        0

# id mysql
uid=107(mysql) gid=113(mysql) groups=113(mysql),117(hugetlb)

如果/proc/sys/vm/hugetlb_shm_group 设置为113,则无论memlock 选项如何,一切都会顺利。

但如果我将/proc/sys/vm/hugetlb_shm_group 设置为117,它只能在没有memlock 选项的情况下工作。如果我启用它,我会在 MySQL 启动时收到此错误:

InnoDB:HugeTLB:警告:分配 21978152960 字节失败。错误号 1

InnoDB HugeTLB:警告:使用常规内存池

知道有什么问题吗?

【问题讨论】:

    标签: mysql linux huge-pages


    【解决方案1】:

    原来是ulimit 的问题。 /etc/security/limits.conf 中的设置被忽略,所以我在 /etc/init/mysql.conf 中进行简单编辑:

    exec /usr/bin/mysqld
    

    改为

    script
        ulimit -l unlimited
        /usr/bin/mysqld
    end script
    

    【讨论】:

      猜你喜欢
      • 2013-05-29
      • 2011-03-22
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多