小亦平台会持续给大家科普一些运维过程中常见的问题解决案例,运维朋友们可以在常见问题及解决方案专栏查看更多案例
问题概述:
- 故障描述: pg数据库idle或idle in transaction状态会话过多,导致系统资源使用率告警,手动kill会话。
解决方案:
- 用postgres用户登录告警的数据库节点;
- 登录数据库,检查idle或idle in transaction状态的会话pid:
psql
\x
select pid,state,query_start,xact_start,now()-query_start,wait_event_type,wait_event,query from pg_stat_activity where now()-query_start > '5s' and state != 'active' order by query_start;
(可以根据要求修改会话超时时间) - 根据情况杀掉过多的idle或idle in transaction状态的会话:
select pg_cancle_backend(pid);
(如果上述命令无法正常kill掉会话,则继续执行)
select pg_terminate_backend(pid); - 检查主机资源使用是否恢复正常,视情况决定是否继续kill相关进程。
立即查看更多postgresql的相关内容:www.ces-xiaoyi.com.cn/?wework_cfm…
运维工作中遇到难题?立即提交工单:www.ces-xiaoyi.com.cn/#/workOrder… 小亦平台工程师火速响应,助您快速修复故障!