KingbaseES V8R6 空闲事务会话超时自动终止机制
背景
如果会话在事务中停留的时间过长,则允许自动终止空闲会话。可以由配置参数idle_in_transaction_session_timeout 事务处于空闲状态的时长,它有助于防止被遗忘的交易事务,避免长期持有锁,防止vacuum清理时间很长。
而且对于长时间不释放的连接会话,它所占用的本地内存也不会释放。所以,如果这类会话很多就会对服务器内存造成耗尽的风险。
实验
idle_in_transaction_session_timeout = 10000,参数单位为毫秒,这里设置 idle in transaction 空闲事务超时时间为 10 秒。
开启会话一:
test=# begin;
BEGIN
test=# select 2;
?column?
----------
2
(1 row)
开启会话二:
select * from pg_stat_activity where pid<>pg_backend_pid();
datid | 16052
datname | test
pid | 13447
usesysid | 10
usename | system
application_name | kingbase_*&+_
client_addr |
client_hostname |
client_port | -1
backend_start | 2022-10-18 11:04:31.894706+08
xact_start | 2022-10-18 11:06:48.877390+08
query_start | 2022-10-18 11:06:56.214833+08
state_change | 2022-10-18 11:06:56.214963+08
wait_event_type | Client
wait_event | ClientRead
state | idle in transaction
backend_xid |
backend_xmin |
query | select 2;
backend_type | client backend
过10秒钟以后,就查不到这个事务了,再回到会话1执行某个查询会看到:
FATAL: terminating connection due to idle-in-transaction timeout
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
You have mail in /var/spool/mail/kingbase
这就说明参数生效了,超过10S的空闲事务会话超时中断。
数据库日志可以查看到:
2022-10-18 11:17:28.940 CST,"system","test",13447,"[local]",634e1ab2.4b42,1,"idle in transaction",2022-10-18 11:17:06 CST,10/324,0,FATAL,25P03,"terminating connection due to idle-in-transaction timeout",,,,,,,,,"kingbase_*&+_"
13447进程连接超时被中断。
总结:
以上演示了参数idle_in_transaction_session_timeout参数的功能。由此引申出另外一个参数,client_idle_timeout,这两个参数的区别在于client_idle_timeout规定了空闲会话超时中断时间,它不存在于事务里,默认是0,表示关闭。两个参数应该根据实际应用情况配合使用。
KINGBASE研究院
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2021-12-21 大对象导出性能测试
2021-12-21 GIN and RUM 索引性能比较