postgresql的负载均衡/分配

时间:2011-09-26 03:01:58

标签: performance postgresql load-balancing

我花了很多时间试图了解如何在postgresql数据库服务器之间实现负载平衡(分配数据库处理负载)之后来到这里。

我有一个postgresql系统,每秒吸引大约100个事务,这可能会增长。请注意我的案例有很多更新+插入+选择。因此,对我来说,任何解决方案都需要满足所有插入/更新和读取。

如果有任何简单(或复杂)的解决方案可以为上述方案实施,有人可以建议我吗?

1 个答案:

答案 0 :(得分:2)

如果您的数据库小于100GB,那么您应该首先尝试最大限度地利用一台计算机。

你需要:

  • 具有大量电池备份缓存的优质存储控制器;
  • RAID10中的一堆快速磁盘;
  • RAID10中用于WAL的另一堆磁盘;
  • 比你有数据的RAM更多;
  • 尽可能多的快速处理器内核。

你可以用这台计算机做几千个tps。

如果还不够,我会尝试添加第二个带有流复制的热备用服务器。您可以使用它来运行长时间运行的只读报告查询,备份等,因此您的主服务器不必执行这些操作。

只有在证明不够的情况下,您才应尝试添加更多流式复制热备用服务器以对只读查询进行负载平衡。这将是复杂的 - 因为它是异步的,主人确认和待机看到一个变化之间的延迟。您必须在客户端应用程序中处理它。您的设置会更复杂。