当前位置: 首页 > news >正文

psutil库的使用说明

前言

        psutil是一个跨平台的库,用于获取系统的进程和系统利用率(包括 CPU、内存、磁盘、网络等)信息。

目录

安装

应用场景

常用方法

一、系统信息相关函数

 二、进程信息相关函数

三、网络信息相关函数

 四、其他实用函数

使用样例

监控应用程序


安装

pip install psutil

应用场景

一、系统监控

二、进程管理

三、资源限制

四、自动化任务

常用方法

一、系统信息相关函数

psutil.cpu_times()

  • 返回系统的 CPU 时间信息,包括用户态时间、系统态时间、空闲时间等。

psutil.cpu_percent()

  • 返回 CPU 的使用率百分比。可以指定间隔时间来获取一段时间内的平均使用率。

psutil.virtual_memory()

  • 返回系统的虚拟内存信息,包括总内存、可用内存、已使用内存等。

psutil.swap_memory()

  • 返回系统的交换内存信息。

psutil.disk_usage(path)

  • 返回指定路径的磁盘使用情况,包括总空间、已使用空间和可用空间等。

代码

     import psutilcpu_times = psutil.cpu_times()print(f"用户态时间:{cpu_times.user}")print(f"系统态时间:{cpu_times.system}")print(f"空闲时间:{cpu_times.idle}")cpu_percent = psutil.cpu_percent(interval=1)print(f"CPU 使用率:{cpu_percent}%")memory_info = psutil.virtual_memory()print(f"总内存:{memory_info.total}")print(f"可用内存:{memory_info.available}")print(f"已使用内存:{memory_info.used}")swap_info = psutil.swap_memory()print(f"总交换内存:{swap_info.total}")print(f"已使用交换内存:{swap_info.used}")print(f"可用交换内存:{swap_info.free}")disk_usage = psutil.disk_usage('/')print(f"总磁盘空间:{disk_usage.total}")print(f"已使用磁盘空间:{disk_usage.used}")print(f"可用磁盘空间:{disk_usage.free}")

 二、进程信息相关函数

psutil.pids()

  • 返回当前系统中的所有进程 ID。

psutil.Process(pid)

  • 创建一个表示特定进程的对象,可以通过进程 ID 来获取。

process.name()

  • 返回进程的名称。

process.exe()

  • 返回进程的可执行文件路径。

process.cpu_percent()

  • 返回进程的 CPU 使用率百分比。

process.memory_info()

  • 返回进程的内存使用信息,包括 RSS(常驻集大小)和 VMS(虚拟内存大小)等。

process.terminate()

  • 终止进程。

 代码

     pids = psutil.pids()print(f"进程 ID 列表:{pids}")process = psutil.Process(1234)process_name = process.name()print(f"进程名称:{process_name}")exe_path = process.exe()print(f"可执行文件路径:{exe_path}")process_cpu_percent = process.cpu_percent(interval=1)print(f"进程 CPU 使用率:{process_cpu_percent}%")memory_info = process.memory_info()print(f"进程 RSS:{memory_info.rss}")print(f"进程 VMS:{memory_info.vms}")process.terminate()

三、网络信息相关函数

psutil.net_io_counters()

  • 返回系统的网络 I/O 统计信息,包括发送和接收的字节数、数据包数等。

psutil.net_if_addrs()

  • 返回系统的网络接口地址信息。

psutil.net_if_stats()

  • 返回系统的网络接口状态信息。

  代码

     net_io = psutil.net_io_counters()print(f"发送字节数:{net_io.bytes_sent}")print(f"接收字节数:{net_io.bytes_recv}")net_addrs = psutil.net_if_addrs()print(f"网络接口地址信息:{net_addrs}")net_stats = psutil.net_if_stats()print(f"网络接口状态信息:{net_stats}")

 四、其他实用函数

psutil.boot_time()

  • 返回系统的启动时间(以秒为单位,从 Unix 纪元时间开始计算)。

