python实现监控指定进程的CPU利用率、内存占用

这篇具有很好参考价值的文章主要介绍了python实现监控指定进程的CPU利用率、内存占用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        因为需要一直关注被测软件的CPU利用率和内存占用,人工记录十分麻烦,所以想做一个应用程序来代替手工记录。

思路:

1.弹窗,输入进程号

2.获取进程对象

3.日志保存在一个csv文件中,文件命名方式为:进程名+Process+进程号

4.文件第一行写入进程名,第二行表示各项数值对应的名称

5.获取当前时间、进程的CPU利用率、内存占用

6.将时间,CPU利用率,内存占用写入csv文件并保存

7.三秒钟获取和记录一次

我要求追加,每次运行该程序的时候不删除之前的文件,所以把文件是否存在的判断给注释掉了

这里我没用with open,直接用的open打开

因为刚开始用with open然后将这个代码打包为exe文件并执行之后,等了1分钟发现并没有东西写入,猜测可能是还没保存或者杀死进程导致文件没保存?

但是运行一天之后发现确实有东西写入,也可能等待时间1分钟太短。(不太清楚,或者有大佬可以给我提提建议)

我的解决方式:每次循环都写一次文件保存一次(但是感觉这样好像性能不高,但对于功能来说完全满足我的需求)

该段代码缺点:

1.在监控过程中,自己关闭监控的应用程序,本程序会退出
2.监控过程中,直接打开记录的文件,程序会退出

import time
from tkinter import simpledialog
import tkinter
import psutil
import os

root=tkinter.Tk()
root.withdraw()

pid=int(simpledialog.askstring(title="pid",prompt="输入进程号"))
p=psutil.Process(pid)

filename=p.name().split(".")[0]+"Process"+str(pid)+".csv"
#if os.path.exists("./"+filename):
#    os.remove("./"+filename)

# 文件第一行写入进程名
f=open("./"+filename,"a+")
f.write(p.name()+"\n")
f.write("TIME,%CPU,%MEM\n")
f.close()

# 循环记录时间、进程CPU利用率,内存占用
while True:

    f=open("./"+filename,"a+")
    current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
    cpu_percent=p.cpu_percent()
    mem_percent=p.memory_percent()
    line=current_time+","+str(cpu_percent)+","+str(mem_percent)
    f.write(line+"\n")
    f.close()
    time.sleep(3)



另外,打包为可执行文件之后,这是一个无界面的程序,在任务管理器能找到该进程,所以我写了一个批处理文件来结束该进程。

taskkill /f /im XXXX.exe

echo 结束完成
pause

写的不对或者不完善的请大佬们多多指正文章来源地址https://www.toymoban.com/news/detail-411516.html

到了这里,关于python实现监控指定进程的CPU利用率、内存占用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux top命令中 cpu 利用率/mem 使用率与load average平均负载计算方式

    top 命令是 Linux 上一个常用的系统监控工具,它经常用来监控 Linux 的系统状态,是常用的性能分析工具,能够显示较全的系统资源信息,包括系统负载,CPU 利用分布情况,内存使用,进程资源占用情况等。 如下示例: 这里主要看进程的 CPU%, MEM% 和 load averge 字段。 该字段指

    2024年02月03日
    浏览(53)
  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(65)
  • k8s中 pod 或节点的资源利用率监控

    通过Kubectl Top命令,可以查看你k8snode节点或者pod的资源利用率,比如,内存、cpu使用了多少,方便资源异常的排查 本章节附件资料下载地址 链接:https://pan.baidu.com/s/1RKLvLRQ2Vs3L_NNTYJmSaw?pwd=5kp3 提取码:5kp3

    2024年02月08日
    浏览(43)
  • Prometheus-07 Docker-compose安装配置prometheus以及初步分析CPU/内存利用率分析

    关于docker-compose的配置安装可以参考我的这篇笔记: Docker-compose安装配置讲解 创建docker-compose.yml配置文件

    2024年02月10日
    浏览(57)
  • 2023 年全国大学生数学建模竞赛题D 题 圈养湖羊的空间利用率思路详解+Python源码(二)

    昨天已经将E题第一二问的详解和思路源码都写了出来,大家如果想从E题下手的话推荐参考本人文章,个人认为E题在建模上是优于D题的,毕竟有给出数据而且有明确的建模思路,E题我直接提供了Python源码直接可以运行即可: 2023全国大学生数学建模竞赛-E 题思路详解+Python代

    2024年02月09日
    浏览(93)
  • 如何评估FPGA资源利用率?

    如何评估FPGA资源利用率? 随着FPGA在各种应用场景中的广泛应用,评估FPGA资源的利用率显得越来越重要。效率低下的FPGA资源分配方法可能导致性能严重下降,而过度利用资源则可能导致设计不稳定。因此,在设计FPGA电路时,必须评估所需的资源,并确保其最大限度地利用。

    2024年02月21日
    浏览(42)
  • Linux查看磁盘利用率(iostat)

    使用 iostat 命令可以查看磁盘的负载情况。iostat命令可以显示磁盘的I/O统计信息,包括磁盘的读写速度、I/O请求队列长度、CPU利用率等。 参数 Device:磁盘分区的名称。 rrqm/s:每秒钟合并的读请求。 wrqm/s:每秒钟合并的写请求。 r/s:每秒钟的读取次数。 w/s:每秒钟的写入次

    2024年02月16日
    浏览(42)
  • 数学建模圈养湖羊的空间利用率

    问题 :规模化的圈养养殖场通常根据牲畜的性别和生长阶段分群饲养,适应不同种类、不同阶段的牲畜对空间的不同要求,以保障牲畜安全和健康;与此同时,也要尽量减少空间闲置所造成的资源浪费。在实际运营中,还需要考虑市场上饲料价格和产品销售价格的波动以及气

    2024年02月09日
    浏览(42)
  • PyTorch GPU利用率为0%(很低)

    一、确保Pytorch与TorchVision是CUDA(GPU)版本 参考链接:【Xiang哥避坑指南】YOLOV5只在CPU跑不在GPU跑的问题。 在Python终端下操作: 1、Pytorch 2、TorchVision 输出的结果是 +cu 就是 CUDA(GPU) 输出的结果是 +cpu 就是 CPU 二、确保Pytorch与TorchVision以及CUDA ToolKit的版本一致 在Python终端下操作 t

    2024年01月17日
    浏览(43)
  • 数学建模之圈养湖羊的空间利用率

    D题最新最全思路已出,欢迎后台私信咨询~~~~ 规模化的圈养养殖场通常根据牲畜的性别和生长阶段分群饲养,适应不同种类、不同阶段的牲畜对空间的不同要求,以保障牲畜安全和健康;与此同时,也要尽量减少空间闲置所造成的资源浪费。在实际运营中,还需要考虑市场上

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包