gpt4 book ai didi

具有数千个连接和分布式事务的 PostgreSQL DB 性能问题

转载 作者:行者123 更新时间:2023-11-29 11:25:53 25 4
gpt4 key购买 nike

我们正在尝试评估 PostgreSQL 数据库作为我们应用程序中 Oracle 数据库的替代品。我们使用安装在具有 128 GB 内存、32 个 CPU 内核和 SSD 存储的 Linux 机器上的 PostgreSQL 9.5。连接池和分布式事务由 JBoss 7 应用服务器管理,SQL 查询由 Hibernate 4 生成/执行。大多数表有数千万行,其中一个表有数亿行。总共大约有 3,000 个数据库连接(它们由应用程序服务器合并)处于事件状态并同时使用。我们修改了一些查询,为慢查询创建索引,根据文档调整数据库和操作系统设置等。但是,吞吐量慢了几倍,最终数据库响应时间增加了 10-20 倍。

我已经进行了一些谷歌搜索,但找不到有关其他人(ab)以相同方式使用 PostgreSQL DB 的信息:

  • 使用数千个事件数据库连接
  • 使用大量分布式事务(PREPARED TRANSACTIONS)
  • 在一个表中存储数十亿行

Oracle 在处理更高负载时没有任何问题。我很乐意分享您的经验、建议、链接等。

谢谢

最佳答案

解决方案是升级 Linux 内核并将 Java 连接池中的数据库连接数从 3000 减少到 300。此更改后,我们可以处理与 Oracle 数据库相同的流量。

我偶然发现了一条宝贵的信息,可以在帖子的评论部分解决问题 Did I Say 32 Cores? How about 64?由罗伯特哈斯撰写(副总裁,首席架构师,数据库服务器 @ EnterpriseDB,PostgreSQL 主要贡献者和提交者):

No, I'm saying that to get good performance on a 64-core server, you're going to need PostgreSQL >= 9.2 and Linux >= 3.2. Most of the changes are actually on the PostgreSQL side, but the lseek scaling stuff in the Linux kernel was important, too.

关于具有数千个连接和分布式事务的 PostgreSQL DB 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39628512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com