python中的psutil模块

常用 psutil 监控指标

  • 使用pip install 安装 psutil 模块,或直接使用 anaconda3 集成的 python.exe
  • 通过import psutil来导入 psutil 模块,可以方便的对系统的性能进行监控
  • 使用psutil.cpu_count()获取计算机中 cpu 的个数
import psutil
print(psutil.cpu_count())

运行结果:

8
  • 使用psutil.virtual_memory()获取计算机的内存指标
import psutil
print(psutil.virtual_memory())

运行结果:

svmem(total=8472809472, available=1533022208, percent=81.9, used=6939787264, free=1533022208)

可知 psutil.virtual_memory() 有三个指标,分别为总内存,可用内存,内存利用率,已用内存,空闲内存,可明确指定指标来获取需要的信息

import psutil
print(psutil.virtual_memory().total)

即可获取总内存值,但是其单位是字节,通常数字很大,可以简单的格式化后输出

import psutil
print(float(psutil.virtual_memory().total)/1024/1024/1024)

运行结果:

7.890918731689453
  • 同理,可使用psutil.disk_partitions()获取所有的磁盘性能指标
  • 使用psutil.disk_usage('C:/')指定获取 C 盘的性能指标
import psutil
print(psutil.disk_partitions())
print(psutil.disk_usage('C:/'))
print(psutil.disk_usage('C:/').percent)

运行结果:

[sdiskpart(device='C:\\', mountpoint='C:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='D:\\', mountpoint='D:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='E:\\', mountpoint='E:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='F:\\', mountpoint='F:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='G:\\', mountpoint='G:\\', fstype='NTFS', opts='rw,removable')]

sdiskusage(total=126521581568, used=61492244480, free=65029337088, percent=48.6)

48.6

使用 psutil 查看系统进程

  • psutil.pids()可获取系统中正在运行的所有进程的 PID,结果返回一个 List,可通过 len 获取个数
import psutil
print(len(psutil.pids()))

运行结果:

231
  • 如果你通过远程管理软件(如 XShell)连接到远程服务器,可使用psutils.Process(PID)获取远程服务器的信息
import psutil
print(psutil.Process(8424).connections())

运行结果:

[pconn(fd=-1, family=<AddressFamily.AF_INET: 2>, type=1, laddr=addr(ip='192.168.0.107', port=5067), raddr=addr(ip='121.36.158.32', port=22), status='ESTABLISHED')]

其中 8424 为 PID,可通过 任务管理器 查看,.connection()则获取连接信息

由结果可知远程服务器的 ip 地址和端口号等信息