系统性能定时监控Python&Linux

系统性能定时监控

1.系统监控概述

⽤Python来编写脚本简化⽇常的运维⼯作是Python的⼀个重要⽤途。在Linux下,有许多系统命令可以让我们时刻监控系统运⾏的状态,如 ps , top , free 等等。要获取这些系统信息,Python可以通过 subprocess 模块调⽤并获取结果。但这样做显得很麻烦,尤其是要写很多解析代码。

2. psutil

在Python中获取系统信息的另⼀个好办法是使⽤ psutil 这个第三⽅模块。
psutil ,是 python system and process utilities 的缩写,意思python的系统监控及进程的管理的⼯具,是⼀个功能很强⼤的跨平台的系统管理库。可以实现命令⾏中类似ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop等等命令的功能,并且以python内置的数据结构形式返回,官⽅⽂档(https://pythonhosted.org/psutil/) ⽬前psutil⽀持的系统有linuxwindow os X 和freeBSD等.

1.1. psutil 安装

psutil是⼀个第三⽅的开源项⽬,因此,需要先安装才能够使⽤。

pip3 install psutil

1.2 psutil 版本查看

使⽤python3 进⼊交互模式,查看版本

1.3 常⻅功能

获取CPU信息

psutil.cpu_xxx()







python 复制代码
# 1.导入psutil 模块
import psutil

# 2.获取CPU信息
# 2.1 获取CPU的核心数
print(psutil.cpu_count()) # 12
# 获取物理的核心数
print(psutil.cpu_count(logical=False)) # 8
# 2.2 获取CPU的使用率
print(psutil.cpu_percent(interval=0.5)) # 5.2
# 获取每个核心的使用率
print(psutil.cpu_percent(interval=0.5,percpu=True))
# [3.1, 0.0, 0.0, 0.0, 3.1, 0.0, 0.0, 0.0, 0.0, 0.0, 21.9, 43.8]

# 3.获取内存信息
# 3.1 内存的整体信息
print(psutil.virtual_memory())
# svmem(total=16890322944, available=373940224, percent=97.8, used=16516382720, free=373940224)
# 3.2 内存的使用率
print(psutil.virtual_memory().percent)

# 4.获取硬盘信息
# 4.1 获取硬盘的分区信息
print(psutil.disk_partitions())
# 4.2 可以获取指定目录的磁盘信息
print(psutil.disk_usage('/'))
# 4.3硬盘的使用率
print(psutil.disk_usage('/').percent)

# 5.获取网络信息
# 5.1 获取受到的数据包数量
print(psutil.net_io_counters().bytes_recv) #字节为单位
# 5.2 获取发送的数据包数量
print(psutil.net_io_counters().bytes_sent)

# 6.获取开机时间
print(psutil.boot_time()) # 格林尼治时间 单位秒

# ...

实战 - 系统性能监控 基础版











注意: 这个意思是只有都当程序独立运行才会执行这个监控










相关推荐
忆~遂愿6 分钟前
GE 引擎进阶:依赖图的原子性管理与异构算子协作调度
java·开发语言·人工智能
沐知全栈开发10 分钟前
API 类别 - 交互
开发语言
MZ_ZXD00111 分钟前
springboot旅游信息管理系统-计算机毕业设计源码21675
java·c++·vue.js·spring boot·python·django·php
人道领域31 分钟前
SSM框架从入门到入土(AOP面向切面编程)
java·开发语言
铅笔侠_小龙虾31 分钟前
Flutter 实战: 计算器
开发语言·javascript·flutter
全栈老石1 小时前
Python 异步生存手册:给被 JS async/await 宠坏的全栈工程师
后端·python
2的n次方_1 小时前
Runtime 执行提交机制:NPU 硬件队列的管理与任务原子化下发
c语言·开发语言
梨落秋霜1 小时前
Python入门篇【模块/包】
python
2501_944711431 小时前
JS 对象遍历全解析
开发语言·前端·javascript
A星空1231 小时前
一、Linux嵌入式的I2C驱动开发
linux·c++·驱动开发·i2c