基于Python实现实时监控CPU使用率

 更新时间:2022年04月19日 08:25:53   作者:木木子学python  
这篇文章主要为大家介绍了一款手写编程代码的小脚本,能够轻松在界面上展示:利用Python实时监控CPU使用率,随时展现。也无需下载管理软件,感兴趣的可以了解一下

导语

哈喽!大家好,我是木木子!准时上线给大家更新啦!​

Ps:小故事

前两天有位粉丝朋友在群里问我说,有没有不装一些我们熟知的电脑管理软件但是依然可以查看CPU的使用率方法,或者能够介绍一款比较给力的小插件也好。确实,在生活中有不少人是不喜欢装那些管理软件的。

今天,木木子就给大家介绍一款手写编程代码的小脚本,能够轻松在界面上展示:利用Python实时监控CPU使用率,随时展现。也无需下载管理软件,几十行代码即可搞定~

一、模块简介

1.0 关于模块的详细用法参考

psutil文档

matplotlib文档

1.1 用到psutil模块

小介绍:

psutil是一个跨平台库(code.google.com/p/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等操作系统。

1.2 用到matplotlib模块

小介绍:

Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。

通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

二、准备中

2.1 相关环境

**Python3.6、Pycharm。****相关模块:**matplotlib模块;psutil模块。

2.2 安装

这里小编统一使用:pip install -i pypi.douban.com/simple/+模块名

三、开始敲代码

3.1 代码内容

利用Python实时监控CPU使用率:

  • 执行用户进程
  • 执行内核进程和中断
  • CPU处于空闲状态

主要是这三个方面的代码编写过程。

3.2 附完整代码

import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager
import psutil as p


POINTS = 300
fig, ax = plt.subplots()
ax.set_ylim([0, 100])
ax.set_xlim([0, POINTS])
ax.set_autoscale_on(False)
ax.set_xticks([])
ax.set_yticks(range(0, 101, 10))
ax.grid(True)
# 执行用户进程的时间百分比
user = [None] * POINT
# 执行内核进程和中断的时间百分比
sys = [None] * POINT
# CPU处于空闲状态的时间百分比
idle = [None] * POINT
l_user, = ax.plot(range(POINTS), user, label='User %')
l_sys, = ax.plot(range(POINTS), sys, label='Sys %')
l_idle, = ax.plot(range(POINTS), idle, label='Idle %')
ax.legend(loc='upper center', ncol=4, prop=font_manager.FontProperties(size=10))
bg = fig.canvas.copy_from_bbox(ax.bbox)


def cpu_usage():
	t = p.cpu_times()
	return [t.user, t.system, t.idle]


before = cpu_usage()


def get_cpu_usage():
	global before
	now = cpu_usage()
	delta = [now[i] - before[i] for i in range(len(now))]
	total = sum(delta)
	before = now
	return [(100.0*dt)/(total+0.1) for dt in delta]


def OnTimer(ax):
	global user, sys, idle, bg
	tmp = get_cpu_usage()
	user = user[1:] + [tmp[0]]
	sys = sys[1:] + [tmp[1]]
	idle = idle[1:] + [tmp[2]]
	l_user.set_ydata(user)
	l_sys.set_ydata(sys)
	l_idle.set_ydata(idle)
	while True:
		try:
			ax.draw_artist(l_user)
			ax.draw_artist(l_sys)
			ax.draw_artist(l_idle)
			break
		except:
			pass
	ax.figure.canvas.draw()


def start_monitor():
	timer = fig.canvas.new_timer(interval=100)
	timer.add_callback(OnTimer, ax)
	timer.start()
	plt.show()


if __name__ == '__main__':
	start_monitor()

四、效果展示

静态截图展示——

到此这篇关于基于Python实现实时监控CPU使用率的文章就介绍到这了,更多相关Python监控CPU内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django objects.all()、objects.get()与objects.filter()之间的区别介绍

    Django objects.all()、objects.get()与objects.filter()之间的区别介绍

    这篇文章主要给大家介绍了关于Django objects.all()、objects.get()与objects.filter()之间的区别,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • NumPy随机数据分布与Seaborn可视化详解

    NumPy随机数据分布与Seaborn可视化详解

    数据分布是指数据集中所有可能值出现的频率,并用概率来表示,它描述了数据取值的可能性,Seaborn 是一个基于 Matplotlib 的 Python 数据可视化库,用于创建统计图表,本文就给大家详细的介绍一下NumPy随机数据分布与Seaborn可视化,需要的朋友可以参考下
    2024-05-05
  • python实现RabbitMQ的消息队列的示例代码

    python实现RabbitMQ的消息队列的示例代码

    这篇文章主要介绍了python实现RabbitMQ的消息队列的示例代码,总结了RabbitMQ中三种exchange模式的实现,分别是fanout, direct和topic。感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Python深度学习pytorch神经网络汇聚层理解

    Python深度学习pytorch神经网络汇聚层理解

    通常当我们处理图像时,我们希望逐渐降低隐藏表示的空间分辨率,聚集信息,这样随着我们在神经网络层叠的上升,每个神经元对其敏感的感受野(输入)就越大
    2021-10-10
  • python中自定义with的具体使用

    python中自定义with的具体使用

    在 Python 中,with 语句用于简化资源管理,它保证在执行完代码块后正确地释放资源,通过__enter__和__exit__魔术方法实现,本文就来详细的介绍一下,感兴趣的可以了解一下
    2024-09-09
  • Python实现一个简单的递归下降分析器

    Python实现一个简单的递归下降分析器

    这篇文章主要介绍了Python如何实现一个简单的递归下降分析器,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • 不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)

    不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)

    这篇文章主要介绍了Python入门一定要注意缩进,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 关于Python正则表达式模块之re模块

    关于Python正则表达式模块之re模块

    这篇文章主要介绍了关于Python正则表达式模块之re模块, re模块是Python中的重要组成部分,这里涉及到字符串的匹配,转换,自定义格式化等,需要的朋友可以参考下
    2023-04-04
  • python应用文件读取与登录注册功能

    python应用文件读取与登录注册功能

    这篇文章主要介绍了python应用文件读取写登录注册功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 基于Python实现股票收益率分析

    基于Python实现股票收益率分析

    这篇文章主要为大家详细介绍如何通过Python分析股票的收益率,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-04-04

最新评论