首页 > 编程语言 >【Python运维】Python运维工具:用`psutil`监控系统性能

【Python运维】Python运维工具:用`psutil`监控系统性能

时间:2024-12-23 15:03:44浏览次数:8  
标签:运维 Python psutil 内存 监控 print CPU GB

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界

在现代的IT运维中,实时监控系统性能是确保服务器、网络和应用健康运行的基础。Python作为一种灵活的编程语言,在运维管理中得到了广泛应用。psutil是Python中一个强大的库,用于获取系统的各种资源信息,如CPU、内存、磁盘、网络等。本文将深入分析如何利用psutil库监控系统性能,并生成详细的报表。通过大量代码实例和中文注释,逐步讲解如何使用psutil获取系统资源的使用情况,如何设置定时监控任务,以及如何将监控结果生成报告或图表,方便运维人员进行分析和决策。本文不仅包括基本的监控任务,还介绍了如何优化监控脚本的性能,如何处理监控数据的存储和展示,帮助读者更好地应用这一工具进行系统运维。

目录

  1. 引言
  2. psutil库概述
    • 安装与配置
    • 库的主要功能
  3. 获取系统资源信息
    • CPU监控
    • 内存监控
    • 磁盘监控
    • 网络监控
  4. 定时监控任务
  5. 生成报表与数据可视化
    • 文本报表
    • 图表报表
  6. 优化与性能提升
  7. 总结与展望

1. 引言

系统性能监控是IT运维的核心任务之一,尤其是在处理大量数据、分布式应用和云计算环境下,系统的健康状态直接影响到服务的可靠性与可用性。在日常的系统运维中,常常需要监控各类系统资源,包括CPU负载、内存使用情况、磁盘读写速度以及网络流量等,确保系统能够在高负载时稳定运行。

psutil是一个跨平台的库,能够帮助Python程序员快速访问这些系统性能指标。它支持Linux、Windows和macOS等操作系统,能够方便地获取系统资源的实时数据,并进行详细分析。本文将介绍如何使用psutil进行系统监控,并结合大量的代码实例,帮助读者快速掌握如何利用这一工具在实际的运维工作中提高效率。


2. psutil库概述

安装与配置

首先,我们需要安装psutil库。可以使用pip进行安装:

pip install psutil

安装完成后,我们可以导入psutil并开始使用它:

import psutil
库的主要功能

psutil提供了丰富的API来访问系统信息。常见的功能包括:

  • CPU信息:获取CPU的使用率、核心数、频率等。
  • 内存信息:获取系统的内存使用情况,包括总内存、已用内存、空闲内存等。
  • 磁盘信息:获取磁盘的使用情况、磁盘读写速度等。
  • 网络信息:获取网络接口的流量情况、网络连接等。

3. 获取系统资源信息

CPU监控

要监控CPU的使用情况,psutil提供了多个方法,最常用的包括:

  • psutil.cpu_percent(interval=1):返回当前CPU的使用率。
  • psutil.cpu_times():返回每个CPU核心的使用时间,包括用户态、系统态、空闲态等。

下面是一个获取CPU使用率并每秒更新的代码示例:

import psutil
import time

def monitor_cpu():
    while True:
        cpu_percent = psutil.cpu_percent(interval=1)  # 获取CPU使用率
        print(f"当前CPU使用率: {
     cpu_percent}%")
        time.sleep(1)  # 每秒更新一次

monitor_cpu()

输出示例:

当前CPU使用率: 25.0%
当前CPU使用率: 30.0%
当前CPU使用率: 28.5%
内存监控

使用psutil可以轻松获取系统的内存使用情况。常用的方法包括:

  • psutil.virtual_memory():返回虚拟内存的使用情况,包括总内存、已用内存、剩余内存等。
  • psutil.swap_memory():返回交换内存的使用情况。

代码示例:

import psutil

def monitor_memory():
    mem = psutil.virtual_memory()  # 获取内存信息
    print(f"总内存: {
     mem.total / (1024 ** 3):.2f} GB")
    print(f"已用内存: {
     mem.used / (1024 ** 3):.2f} GB")
    print(f"剩余内存: {
     mem.free / (1024 ** 3):.2f} GB")
    print(f"内存使用率: {
     mem.percent}%")

monitor_memory()

输出示例:

总内存: 16.00 GB
已用内存: 8.50 GB
剩余内存: 7.50 GB
内存使用率: 53.2%
磁盘监控

