服务器内存不够导致postgresql进程被kill的问题记录

服务器环境:Centos7.9,PGSQL14

  1. 故障现象
    平均负载飙升至80以上
    磁盘 IO 高: 故障期间磁盘 IO 明显增加
    同步异常: 主从库的复制出现问题,从库自动提升为主库

  2. 排查过程
    磁盘 IO:使用 iostat查看磁盘 IO 活动,发现磁盘读写频繁
    内存使用情况:通过报警发现内存压力较大
    dmesg:发现反复出现 PostgreSQL 进程被内存不足(OOM)杀掉的日志检查
    PostgreSQL 慢查询日志,查看活动锁,并未发现明显异常的查询或锁
  3. 原因分析
    从 dmesg 日志中看到pgsql进程被kill的信息PostgreSQL 进程因为系统内存不足被杀掉,导致同步延迟和负载飙升
    高 IO 很可能是由于进程被系统kill之后事务回滚 或 PostgreSQL 进程在崩溃后尝试恢复所导致的
  4. 解决方案
    在pgsql配置参数已调整的情况下,最有效的方案是扩大机器内存。
    如果pgsql使用默认参数,可以按机器情况调整shared_buffers 、work_mem、maintenance_work_mem等内存相关参数
相关推荐
慕雪华年1 小时前
【Docker】dockerfile识别当前构建的镜像平台
运维·docker·容器
我的青春不太冷2 小时前
【实战篇章】深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据
运维·服务器·前端·学习
大秦王多鱼4 小时前
Kafka ACL(访问控制列表)介绍
运维·分布式·安全·kafka·apache
曾经的三心草4 小时前
小程序项目-购物-首页与准备
运维·服务器·小程序·项目·购物
苏-言7 小时前
Linux环境下的Java项目部署技巧:安装 Mysql
linux·运维·mysql
lljss20208 小时前
在 WSL2 中重启 Ubuntu 实例
linux·运维·ubuntu
对你无可奈何8 小时前
从Proxmox VE开始:安装与配置指南
运维·服务器·devops
lingllllove8 小时前
使用 HTTP::Server::Simple 实现轻量级 HTTP 服务器
服务器·网络协议·http
Amd7948 小时前
应用中的 PostgreSQL项目案例
postgresql·数据分析·数据库管理·最佳实践·技术架构·实际应用·项目案例
Linux运维老纪8 小时前
K8s之Service详解(Detailed Explanation of K8s Service)
服务器·网络·云原生·容器·kubernetes·云计算·运维开发