python实现监控指定进程的cpu和内存使用率
作者:踏莎行hyx 发布时间:2023-08-23 02:21:17
标签:python,进程,内存
为了测试某个服务的稳定性,通常需要在服务长时间运行的情况下,监控其资源消耗情况,比如cpu和内存使用
这里借助python的psutil这个包可以很方便的监控指定进程号(PID)的cpu和内存使用情况
代码
process_monitor.py
import sys
import time
import psutil
# get pid from args
if len(sys.argv) < 2:
print ("missing pid arg")
sys.exit()
# get process
pid = int(sys.argv[1])
p = psutil.Process(pid)
# monitor process and write data to file
interval = 3 # polling seconds
with open("process_monitor_" + p.name() + '_' + str(pid) + ".csv", "a+") as f:
f.write("time,cpu%,mem%\n") # titles
while True:
current_time = time.strftime('%Y%m%d-%H%M%S',time.localtime(time.time()))
cpu_percent = p.cpu_percent() # better set interval second to calculate like: p.cpu_percent(interval=0.5)
mem_percent = p.memory_percent()
line = current_time + ',' + str(cpu_percent) + ',' + str(mem_percent)
print (line)
f.write(line + "\n")
time.sleep(interval)
支持跨平台linux,windows,mac
根据pid号获取进程实例,固定时间间隔查询其cpu和内存的使用百分比
将监控数据写入文件,一边后续分析
必要的话,也可以额外统计整个机器的资源状况
实例
使用命令
python process_monitor.py 25272
文件保存结果
绘制出曲线图
来源:https://blog.csdn.net/u012234115/article/details/102687721


猜你喜欢
- Socket是网络编程的一个抽象概念。通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地
- 【OpenCV】⚠️高手勿入! 半小时学会基本操作 ⚠️ 分水岭算法概述OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大.
- 目录一、使用说明二、代码分析1. 功能函数2. 回调函数3. 线程生成函数4. 效果展示写在最后在科研学习的过程中,我们难免需要查询相关的文
- Python自动化办公之删除重复的视频文件获取所有文件路径import osimport filecmpfile_list=[]new_li
- 前言:决策树是梯度提升机和随机森林的基本构建块,在学习这些模型的工作原理和模型可解释性时,可视化决策树是一个非常有帮助。不过,当前的可视化包
- 本文实例分析了Python多线程操作数据库相关问题。分享给大家供大家参考,具体如下:python多线程并发操作数据库,会存在链接数据库超时、
- 使用Sublime Text做开发工具的小伙伴又有版本可以更新啦!费话不多说先把Sublime Text4注册码贴出来Sublime Tex
- SUBSTR函数是用来截取数据库某一列字段中的一部分。 在各个数据库的函数名称不一样(真是蛋疼,后发明的数据库难道不能同先发明的一样吗?)
- 本文实例展示了Java采用setAsciiStream()方法检索数据库的实例代码。使用参数查询必须在SQL 语句执行之前对参数进行赋值,赋
- 在编程领域里,枚举用来表示只包含有限数量的固定值的类型,在开发中一般用于标识错误码或者状态机。拿一个实体对象的状态机来说,它通常与这个对象在
- 一、 只复制一个表结构,不复制数据 select top 0&
- 1.查看mysql上都有哪些库mysql> show databases \G***************************
- 一、概念介绍箱型图(box-plot),又称为箱线图,盒型图,盒须图。在数据探索阶段或者描述性分析过程中,我们常常用于展示多类连
- python代码生成API接口如果要将我们写好的Python代码生成API接口时,我们需要借助Flask框架1. 安装Flaskpip in
- 创建游戏文件 2048.py首先导入需要的包:import cursesfrom random import randrange, choi
- 从txt种获取数据 并且通过动态曲线显示import numpy as np import matplotlib.pyplot as plt
- TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据。相对TCP,UDP则是面向无连接的协议。使用UDP协议时,不需要建立连接,只需要
- 如下所示:import cv2import numpy as npbins = np.arange(256).reshape(256,1)d
- 1、实例方法/对象方法实例方法或者叫对象方法,指的是我们在类中定义的普通方法。只有实例化对象之后才可以使用的方法,该方法的第一个形参接收的一
- 1. 集合 set 简介集合的最大特征是其每个元素都是唯一的,它可以删除、可以增加、也可以通过增删实现替换元素,但是它是没有下标的,你无法通