mac 系统使用 psutil 模块获取系统 cpu,内存等信息

Mac 系统 psutil 模块使用

@(python3)

psutil 官方文档
psutil是一个跨平台库,能够实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。

安装

wget https://pypi.python.org/packages/8d/96/1fc6468be91521192861966c40bd73fdf8b065eae6d82dd0f870b9825a65/psutil-5.4.0.tar.gz

tar zxvf psutil-5.4.0.tar.gz
cd psutil
python3.6 setup.py install

获取 cpu 信息 pstile.cpu_time()

import psutil
a = psutil.cpu_times()    # 显示 cpu 完整信息
print('cpu_times() 的方法有:', dir(a))
print('a 的结果是:', a)

b = psutil.cpu_times(percpu=True)    # 显示所有逻辑 CPU 信息
print('所有逻辑 CPU 的信息:', b)

c = psutil.cpu_times().user    # cpu 处在用户模式下的时间百分比
print('user 用户的 cpu 百分比:', c)

d = psutil.cpu_count()         # cpu_count 默认获取机器的逻辑 CPU 个数
print('cpu 逻辑个数:', d)

e = psutil.cpu_count(logical=False)  # 获取机器的物理 CPU 个数
print('cpu 物理个数:', e)
cpu_times() 的方法有: ['count', 'idle', 'index', 'nice', 'system', 'user']
a 的结果是: scputimes(user=2537.26, nice=0.0, system=1376.91, idle=82324.61)

所有逻辑 CPU 的信息: [scputimes(user=645.22, nice=0.0, system=567.17, idle=9568.24), scputimes(user=63.66, nice=0.0, system=30.73, idle=10685.35), scputimes(user=545.66, nice=0.0, system=229.8, idle=10004.28), scputimes(user=64.16, nice=0.0, system=30.74, idle=10684.83), scputimes(user=548.7, nice=0.0, system=231.99, idle=9999.05), scputimes(user=64.27, nice=0.0, system=31.01, idle=10684.45), scputimes(user=541.1, nice=0.0, system=224.57, idle=10014.07), scputimes(user=64.49, nice=0.0, system=30.9, idle=10684.34)]

user 用户的 cpu 百分比: 2537.26
cpu 逻辑个数: 8
cpu 物理个数: 4

内存信息 psutil.virtual_memory()

import psutil
mem = psutil.virtual_memory()   # 获取内存的完整信息
print('打印内存的完整信息:', mem)

total = mem.total               # 获取内存总数
print('total 获取内存总数:', total)

free = mem.free                 # 获取内存空闲数量
print('free 获取当前空闲内存数量:', free)

swap = psutil.swap_memory()     # 获取交换分区完整信息
print('swap 分区信息:', swap)    # swap 也有 total,free 等方法,可以使用

输出结果:

打印内存的完整信息: svmem(total=17179869184, available=2642497536, percent=84.6, used=13421477888, free=1575473152, active=9622462464, inactive=1067024384, wired=2731991040)
total 获取内存总数: 17179869184
free 获取当前空闲内存数量: 1575473152
swap 分区信息: sswap(total=0, used=0, free=0, percent=0, sin=2193199104, sout=0)
  • 所有内存信息,全部以字节的单位显示

磁盘信息 disk_**()

import psutil
disk = psutil.disk_partitions()   # 获取磁盘完整信息
print('磁盘完整信息:', disk)

usage = psutil.disk_usage('/')       # 获取指定分区的使用情况
print('根分区使用情况:', usage)

counter = psutil.disk_io_counters()  # 获取硬盘总的 IO 个数以及读写信息
print('硬盘总 IO 个数以及读写信息:', counter)

结果:

磁盘完整信息: [sdiskpart(device='/dev/disk1', mountpoint='/', fstype='hfs', opts='rw,local,rootfs,dovolfs,journaled,multilabel')]

根分区使用情况: sdiskusage(total=249678528512, used=45608521728, free=203807862784, percent=18.3)

硬盘总 IO 个数以及读写信息: sdiskio(read_count=115403, write_count=102234, read_bytes=3432717824, write_bytes=1946646528, read_time=32067, write_time=49597)

网络信息 psutil.net_io_counters()

该方法有一个参数,默认,pernice=False,打印所有的网络 IO 信息,True 则输出每个网络接口的 IO 信息。

import psutil
net = psutil.net_io_counters()  # 默认获取所有网络的 IO 信息
print(net)

net_sigle = psutil.net_io_counters(True)  # 获取每个网络接口的 IO 信息
print(net_sigle)

输出结果如下:

snetio(bytes_sent=12998924, bytes_recv=133243562, packets_sent=102924, packets_recv=446710, errin=0, errout=0, dropin=0, dropout=0)

其他信息

import psutil
import datetime

user = psutil.users()       # 获取当前登录系统的用户信息
print(user)

time = psutil.boot_time()   # 获取系统时间
v_time = datetime.datetime.fromtimestamp(time)  # 使用 fromtimestamp 方法获取可视化时间
print(v_time)

输出结果:

[suser(name='wangxiansheng', terminal='console', host=None, started=1509580544.0, pid=95), suser(name='wangxiansheng', terminal='ttys002', host=None, started=1509590144.0, pid=3600)]

2017-11-02 07:55:44

你可能感兴趣的:(python)