从 10GB 到 512MB:一次数据库内存回收带来的整机重生
——PVE + Docker + Web 应用场景下的真实优化案例 一、问题背景 在一台运行于 Proxmox VE(PVE)上的 Linux 虚拟机中,同时部署了多种服务,包括: 该虚拟机分配了约 23GB 内存,长期观察到: 初步怀疑数据库内存配置不合理。 二、关键发现:InnoDB Buffer Pool 被设置为 10GB 通过查询数据库内部参数发现: 结果显示: 这是一套典型的数据库专用服务器配置,而当前系统实际上是一个多服务混合运行的 Web 主机。 在这种环境下: 其直接后果是: 三、目标:尽可能小,但不影响实际性能 该系统的目标是: 在不影响 Web 应用体验的前提下,将数据库内存压缩到合理的下限。 最终采用如下配置: 设计原则: 四、效果:数据库从“内存黑洞”变为“可控组件” 重启后验证: 数据库进程内存占用: 与 512MB 的 buffer pool 高度一致,说明配置准确生效。 五、整机内存结构发生根本变化 优化后系统状态: 含义: 本质变化是: 从“数据库私有缓存主导”→ “操作系统统一缓存主导” …