Google 计算 - 较少 vCPU 的高 IOPS vs 较多 vCPU 的低 IOPS

Google 计算 - 较少 vCPU 的高 IOPS vs 较多 vCPU 的低 IOPS

我的 Postgresql 数据库在 Google 计算实例 N1 上运行,该实例具有自定义配置(26 个 vCPU,52 GB 内存),并具有 1.2TB 的持久性 SSD 磁盘。此设置未得到充分利用,但将读取 IOPS 保持在 3k 以下。因此,我们将设置减少为自定义配置(20 个 vCPU,40 GB 内存)。是什么原因导致 IOPS 增长到 7K 以上?

两种设置中的数据库工作负载仍然相同。

答案1

内存减少会降低缓存命中率。假设您没有更改数据库的内存配置,以前是操作系统文件系统缓冲区为这些读取提供服务。

系统内存大小与存储 IOPS 之间的关系不是线性的。当内存压力增大时,缓存是最先被回收的。换句话说,这 12 GB 的差异很可能完全是缓存减少的结果。

工作负载类型还与数据重新引用的频率有关,因此 IO 模式也很重要。如果用户平均查看一条记录 5 分钟,则当内存足以缓存 6 分钟和 4 分钟时,IOPS 会有很大差异。

相关内容