You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure虚拟机Ubuntu系统PostgreSQL 9.5服务自动停机问题求助

PostgreSQL 9.5闲置数小时自动停机的解决方法

每次使用PostgreSQL服务都需重启

在Azure虚拟机的Ubuntu系统上运行PostgreSQL 9.5时,使用正常但闲置数小时后会自动停机,仅能通过重启服务恢复。以下是针对性的排查与解决步骤:

  • 查看服务状态与系统日志,定位停机原因
    运行以下命令查看当前服务状态:
    systemctl status postgresql
    调取近24小时的服务日志排查异常:
    journalctl -u postgresql --since "24 hours ago"
    重点关注日志中OOM killer(内存不足被系统终止)、shutdown、crash这类关键信息,确定停机触发源。

  • 检查Azure虚拟机的自动关机配置
    登录Azure门户,找到目标虚拟机:

    1. 进入「操作」>「自动关机」页面
    2. 确认是否开启了闲置自动关机功能,若开启则直接关闭,或按需调整闲置触发时长。
  • 调整PostgreSQL闲置连接与存活参数
    编辑PostgreSQL主配置文件(路径通常为/etc/postgresql/9.5/main/postgresql.conf),修改以下参数:

    • 将idle_in_transaction_session_timeout设为0(禁用闲置事务超时)或较大值(如3600000,即1小时,单位为毫秒)
    • 优化TCP存活探测参数,确保连接不被异常断开:
      tcp_keepalives_idle = 600
      tcp_keepalives_interval = 60
      tcp_keepalives_count = 10
      

    修改完成后重启服务生效:systemctl restart postgresql

  • 配置OOM Killer优先级,避免服务被强制终止
    若日志显示存在内存不足(Out of memory)情况,需调整系统OOM Killer对PostgreSQL的优先级:

    1. 编辑(或创建)/etc/systemd/system/postgresql.service文件,添加以下内容:
      [Service]
      OOMScoreAdjust=-1000
      
    2. 重新加载systemd配置并重启服务:
      systemctl daemon-reload
      systemctl restart postgresql
  • 设置服务自动重启与开机自启
    确保服务开机自动启动:
    systemctl enable postgresql
    同时配置服务意外停止后自动重启:编辑/etc/systemd/system/postgresql.service,添加:

    [Service]
    Restart=always
    RestartSec=5
    

    重新加载配置并重启服务,确保策略生效。

内容的提问来源于stack exchange,提问作者Mau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:57:29