psutil.users()

  • 返回当前登录到系统的用户信息。

  代码

     boot_time = psutil.boot_time()print(f"系统启动时间:{boot_time}")users = psutil.users()print(f"当前登录用户信息:{users}")

使用样例

监控应用程序

import psutil
import time# 要监控的应用程序名称
target_app_name = "YourAppName.exe"while True:for process in psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_info']):if process.info['name'] == target_app_name:cpu_percent = process.info['cpu_percent']memory_info = process.info['memory_info']rss_memory = memory_info.rss / (1024 * 1024)  # 转换为 MBvms_memory = memory_info.vms / (1024 * 1024)  # 转换为 MBprint(f"应用程序 {target_app_name}:CPU 使用率 {cpu_percent}%,物理内存占用 {rss_memory}MB,虚拟内存占用 {vms_memory}MB")time.sleep(5)

相关文章:

psutil库的使用说明

前言 psutil是一个跨平台的库,用于获取系统的进程和系统利用率(包括 CPU、内存、磁盘、网络等)信息。 目录 安装 应用场景 常用方法 一、系统信息相关函数 二、进程信息相关函数 三、网络信息相关函数 四、其他实用函数 使用样例 监控应…...

PMP--三模--解题--71-80

文章目录 7.成本管理--S曲线--S曲线对累计值进行监督和报告--S曲线可以同时报告成本与进度情况。适用于预测和敏捷项目。14.敏捷--信息发射源--是一种可见的实物展示其向组织内其他成员提供信息在不干扰团队的情况下即时实现知识共享。71、 [单选] 项目经理正在为刚刚进入第三次…...

iTextPDF 一个功能强大的 Java PDF 库

iTextPDF 是一个功能强大的 Java PDF 库,它提供了丰富的 API 用于创建和操作 PDF 文档。以下是一些 iTextPDF 的常用功能: 创建 PDF 文档:可以创建新的 PDF 文档,并设置页面大小、边距、背景颜色等 。 添加文本:在 PD…...

QT C++ 自学积累 『非技术文』

QT C 自学积累 『非技术文』 最近一段时间参与了一个 QT 项目的开发,使用的是 C 语法,很遗憾的是我之前从来没有接触过 C ,大学没有开过这堂课,也没用自己学习过,所有说上手贼慢,到现在为止其实也不是很清楚…...

浅谈虚拟内存(操作系统、Redis)

浅谈虚拟内存(操作系统、Redis) 参考&鸣谢 4.1 为什么要有虚拟内存? xiaolincoding 【简单说下】REDIS的虚拟内存机制,会吗?别翻书 aristo_boyunv Redis 虚拟内存 Java杨永杰 浅谈虚拟内存:操作系统与 Redis 在计算机系统中…...

【LeetCode HOT 100】详细题解之链表篇

LeetCode HOT 100题解之链表篇 160 相交链表题目分析代码 206 反转链表方法一:迭代 234 回文链表方法一:将值复制到数组中方法二:快慢指针 141 环形链表方法一:哈希表方法二:快慢指针 142 环形链表II方法一&#xff1a…...

二叉树的递归遍历

方法论 确定递归函数的参数和返回值 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。 确定终止条件 写完了递归算法, 运行的时候,经常会遇到栈溢…...

国内访问OpenAI API

最近在学习LLM。绕不过去的肯定要学习OpenAI。 国内想直接使用官方API十分麻烦。就到处查资料及网友的分享。发现了这个代理可以在国内很方便的使用OpenAI API。 代理的地址如下: https://referer.shadowai.xyz/r/1014150 经过一段实际体验下来,这个…...

深入 Spring RestTemplate 源码:掌握 HTTP 通信核心技术

在上一篇文章《Spring Boot 项目高效 HTTP 通信:常用客户端大比拼!》里,我们提到了RestTemplate,它是Spring框架提供的Http客户端,在springboot项目开发过程中,属于使用最为广泛的 HTTP 客户端之一了。今天…...

