【博学谷学习记录】超强总结,用心分享 | 系统资源监控-psutil

发布时间 2023-06-01 10:00:44作者: 牛牛牛牛牛牛牛牛

【博学谷IT技术支持】

一、 介绍

psutil(python 系统和进程实用程序)是一个跨平台库,用于 在Python中检索有关正在运行的 进程系统利用率(CPU、内存、磁盘、网络、传感器)的信息。它主要用于系统监控分析限制进程资源管理正在运行的进程

二、相关api

获取CPU信息

  • cpu_count: 返回系统中逻辑CPU的数量,逻辑CPU是指物理内核数乘以每个内核上可以运行的线程数(这里称为超线程),如果logical设置为False则返回物理内核的数量
print('逻辑CPU的数量:', psutil.cpu_count())

print('物理内核的数量:',  psutil.cpu_count(logical=False))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e10hkFsk-1660968586415)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/51c6ed928c5c4ce7a192cf19e286e91e~tplv-k3u1fbpfcp-watermark.image?)]

  • cpu_times:以元组的形式返回系统CPU的时间
print('以元组的形式返回系统CPU的时间', psutil.cpu_times())

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6abFC2mW-1660968586417)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/39e0cf424f514bf6b405f265c69acdb1~tplv-k3u1fbpfcp-watermark.image?)]

  • user:正常进程在用户模式下执行所花费的时间

  • system:在内核模式下执行的进程所花费的时间

  • idle:什么都不做的时间

  • interrupt:服务硬件中断所花费的时间

  • dpc:花费在dpc过程中的时间

  • cpu_percent: 以百分比表示当前系统范围的 CPU 利用率,该api有两个参数,分别是interval和percpu,代表时间间隔和是否输出每个CPU的利用率

print('CPU使用率:',  psutil.cpu_percent(interval=1, percpu=True))
print('CPU使用率:',  psutil.cpu_percent(interval=1, percpu=False))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dIujFEd6-1660968586417)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2741cfb2058e4a44923c514107d29d06~tplv-k3u1fbpfcp-watermark.image?)]

内存信息

  • virtual_memory:以命名元组的形式返回有关系统内存使用情况的统计信息,包括以下字段,以字节表示。
print('系统内存使用情况:', psutil.virtual_memory())

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M1050FO4-1660968586418)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9edb7bebae3b4f1d8e8f4ba379395513~tplv-k3u1fbpfcp-watermark.image?)]

- total:物理内存的总数
- available:可⽤内存,表示没有进⼊交换区的内存,可以直接分配给进程。
- percent:使用百分比计算的值
- used:已经被使⽤的内存数
- free:空闲内存,指完全没有被使⽤的内存
  • swap_memory:⽤于获取交换分区的信息

磁盘信息

  • disk_partitions:返回所有挂载的磁盘分区作为命名元组的列表,包括设备、挂载点和文件系统类型
print('获取硬盘的分区信息:', psutil.disk_partitions())

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HAQmG0CW-1660968586418)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8f36446bee384aa2aafcb81ba17ab722~tplv-k3u1fbpfcp-watermark.image?)]

  • disk_usage:返回有关包含给定路径的分区的磁盘使用统计信息
print('获取指定目录的磁盘信息:', psutil.disk_usage('/'))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q5B5PtmA-1660968586419)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9345c5d6745248e89eea0eb35c5cd90f~tplv-k3u1fbpfcp-watermark.image?)]

  • disk_io_counters:返回系统范围的磁盘 I/O 统计信息
print('获取指定目录的磁盘信息:', psutil.disk_io_counters())

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UAe14Jhd-1660968586419)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d88f250f21c24966a7f48bd516af1425~tplv-k3u1fbpfcp-watermark.image?)]

网络信息

  • net_io_counters:⽤于获取⽹络总的I/O信息,返回⼀个元组,默认pernic=False,当pernic为True时返回每个⽹路接⼝的I/O信息
    • bytes_sent: 发出的⽐特数
    • bytes_recv: 收到的⽐特数
    • packets_sent:发出的包数量
    • packets_recv: 接受的包数量
    • errin:接收时出现的错误总数
    • errout: 发送时出现的错误总数
    • dropin: 发送过来时丢包的数量
    • dropout: 发出时丢包的数量
print('获取收到的数据包数量', psutil.net_io_counters())

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tC6E4Rt9-1660968586420)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/af96aeb3fbae4ce8a979c683cc7bf970~tplv-k3u1fbpfcp-watermark.image?)]

  • net_connection:返回⼀个系统中的套接字的链接信息,以⼀个列表的形式返回
print('获取收到的数据包数量', psutil.net_connections())

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kKow90nZ-1660968586421)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c5ff798a5d6e4df98e66807fcd7b52f4~tplv-k3u1fbpfcp-watermark.image?)]