【问题标题】:innodb buffer pool reserves the memory in advance?innodb缓冲池提前预留内存?
【发布时间】:2021-08-27 11:35:26
【问题描述】:

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

【问题讨论】:

    标签: mysql ubuntu innodb


    【解决方案1】:

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

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

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

    manual

    【讨论】:

    • 这样mysql会提前预留这么多内存
    • 是的,当你启动mysqld它会分配内存
    • 重型数据库服务器通常独立运行
    • 我的印象是缓存会随着时间的推移而增长。但永远不会缩小。
    • 缓存不止一个,但buffer_pool_size不变。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多