postgresql postgres:如何校准idle_in_transaction_session_timeout

ars1skjm  于 5个月前  发布在  PostgreSQL
关注(0)|答案(2)|浏览(84)

我想设置RDS postgres数据库的idle_in_transaction_session_timeout参数组设置。对于如何实现这一点有什么建议吗?什么是正确的值?我应该看什么来决定最佳值。

wkftcu5l

wkftcu5l1#

idle_in_transaction_session_timeout定义了空闲事务在自动回滚之前可以保持打开状态的最长时间。
要为参数选择最佳值,您可以按照以下步骤操作:

  • 确定应用程序的典型事务持续时间,并从略高于最长预期事务持续时间的保守值开始。
  • 应用更改后监视数据库性能和资源使用情况。
  • 查找以下指标:
  • 活动连接、空闲连接、阻塞连接。
  • 平均事务持续时间,长时间运行的事务。
  • 锁定等待时间、CPU和内存利用率。

现在,基于指标和观察结果调整和监控:

  • 如果有许多空闲事务正在回滚,则可能表示该值太低。请逐渐增加该值。
  • 如果由于长时间运行的空闲事务导致资源使用率仍然很高,则该值可能过高。请谨慎地降低该值,以确保可以完成长时间运行的流程。
  • 持续监控并根据观察到的行为调整设置。
ubby3x7f

ubby3x7f2#

询问编写应用程序的人,在最坏的情况下,数据库事务需要多长时间,然后将idle_in_transaction_session_timeout设置为该值的10倍,我建议将10秒作为该参数的合理最小值,但通常会更高。

相关问题