python获取当前进程使用内存超出设置值后重启服务

描述:

最近遇到使用一个第三方python库,按照第三方库文档的方法释放内存也释放不了,不断消耗内存,最终导致内存溢出,这属于内存无法释放、内存泄露的bug。联系了该库的开发人员说这个问题不好解决,最终只能自己想办法,于是就想到了两种办法:

  1.编写python代码获取当前进程的内存,检测超出一定内存后重启服务

  2.编写linux脚本定时执行内存检测超出一定内存后系统重启的方法,python项目配置了开机自启

代码如下:

# 获取当前进程对象
current_process = psutil.Process(os.getpid())
# 获取内存使用信息(以字节为单位)
memory_info = current_process.memory_info()
# 内存使用量(GB)  memory_info.rss:物理内存   memory_info.vms: 虚拟内存
use_memory = round(memory_info.rss / (1024 * 1024 * 1024), 1)
# 内存使用超过3G就重启服务
if (use_memory > 3):
    print("Memory usage exceeds 2.3")
    # 执行Linux重启服务的命令
    result = subprocess.run(f"systemctl restart my.service", shell=True, capture_output=True,
                            text=True)

编写linux脚本内存检测超过一定内存后重启: 

https://blog.csdn.net/weixin_41934979/article/details/144092021

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值