linux运行python程序占用内存越来越大_Linux上的Python内存消耗:物理和虚拟内存正在增长,而堆大小仍然是sam...

本文关注的是一个持续运行的Python日志解析服务,其内存使用量随着时间推移逐渐增加。作者通过分析进程的虚拟内存(VmSize)、物理内存(ru_maxrss)和堆大小,发现堆大小保持不变,但物理内存和虚拟内存有显著增长。作者寻求解释这种内存增长的原因,并提到长期看可能影响服务的稳定性。问题发生在Python 2.6.6和RHEL6.4环境下。
摘要由CSDN通过智能技术生成

我正在研究用Python编写的某种系统服务(实际上它只是一个日志解析器)。这个程序应该持续工作很长一段时间(希望我指的是没有失败和需要重新启动的日子和星期)。这就是我为什么担心内存消耗的原因。

我将不同站点的进程内存使用情况的不同信息组合成一个简单的函数:#!/usr/bin/env python

from pprint import pprint

from guppy import hpy

from datetime import datetime

import sys

import os

import resource

import re

def debug_memory_leak():

#Getting virtual memory size

pid = os.getpid()

with open(os.path.join("/proc", str(pid), "status")) as f:

lines = f.readlines()

_vmsize = [l for l in lines if l.startswith("VmSize")][0]

vmsize = int(_vmsize.split()[1])

#Getting physical memory size

pmsize = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss

#Analyzing the dynamical memory segment - total number of objects in memory and heap size

h = hpy().heap()

if __debug__:<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值