psutil查询指定程序pid的cpu、内存使用
2021/11/13 7:13:22
本文主要是介绍psutil查询指定程序pid的cpu、内存使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
参考:https://zhuanlan.zhihu.com/p/56478855
https://www.cnblogs.com/luchenhui/p/10974745.html
psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统.
查具体某个程序的pid
通过pids和正则匹配,可以通过name或command信息去赛选
import psutil pids = psutil.pids() print(len(pids)) for pid in pids: p = psutil.Process(pid) if "python ***.py" in p.cmdline(): 操作,得到具体的pid if 'python' in p.name(): print("pid-%d,pname-%s" % (pid, p.name()),p.cmdline())
cpu、内存使用
监控cpu信息
import psutil psutil.cpu_times() #获取cpu(逻辑cpu的平均)占用时间的详细信息
psutil.cpu_times(percpu=True) #获取每个cpu占用时间的详细信息
psutil.cpt_times().user #获取用户进程占用cpu的时间(user+sys+idle+wait=total)
监控内存信息
import psutil psutil.virtual_memory() #获取内存信息
psutil.virtual_memory().total #获取内存总量 psutil.swap_memory()
#获取swap信息 psutil.swqp_memory() #获取swap总量
每分钟打印
import psutil ##cpu psutil.cpu_times() ##内存 mem = psutil.virtual_memory()
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() mem_percent = p.memory_percent() line = current_time + ',' + str(cpu_percent) + ',' + str(mem_percent) print (line) f.write(line + "\n") time.sleep(interval)
这篇关于psutil查询指定程序pid的cpu、内存使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding