innodb缓冲池提前预留内存?

innodb buffer pool reserves the memory in advance?

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

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

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

InnoDB allocates memory for the entire buffer pool at server startup, using malloc() operations. The innodb_buffer_pool_size system variable defines the buffer pool size.

manual