PostgreSQL 数据库服务器虚拟化,是还是不是?

Wil*_*and 5 postgresql virtualization database

我们的前 CTO(现在的“顾问”)曾在某个时候警告他的替代者不要虚拟化数据库服务器,特别是我们的 PgSQL 数据库服务器,而是将它们作为实际的物理服务器运行。问题在于,我们的机架中的物理空间和主数据库服务器上的容量正在迅速耗尽。

他只是对 I/O 速度进行了模糊的思考。虽然我没有任何具体理由不相信他对此事的判断,但最好知道:

这个建议是否有真正的理由(如果是,是什么?),还是仅仅是他的迷信?

lyn*_*man 4

虚拟化数据库服务器是一个真正的禁忌,原因如下

  • 正如您的 CTO 正确表达的那样,最大的开放是 I/O 瓶颈,虚拟化系统在磁盘写入上增加了大约 40% 到 60% 的覆盖,这意味着它们写入磁盘的速度至少要慢两倍。考虑到任何繁忙数据库的主要问题之一是尽快写入磁盘的能力,这会阻碍数据库硬件并使数据库在负载下无法使用
  • 此外,数据库能够快速访问大内存页也是关键,因此它会导致同一节点上其余虚拟机的内存不足

因此,明智的做法是将数据库保留在裸机上,同时虚拟化其他不那么依赖磁盘的部分(例如,Web 服务器)