【python】实现cpu/内存监控的功能(非常简单)

简介: 【python】实现cpu/内存监控的功能(非常简单)

最近,在做项目的时候,需要监控cpu以及内存的使用情况,做了一个比较简单的脚本,非常适合刚入门python的新手同学。

(关注“测试开发自动化” 弓中皓,获取更多学习内容)

一、代码说明:

1.代码用到了psutil第三方库(需要提前导入);

2.代码主要分为监控功能和写入日志两部分,运行代码后,在路径下可以生成一个.log文件,记录监控信息;

3.使用时只需要将代码中 if pid.pid == 31928 后面的数字修改为要监控的pid即可。

:这个pid我们可以通过任务管理器来进行查看:

二、python代码如下所示:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
import psutil


class MonitorCPUMemory():

    def __init__(self):
        pass

    def write(self, text1, text2, text3):
        """写入log中"""
        timer = time.strftime("%Y-%m-%d %H:%M:%S")
        with open('text.log', 'a+', encoding='utf-8') as tf:
            text = timer + "  内存占用率= {}% ,软件cpu使用率为 {}%,系统cpu使用率为 {}%\n".format(text1, text2, text3)
            tf.write(text)

    def CM_monitor(self):
        """CPU+内存监控"""
        for i in psutil.pids():
            pid = psutil.Process(i)
            if pid.pid == 31928:  # 这里修改索要监控的pid
                while True:
                    a = pid.memory_percent()  # 内存占用%
                    b = pid.cpu_percent()
                    c = psutil.cpu_percent()
                    time.sleep(1)
                    self.write(a, b, c)


if __name__ == '__main__':
    a = MonitorCPUMemory()
    a.CM_monitor()

text.log文件中监控信息

2022-04-15 17:20:01  内存占用率= 11.355243691095298% ,软件cpu使用率为 0.0%,系统cpu使用率为 14.0%
2022-04-15 17:20:02  内存占用率= 11.355243691095298% ,软件cpu使用率为 0.0%,系统cpu使用率为 0.5%
2022-04-15 17:20:03  内存占用率= 11.355243691095298% ,软件cpu使用率为 0.0%,系统cpu使用率为 0.5%
2022-04-15 17:20:04  内存占用率= 11.355243691095298% ,软件cpu使用率为 0.0%,系统cpu使用率为 0.9%
2022-04-15 17:20:05  内存占用率= 11.355243691095298% ,软件cpu使用率为 0.0%,系统cpu使用率为 0.8%
2022-04-15 17:20:06  内存占用率= 11.355243691095298% ,软件cpu使用率为 0.0%,系统cpu使用率为 0.3%
2022-04-15 17:20:07  内存占用率= 11.355243691095298% ,软件cpu使用率为 0.0%,系统cpu使用率为 1.0%
2022-04-15 17:20:08  内存占用率= 11.355243691095298% ,软件cpu使用率为 0.0%,系统cpu使用率为 0.9%
2022-04-15 17:20:09  内存占用率= 11.355243691095298% ,软件cpu使用率为 0.0%,系统cpu使用率为 0.8%
2022-04-15 17:20:10  内存占用率= 11.355243691095298% ,软件cpu使用率为 17.2%,系统cpu使用率为 1.9%
2022-04-15 17:20:11  内存占用率= 11.355243691095298% ,软件cpu使用率为 26.2%,系统cpu使用率为 3.9%
2022-04-15 17:20:12  内存占用率= 11.355267837933186% ,软件cpu使用率为 40.6%,系统cpu使用率为 5.6%
2022-04-15 17:20:13  内存占用率= 11.355364425284733% ,软件cpu使用率为 7.7%,系统cpu使用率为 1.5%
2022-04-15 17:20:19  内存占用率= 11.3572961723157% ,软件cpu使用率为 0.0%,系统cpu使用率为 8.8%
2022-04-15 17:20:20  内存占用率= 11.35719958496415% ,软件cpu使用率为 12.3%,系统cpu使用率为 2.9%
2022-04-15 17:20:21  内存占用率= 11.358406926858503% ,软件cpu使用率为 9.4%,系统cpu使用率为 2.6%
2022-04-15 17:20:22  内存占用率= 11.358672542075261% ,软件cpu使用率为 20.3%,系统cpu使用率为 5.7%
2022-04-15 17:20:23  内存占用率= 11.35802057745231% ,软件cpu使用率为 4.6%,系统cpu使用率为 3.2%
2022-04-15 17:20:24  内存占用率= 11.357706668559779% ,软件cpu使用率为 0.0%,系统cpu使用率为 1.3%
2022-04-15 17:20:25  内存占用率= 11.357706668559779% ,软件cpu使用率为 0.0%,系统cpu使用率为 0.7%
2022-04-15 17:20:26  内存占用率= 11.357730815397666% ,软件cpu使用率为 0.0%,系统cpu使用率为 1.0%
2022-04-15 17:20:27  内存占用率= 11.357392759667247% ,软件cpu使用率为 0.0%,系统cpu使用率为 1.9%

(关注“测试开发自动化” 弓中皓,获取更多学习内容)

如果解决了您的问题,那就点个赞+收藏吧!!!

相关文章
|
11天前
|
计算机视觉 Python
Python实用记录(一):如何将不同类型视频按关键帧提取并保存图片,实现图片裁剪功能
这篇文章介绍了如何使用Python和OpenCV库从不同格式的视频文件中按关键帧提取图片,并展示了图片裁剪的方法。
38 0
|
2天前
|
云计算 Python
用python给你写个简单的计算器功能网页啊
这张图片展示了阿里巴巴集团的组织架构图,涵盖了核心电商、云计算、数字媒体与娱乐、创新业务等主要板块,以及各板块下的具体业务单元和部门。
|
8天前
|
设计模式 开发者 Python
Python中的装饰器:简化代码与增强功能
【10月更文挑战第9天】在编程的世界里,效率和可读性是衡量代码质量的两大关键指标。Python语言以其简洁明了的语法赢得了无数开发者的青睐,而装饰器则是其独特魅力之一。本文将深入探讨装饰器的工作原理、使用方法以及如何通过自定义装饰器来提升代码的重用性和可维护性,让读者能够更加高效地编写出既优雅又功能强大的代码。
|
16天前
|
测试技术 开发者 Python
Python中的装饰器:简化代码,增强功能
在Python编程世界中,装饰器是一个强大的工具,它允许我们在不修改原有函数代码的情况下增加额外的功能。本文将通过简明的语言和实际的代码示例,引导你理解装饰器的基本概念、使用方法及其在实际应用中的巨大潜力。无论你是初学者还是有一定经验的开发者,这篇文章都将帮助你更高效地使用Python进行编程。
|
3天前
|
运维 JavaScript Linux
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。
|
10天前
|
数据处理 Python
如何优化Python读取大文件的内存占用与性能
如何优化Python读取大文件的内存占用与性能
40 0
|
10天前
|
数据处理 Python
Python读取大文件的“坑“与内存占用检测
Python读取大文件的“坑“与内存占用检测
25 0
|
14天前
|
C# 开发工具 Windows
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
30 0
|
16天前
|
设计模式 机器学习/深度学习 算法
现代 Python:编写高效代码的模式、功能和策略(第 1 部分)
现代 Python:编写高效代码的模式、功能和策略(第 1 部分)
19 0
|
18天前
|
缓存 监控 程序员
Python装饰器:深入探索功能增强的神奇工具(特点+应用+举例)
Python装饰器:深入探索功能增强的神奇工具(特点+应用+举例)
11 0