首页 > 解决方案 > innodb缓冲池提前预留内存?

问题描述

我有 64 GB linux m/c,DBA 分配了 innodb_buffer_pool_size = 40G,这意味着 24 GB 可用于其余进程 + 操作系统。我的问题是:分配的 innodb_buffer_pool_size 是否提前保留内存,并且在有额外需要时不会将该内存还给操作系统或其他进程?

标签: mysqlubuntuinnodb

解决方案


只要不改变大小,它就会在启动时分配,不会像 mysqld 运行时那样“give3n back”。

并且您必须有足够的可用内存来定义大小,否则 mysql 将无法启动

InnoDB 在服务器启动时使用 malloc() 操作为整个缓冲池分配内存。innodb_buffer_pool_size 系统变量定义缓冲池大小。

手册


推荐阅读