使用python定时采样linux内存使用情况

本文介绍了一个基于Python的内存监控工具的实现方法。该工具通过继承threading.Thread来定期读取/proc/meminfo文件,计算并记录用户占用的内存情况。文章提供了完整的代码示例,包括如何启动和停止内存监控任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding: utf-8 -*-

import threading, time

class GetMemInfo(threading.Thread):
    def __init__(self, interval_time):
        threading.Thread.__init__(self)
        self.alive = True
        self.mem_list = []
        self._interval_time = interval_time

    def memory_stat(self):
        '''读取meminfo,计算用户占用的内存'''
        _mem = {}
        with open("/proc/meminfo") as f:
            lines = f.readlines()

        for line in lines:
            if line.strip() == "":
                continue
            name = line.split(':')[0].strip()
            var = line.split(':')[1].split()[0].strip()
            _mem[name] = int(var) * 1024.0
        _mem['MemUsed'] = _mem['MemTotal'] - _mem['MemFree'] - _mem['Buffers'] - _mem['Cached']
        return _mem

    def run(self):
        while self.alive:
            time.sleep(self._interval_time)
            mem = self.memory_stat()
            self.mem_list.append(mem['MemUsed'])

    def stop_task(self):
        self.alive = False

    def get_mem(self):
        return self.mem_list


if __name__ == "__main__":
    # 每2秒采样一次
    mem = GetMemInfo(2)
    mem.start()
    time.sleep(10)
    mem.stop_task()
    print mem.get_mem()


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值