我有一个Postgres 9.5数据库,用于基于web的Java应用程序.有时,由于长时间运行的查询,会话数突然激增,这些会话不会立即清除.当我判断pg_stat_activity时,查询列显示提交或回滚,其中有一个空闲阶段.这会导致Postgres达到max_连接的高阈值,这可能会导致生产中断.
查询|回滚
查询|提交
- 这些提交/回滚空闲会话是什么?
- 如何立即清除这些空闲会话?
- 如何减少创建这些空闲会话的数量?
谢谢
我有一个Postgres 9.5数据库,用于基于web的Java应用程序.有时,由于长时间运行的查询,会话数突然激增,这些会话不会立即清除.当我判断pg_stat_activity时,查询列显示提交或回滚,其中有一个空闲阶段.这会导致Postgres达到max_连接的高阈值,这可能会导致生产中断.
查询|回滚
查询|提交
谢谢
这些连接正在等待另一个查询.他们什么都没做.这就是他们无所事事的原因.
你的应用程序使用连接池,以避免随时断开和重新连接.当它的连接比活动查询多时,一些连接将处于空闲状态,并且显示的查询将是最后一个完成的查询.
这一切都很正常,没什么好担心的.你不需要改变或修复任何东西.