首页 > 数据库 >postgresql僵尸进程的处理思路

postgresql僵尸进程的处理思路

时间:2024-10-01 11:50:01浏览次数:8  
标签:状态 postgresql 僵尸 zombie 此时 kill 进程 思路

简介

僵尸进程(zombie process)是指一个已经终止但仍然在进程表中保留条目的进程。正常情况下,当一个进程完成执行并退出时,操作系统会通过父进程调用的wait()或waitpid()系统调用来收集该子进程的退出状态。如果父进程未及时调用这些函数,子进程的状态信息就无法从内核中移除,导致进程在内核中以“僵尸”状态存在。此状态下的子进程,使用kill -9 就是“鞭尸”,是无法移除僵尸进程的

僵尸进程的主要特点是它们不再消耗CPU或内存资源,因为其已终止,只保留一个进程号(PID)和少量的状态信息。然而,过多的僵尸进程会使系统的进程号资源耗尽,阻止新进程的创建,影响系统稳定性。

产生僵尸进程的常见原因包括:父进程未能及时俘获到子进程得退出信息,并对其进程信息进行处理,导致子进程进入、“僵尸状态”。本文以postgres 进行举例

“t” 状态解决办法

使用gdb挂住postgres(主进程),此时数据库得主进程处于t状态。将子进程kill 掉此时,子进程就会变成僵尸状态。

postgresql僵尸进程的处理思路_postgresql


此状态下现存的客户端进程会一直保持写入状态。Wal文件持续增长中。此时主进程状态处于t状态。

ps -o pid,ppid,cmd,state,etime -p 1797

t状态表示进程被跟踪并停止(Traced and stopped)

使用ps -ef |grep 1797查看调用postgres(主进程的程序)的进程 ,将其kill 掉,postgresql运行会恢复正常。子进程会被重新拉起。此时主进程状态会恢复到S状态。

postgresql僵尸进程的处理思路_postgresql_02

“T” 状态解决办法

“T”状态 表示进程被停止。

使用kill -19 1797 stop掉主进程,然后kill -9杀掉所有的子进程。模拟僵尸僵尸状态

postgresql僵尸进程的处理思路_postgresql_03


此时父进程状态为T 状态,kill -19 之后,父进程将无法再处理子进程的退出消息。此时对父进程发送继续进程的指令kill -18 ,此时父进程会重新运行,并进行处理消息列表的信号。

postgresql僵尸进程的处理思路_postgresql_04

“Z” 僵尸状态

进程已经终止,但父进程尚未回收它的退出状态,导致该进程变成僵尸进程。

postgresql僵尸进程的处理思路_postgresql_05

,当然在以上的两个状态中,子进程也是处于“Z”状态,但是我们可以通过父进程进行判断僵尸进程的原因,使用危害较小的方式进行处理,如果此时的父进程state处于正常状态,但是子进程处于“Z”状态,此时引发原因就变得难以追踪。

模拟父进程没通过wait(),waipid()进行处理子进程退出信息,引发僵尸进程

编辑脚本zombie_process.py

使用一下指令进行调用

python3 zombie_process.py

脚本内容如下:

import os
import time

def create_zombie():
    pid = os.fork()  # 创建子进程
    if pid > 0:
        # 父进程:故意不处理子进程的退出状态
        print(f"父进程 PID: {os.getpid()}")
        print(f"子进程 PID: {pid}")
        print("子进程变为僵尸进程(父进程不回收子进程)。")
        time.sleep(60)  # 父进程休眠,保持子进程为僵尸进程
    elif pid == 0:
        # 子进程
        print(f"子进程 PID: {os.getpid()} 终止")
        os._exit(0)  # 子进程结束

if __name__ == "__main__":
    create_zombie()

postgresql僵尸进程的处理思路_postgresql_06


此时子进程处于“Z”状态,但是父进程确实正常state 状态,此时需要。kill父进程,让其由systemd一号进程进行接管,编处理僵尸进程的退出状况。

