【发布时间】:2021-08-27 11:35:26
【问题描述】:
我有 64 GB 的 linux m/c,DBA 分配了 innodb_buffer_pool_size = 40G,这意味着 24 GB 可用于其余进程 + 操作系统。我的问题是:分配的 innodb_buffer_pool_size 是否提前保留内存,并且在有额外需要时不会将该内存还给操作系统或其他进程?
【问题讨论】:
我有 64 GB 的 linux m/c,DBA 分配了 innodb_buffer_pool_size = 40G,这意味着 24 GB 可用于其余进程 + 操作系统。我的问题是:分配的 innodb_buffer_pool_size 是否提前保留内存,并且在有额外需要时不会将该内存还给操作系统或其他进程?
【问题讨论】:
只要不改变大小,它会在启动时分配,不会像mysqld运行那样“give3n back”。
你必须有足够的可用内存来定义大小,否则 mysql 将无法启动
InnoDB 在服务器启动时为整个缓冲池分配内存,使用 malloc() 操作。 innodb_buffer_pool_size 系统变量定义缓冲池大小。
【讨论】: