我正在将运行Postgres的多个Linux盒合并到一个盒子中。
考虑到Postgres处理资源利用的方式,一个处理所有数据库的服务器服务是否比运行在同一主机上的多个服务器服务(每个服务器都在监听不同的IP:端口)提供更好的性能?
谢谢
发布于 2014-06-20 01:25:24
通常,单个实例的效率更高,但数据库之间的性能隔离性较差。
如果您希望获得最大的吞吐量和最佳的资源利用率,请将它们放在一个实例中。一个繁忙的DB将能够以这种方式更容易地影响其他DB,特别是当涉及到诸如高速率的小写事务时。诸如异步提交、提交延迟等特性,帮助。如果在一个实例中对它们进行分组,您还必须对整个DB进行任何物理备份和流复制/ PITR,您不能只隔离一个DB。
如果您想减少一个繁忙/重载的DB对另一个DB的影响,请将它们隔离到它们自己的实例中,并将每个实例放在一个单独的文件系统上,这在单独的底层存储上是不可能的。您将在浪费的shared_buffers空间、额外的fsync()s等方面付出代价,您将发现用户管理是一个很大的痛苦,但是您将能够对一个DB进行流复制/物理备份,并且您将能够更好地管理它们的相对资源分配。如果它们是单独的实例,则可以更有效地使用nice、ionice等,并且可以更好地管理存储配额。
https://dba.stackexchange.com/questions/68592
复制相似问题