计算机网络:计算机网络概述 —— 初识计算机网络

文章目录 计算机网络组成部分网络架构协议与标准网络设备网络类型作用实际应用案例 计算机网络 计算机网络是指将多台计算机通过通信设备和通信链路连接起来,以实现数据和信息的交换和共享的技术和系统。它是现代信息社会的基础设施之一,也是互联网的基…...

set和map结构的使用

个人主页:敲上瘾-CSDN博客 个人专栏:游戏、数据结构、c语言基础、c学习、算法 目录 一、序列式容器和关联式容器 二、set和multiset 1.insert 2.erase 3.find 4.count 三、map和mapmulti 1.pair 2.insert 3.find 4.operator[ ] 5.erase 6.lo…...

2. qt_c++反射实例

目录 使用场景元对象相关类及宏常用功能获取类相关内容以及委托调用 使用场景 Qt基于强大的元对象系统实现反射机制; 在复杂的开发需求中,我们希望通过一些手段映射出我们的类(映射对象) 然后直接使用,通过&#xff0…...

卷积神经网络(CNN)的计算量和参数怎么准确估计?

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 1. 卷积层(Convolutional Layer) a) 计算量估计: 卷积层的 FLOPs 2 * H_out * W_out * C_in * C_out * K_h * K_w 详细解释: H_out, W_out&#xff…...

Ruby基础语法

Ruby 是一种动态、反射和面向对象的编程语言,它以其简洁的语法和强大的功能而受到许多开发者的喜爱。以下是 Ruby 语言的一些基本语法: 1. 打印输出 puts "Hello, Ruby!" 变量赋值 x 10 name "John" 2. 数据类型 Ruby 有多种…...

插入排序C++

题目: 样例解释: 【样例解释 #1】 在修改操作之前,假设 H 老师进行了一次插入排序,则原序列的三个元素在排序结束后所处的位置分别是 3,2,1。 在修改操作之后,假设 H 老师进行了一次插入排序,则原序列的三个…...

修改ID不能用关键字作为ID校验器-elementPlus

1、校验器方法 - forbiddenCharValidator const idUpdateFormRef ref(null); const forbiddenCharValidator (rule, value, callback) > {const forbiddenCharacters [as,for,default,in,join,left,inner,right,where,when,case,select];for (let forbiddenCharacter o…...

一文详解WebRTC、RTSP、RTMP、SRT

背景 好多开发者,希望对WebRTC、RTSP、RTMP、SRT有个初步的了解,知道什么场景该做怎样的方案选择,本文就四者区别做个大概的介绍。 WebRTC 提到WebRTC,相信好多开发者第一件事想到的就是低延迟,WebRTC(W…...

全国职业院校技能大赛(大数据赛项)-平台搭建Zookeeper笔记

ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务,为分布式应用提供一致性服务。它的设计目标是简化分布式系统的管理,保证多个节点之间的数据一致性和协调工作。ZooKeeper提供了类似文件系统的层次化命名空间,用来存储和管理元数…...

不同领域神经网络一般选择什么模型作为baseline(基准模型)

在神经网络研究中,选择合适的baseline(基线模型)是评估新方法有效性的重要步骤。基线模型通常是领域内公认的、性能良好的参考模型,用于比较和验证新提出模型的优势。以下是一些在不同任务和领域中常见的基线模型选择:…...

华为-IPv6与IPv4网络互通的6to4自动隧道配置实验

IPv4向IPv6的过渡不是一次性的,而是逐步地分层次地。在过渡时期,为了保证IPv4和IPv6能够共存、互通,人们发明了一些IPv4/IPv6的互通技术。 本实验以6to4技术为例,阐述如何配置IPv6过渡技术。 配置参考 R1 # sysname R1 # ipv6# interface GigabitEthernet0/0/1ip address 200…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...