我们公司使用 IBM Storwize V3700 作为存储解决方案,它在 RAID 5 上运行 3 个存储卷。该存储不仅用于数据库,还用于一般虚拟机存储和整个公司可用的共享文件系统。
我的理解是,如果您拥有一致的 IOPS 并且 WAL 日志和数据存储在单独的磁盘中,则 ACID 数据库(尤其是 PostgreSQL)通常运行得更好。这种配置在通用存储解决方案中是不可能的。据我所知,当文件系统采用 RAID 5 时,数据库在重度写入/重度读取场景中运行不佳,但我找不到任何直接解释它的文章。
出于性能原因,我想将一个 Postgres DB 移出通用存储,因为这些卷用于为其他 VM 和服务提供服务,所以我会在 IOPS 中产生“坏邻居”效应,但我需要支持我的理解。
答案1
相当低端的解决方案。让我们来了解一些常识:
我的理解是,如果您拥有一致的 IOPS 并且 WAL 日志和数据存储在单独的磁盘中,则 ACID 数据库(尤其是 PostgreSQL)通常运行得更好。这种配置在通用存储解决方案中是不可能的。
这就是 MS 长期以来青睐本地磁盘的原因——除了能够获得更多带宽和成本效益之外。话虽如此,这完全可行。我曾经与一位在 SAN 中拥有 160 个专用硬盘的客户合作——这一切都取决于资金是否满足需求。
据我所知,当文件系统采用 RAID 5 时,数据库在重度写入/重度读取场景中运行不佳,但我找不到任何直接的文章来解释它。
定义得很好。在 2016 年,当需要提高性能时,数据库通常会与 SSD 对抗,因为任何硬盘都不是第二选择。
出于性能原因,我想将一个 Postgres DB 移出通用存储
没有意义。
购买本地 SSD。即使使用基于 SATA 的 SSD,本地磁盘的性能也比任何价格不算贵的 SAN 解决方案高得多。假设“通用存储”是指一些低端 NAS 设备 - 抱歉,但与大多数以性能为导向的台式机所使用的相比,这并不算高性能。您需要坐下来,看看当前的技术,然后进行计算。一般来说:SSD 上的数据库。