小编Fed*_*ina的帖子

使用 TCP keepalive 终止孤立的 postgres 查询不起作用

问题:某个应用程序的用户执行一个涉及大量 sql 查询的报告。几分钟后,用户退出应用程序(或者更糟糕的是,应用程序崩溃,或者与数据库服务器的连接丢失)。然而,查询会继续执行,即使不再需要它

所以我已经阅读了这些类型的情况以及如何处理它们,并且建议使用TCP Keepalive 配置

问题是看起来 postgres 忽略了这个配置。我在“postgres 级别”和“操作系统级别”都降低了原始配置值,但没有运气:

  • 配置文件
    • tcp_keepalives_idle = 60
    • tcp_keepalives_interval = 6
    • tcp_keepalives_count = 10
  • Ubuntu
    • echo 60 > /proc/sys/net/ipv4/tcp_keepalive_time
    • 回声 10 > /proc/sys/net/ipv4/tcp_keepalive_intvl
    • 回声 6 > /proc/sys/net/ipv4/tcp_keepalive_probe

我什至尝试重新加载/重新启动 postgres 但没有任何效果,查询一直运行到最后两分钟。¿是否有任何额外的步骤我遗漏了?

编辑:pg_stat_activity 的结果:

  datid   |                  datname                   | procpid | usesysid | usename  |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          current_query                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | waiting |          xact_start           |          query_start          |         backend_start         | client_addr | client_port 
----------+--------------------------------------------+---------+----------+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+-------------------------------+-------------------------------+-------------------------------+-------------+-------------
467061608 | libertya_prod_hts_rg1_20161004_qafuncional |   16716 |    16384 | libertya | SELECT dt.signo_issotrx, …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-8.4 tcpip kill

6
推荐指数
1
解决办法
4009
查看次数

标签 统计

kill ×1

postgresql ×1

postgresql-8.4 ×1

tcpip ×1