系统性能定时监控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()) # 格林尼治时间 单位秒

# ...

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











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










相关推荐
adnyting13 分钟前
【Linux日新月异(六)】CentOS 7网络命令深度解析:从传统到现代网络管理
linux·网络·centos
Jonathan Star37 分钟前
JavaScript 中,原型链的**最顶端(终极原型)只有一个——`Object.prototype`
开发语言·javascript·原型模式
普通网友43 分钟前
C++中的组合模式
开发语言·c++·算法
q***615043 分钟前
PHP进阶-在Ubuntu上搭建LAMP环境教程
开发语言·ubuntu·php
java_logo1 小时前
MONGO-EXPRESS Docker 容器化部署指南
linux·运维·mongodb·docker·容器·express
Dneccc1 小时前
Qt5配置MSVC2017
开发语言·qt
江公望1 小时前
Qt QByteArray类型,10分钟讲清楚
开发语言·c++·qt
小灰灰搞电子1 小时前
Qt Sensors 传感器框架详解
开发语言·qt
Hi202402171 小时前
Ubuntu 主机序列号克隆指南:原理与实现
linux·运维·ubuntu
如果是君1 小时前
ubuntu20.04下使用D435i实时运行ORB-SLAM3
linux·ubuntu·orb-slam3·d435i