Python学习之-psutil详解

Python学习之-psutil详解psutil processandsy 是一个跨平台的库 用于访问系统运行中进程以及系统利用率 如 CPU 内存 磁盘 网络等 的信息

大家好,欢迎来到IT知识分享网。

前言:

psutil(process and system utilities)是一个跨平台的库,用于访问系统运行中进程以及系统利用率(如CPU、内存、磁盘、网络等)的信息。它主要用来做系统监控,性能分析,进程管理。psutil支持多个平台,包括Linux、Windows、MacOS、FreeBSD等

1 常见用法

1.1 获取系统CPU信息:

在这里插入图片描述

#!/usr/bin/env python # coding=utf-8 """ # @Time : 2024/4/15 # @Author : Summer # @File : psutil_test # @describe: """ import psutil # 获取CPU逻辑核心数 print(psutil.cpu_count()) # 获取CPU物理核心数 print(psutil.cpu_count(logical=False)) # 获取CPU使用率(每个核心或者平均) print(psutil.cpu_percent(interval=1, percpu=True)) ''' 8 4 [19.4, 4.5, 9.2, 1.5, 1.5, 9.2, 4.6, 3.1] ''' 

1.2 获取内存信息:

#!/usr/bin/env python # coding=utf-8 """ # @Time : 2024/4/15 # @Author : Summer # @File : psutil_test # @describe: """ import psutil # 获取物理内存 print(psutil.virtual_memory()) # 获取交换内存 print(psutil.swap_memory()) ''' svmem(total=, available=, percent=87.2, used=, free=) sswap(total=, used=, free=, percent=14.1, sin=0, sout=0) ''' 

1.3 获取磁盘信息:

在这里插入图片描述

#!/usr/bin/env python # coding=utf-8 """ # @Time : 2024/4/15 # @Author : Summer # @File : psutil_test # @describe: """ import psutil # 获取磁盘总的IO统计信息 print(psutil.disk_io_counters()) # sdiskio(read_count=, write_count=, read_bytes=4, write_bytes=0,  # read_time=6312, write_time=4962) # 获取磁盘分区信息 print(psutil.disk_partitions()) # [sdiskpart(device='C:\\', mountpoint='C:\\', fstype='NTFS', opts='rw,fixed', maxfile=255, maxpath=260),  # sdiskpart(device='D:\\', mountpoint='D:\\', fstype='NTFS', opts='rw,fixed', maxfile=255, maxpath=260),  # sdiskpart(device='E:\\', mountpoint='E:\\', fstype='NTFS', opts='rw,fixed', maxfile=255, maxpath=260)] # 获取磁盘使用情况 print(psutil.disk_usage('/')) # 示例中的'/'表示根目录,在Windows中是'C:\\'等 # sdiskusage(total=6, used=, free=4, percent=21.1) 

1.4 获取网络信息:

在这里插入图片描述

#!/usr/bin/env python # coding=utf-8 """ # @Time : 2024/4/15 # @Author : Summer # @File : psutil_test # @describe: """ import psutil # 获取网络总的IO统计信息 print(psutil.net_io_counters()) # 获取当前网络连接信息 print(psutil.net_connections()) 

1.5 进程管理:

在这里插入图片描述
参数使用:
name:获取进程的名称
cmdline:获取启动进程的命令行参数
create_time:获取进程的创建时间(时间戳格式)
num_fds:进程打开的文件个数
num_threads:进程的子进程个数
is_running:判断进程是否正在运行
send_signal:给进程发送信号,类似与os.kill等
kill:发送SIGKILL信号结束进程
terminate:发送SIGTEAM信号结束进程









#!/usr/bin/env python # coding=utf-8 """ # @Time : 2024/4/15 # @Author : Summer # @File : psutil_test # @describe: """ import psutil # 获取当前系统所有进程ID for proc in psutil.process_iter(['pid', 'name']): print(proc.info) # 获取特定进程 pid = 492 # 假设进程ID为492 p = psutil.Process(pid) # 获取进程的CPU时间、内存、打开的文件、网络连接等信息 print(p.cpu_times()) print(p.memory_info()) print(p.open_files()) print(p.connections()) # 终止进程 p.terminate() 

2 psutil应用场景

系统监控:编写脚本或者应用来定期检查系统资源的使用情况,例如检测CPU、内存的用量是否超过阈值,以决定是否需要调整系统负载或者发出警报。

性能分析:用于分析程序运行时占用的系统资源,以优化程序性能。

服务器管理:可以用于远程监测服务器状态,实现自动化资源管理,例如定期检查服务器的健康状况,包括CPU温度、风扇速度等。

进程管理:监控特定进程的行为,包括进程的启动、运行状态、资源使用情况等,也可以用来开发一些任务管理器类的应用。

网络监测:分析网络的使用状况,监控网络连接和带宽使用。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/113525.html

(0)
上一篇 2025-12-13 22:00
下一篇 2025-12-13 22:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信