标签:状态,postgresql,僵尸,zombie,此时,kill,进程,思路
From: https://blog.51cto.com/u_16385176/12159641

相关文章

  • 一种使用setdll+HOOK钩子技术+dll为MFC程序ProtocalTool等老旧程序打补丁的思路(含源
    一、引言由于工作原因,需要使用一个很老旧的软件,没有源代码,该软件在XP系统下运行正常,但是需要登录,且在win10系统下使用时IP控件运行不正常,只能输入每个数字只能输入2位数,还有一些其他问题,比如给软件添加一些编辑框,或者对软件进行下面简单梳理一下解决这些问题的思路。二、......
  • 象形闽都 数智榕城 | PostgreSQL中文社区技术沙龙 - 福州站
    在数字化浪潮席卷的时代,数据已成为推动社会进步与企业发展的核心动力。福建,作为东南沿海的经济与文化重镇,正以崭新的姿态拥抱数智未来。为促进福建地区数据库技术的交流与发展,我们诚挚邀请您参加“象行闽都,数智榕城——PostgreSQL数据库技术沙龙”。 活动主题:象行闽都、数智......
  • X型图形的设计思路
    一:关于X图形的问题多组输入,整数,表示输出的行数,也表示组成“X”的反斜线和正斜线的长度如图:    输入:5    输出:* *           **            *           **       ......
  • PostgreSQL是否有等待事件
    PostgreSQL是否有等待事件PostgreSQL提供了等待事件(WaitEvents)的机制,用于监控数据库运行过程中因资源争用而导致的等待情况。这些等待事件可以帮助数据库管理员识别导致性能问题的瓶颈,例如锁冲突、I/O等待等。什么是等待事件?等待事件是指PostgreSQL中的进程在等待某......
  • Windows下绿色安装PostgreSQL笔记
    介绍PostgreSQL,Postgres,以下简称为PG,是一款关系型数据库,本地安装支持两种方式,一键安装和绿色解压安装两种方式下载、解压安装版:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads绿色解压版:https://www.enterprisedb.com/download-postgres......
  • Windows应急响应流程与思路
    吉祥知识星球http://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247485367&idx=1&sn=837891059c360ad60db7e9ac980a3321&chksm=c0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330&scene=21#wechat_redirect《网安面试指南》http://......
  • PostgreSQL同步流复制与synchronous_standby_names设置
    PostgreSQL的流复制,从整体上看,可以粗分为同步与异步两种模式,其中涉及的主要参数包括synchronous_commit和synchronous_standby_names主节点synchronous_commit参数设置synchronous_commit事务提交模式,类似于MySQL的innodb_flush_log_at_trx_commit参数,对应着事务提交后返回给客......
  • 在Zynq平台上实现神经网络的思路、方案
    Zynq平台结合了PS(ProcessingSystem)和PL(ProgrammableLogic)的异构架构,适用于高效实现神经网络。通过合理分配计算任务,可以提升整体性能。以下是详细的思路、方案和设计。一、Zynq架构概述1.Zynq架构组成PS(处理系统):基于ARMCortex-A9处理器,负责控制、管理和执行复杂的任......
  • 随机森林(Random Forest)实现足球大小球数据分析推荐思路
    前言随机森林(RandomForest)是一种集成学习方法,它通过构建多个决策树并将它们的预测结果进行汇总来提高预测的准确性和稳定性。在足球比赛的大小球预测中,大小球通常指的是一场比赛中进球总数的预测,比如是否超过或低于某个特定的阈值(如2.5球)。下面是如何使用随机森林来实现足球......
  • 2024 年全国大学生新质生产力大赛—数学建模赛项题目 B:金融违规交易的大数据分析 问题
    针对问题三,我们可以采取以下步骤进行聚类分析,并统计不同国家的涉案人员数量和交易金额总数。以下是具体的分析思路和方法:1.数据预处理清洗数据:确保数据中没有缺失值,并将需要的字段转换为合适的数据类型。选择聚类特征:选择与洗钱风险评分相关的指标作为聚类特征,例如交易金......