psutil还可以监控磁盘的使用情况。常用的函数有:

  • psutil.disk_usage(path):返回磁盘的使用情况。
  • psutil.disk_io_counters():返回磁盘的读写计数。

代码示例:

import psutil

def monitor_disk():
    disk_usage = psutil.disk_usage('/')  # 获取根目录磁盘使用情况
    print(f"总磁盘空间: {
     disk_usage.total / (1024 ** 3):.2f} GB")
    print(f"已用磁盘空间: {
     disk_usage.used / (1024 ** 3):.2f} GB")
    print(f"剩余磁盘空间: {
     disk_usage.free / (1024 ** 3):.2f} GB")
    print(f"磁盘使用率: {
     disk_usage.percent}%")

monitor_disk()

输出示例:

总磁盘空间: 500.00 GB
已用磁盘空间: 200.00 GB
剩余磁盘空间: 300.00 GB
磁盘使用率: 40.0%
网络监控

psutil提供了对网络接口的详细监控,包括:

  • psutil.net_io_counters():返回网络接口的流量统计。
  • psutil.net_connections():返回所有网络连接的信息。

代码示例:

import psutil

def monitor_network():
    net_io = psutil.net_io_counters()
    print(f"发送字节数: {
     net_io.bytes_sent / (1024 ** 2):.2f} MB")
    print(f&#

标签:运维,Python,psutil,内存,监控,print,CPU,GB
From: https://blog.csdn.net/nokiaguy/article/details/144667172

相关文章

  • Python数据分析-爬虫实战
    数据分析1.爬虫相关概念爬虫的分类聚焦爬虫完成某一项特定数据的采集百分之九十的爬虫都是聚焦爬虫通用爬虫什么内容都采集,都存下来搜索引擎百度谷歌增量爬虫既可以是聚焦爬虫也可以是通用爬虫当内容发生变化,可以增量的获取内容(比如爬取博客,第二天又新......
  • Python工具箱系列(五十八)
    音频的操作音乐是人类的通用语言,不分国界不分种族。而从数学角度看,音乐就是时间和频率的关系。声音的本质是波,人类听觉的原理就是波引起了耳朵鼓膜的振动。人们用不同乐器、不同力度,在一段连续时间里敲击,就组合出了时间和频率的关系。一切物体都有自己的频率,所以整个世界也可以理......
  • Python中的虚拟环境:如何使用venv和pipenv进行依赖管理
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界在Python开发过程中,依赖管理是一个至关重要的任务。随着项目逐渐发展,依赖库的版本可能会发生冲突,甚至影响项目的稳定性和可维护性。为了解决这......
  • [python3] 获取zabbix上所有主机的ip
    get_zabbix_hosts.pyimportrequestsimportjson......
  • linux上最简单的python脚本
    1.内容python<<pythonoffprint("123")pythonoff2.构建过程2.1创建文件touchtest.sh2.2添加内容echo"python<<pythonoff">test.shecho"print("123")">>test.shecho"pythonoff">>test.s......
  • 通过Scoop实现python2、3共存
    首先请确保已经安装了Windows中的软件包管理器scoop安装Python##添加versionsbucketscoopbucketaddversions##安装python2.7和python3scoopinstallpython27python测试python2和python3。python2python3测试pip环境是否正常pip2-Vpip3-V......
  • 某东h5st5.0 最新加密分析 纯算js python调用补环境
    声明:本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!有相关问题请第一时间头像私信联系我删除博客!前言简单分析一下某东的h5st加密流程第一步很简单,直接......
  • python常用处理表格参数
    在Python中处理表格数据,常用的库包括pandas、openpyxl、xlrd、xlwt等。以下是一些常用的处理表格参数和方法:使用pandas处理表格pandas是Python中处理表格数据最强大的库之一。以下是一些常用的参数和方法:读取表格数据importpandasaspd......
  • docker环境利用centos7镜像 + miniconda + python3.9 + wkhtmltopdf 构建html转图片服
    1、目录结构html2image——Dockerfile——main.py——requirements.txt2、DockerfileFROMcentos:7WORKDIR/appCOPY./app/RUNcurl-Ohttps://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos7.x86_64.rpm\&&curl......
  • python基础命令
       Python基础命令主要指的是在Python解释器中输入的命令,用于执行Python代码、管理环境等。以下是一些基本的Python命令示例:启动Python解释器:打开终端或命令提示符,输入python或python3(取决于系统配置)。$python3打印"Hello,World!":在Python解释器中输入以下命令。......