python之psutil模块获取系统信息

psuti是一个跨平台,能够轻松实现获取系统运行进程,系统利用率信息,主要用于系统监控,分析和限制系统资源及进程管理。

psutil为第三方模块,通过pip安装模块。

获取cpu信息

1.cpu信息
2.User Time:执行用户进程的时间百分比
3.System Time:执行内核进程和中断的时间百分比
4.Wait IO 由于IO等待而使CPU处于idle空闲状态的时间百分比
5.Idle,CPU处于idle状态的时间百分比

######获取cpu的物理个数

>>> psutil.cpu_count(logical=False)

######获取cpu的逻辑个数,默认logical=True

>>> psutil.cpu_count()

#######获取cpu负载的百分比

>>> psutil.cpu_percent()

#######获取cpu的相关信息

>>> psutil.cpu_times_percent()

scputimes(user=50.100000000000001, nice=0.0, system=0.10000000000000001, idle=49.700000000000003, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0)

获取内存信息

获取物理内存

>>> mem = psutil.virtual_memory()    #######内存的相关信息

>>> mem

svmem(total=2104487936, available=1061302272, percent=49.600000000000001, used=2019471360, free=85016576, active=1381191680, inactive=335818752, buffers=289062912, cached=687222784)

>>> mem.total     #########内存的总信息

2104487936

>>> mem.free     ###########内存的空闲量

85016576

获取swap内存

>>> swap = psutil.swap_memory()

>>> swap

sswap(total=536862720, used=5496832, free=531365888, percent=1.0, sin=1499136, sout=7172096)

>>> swap.total     #######虚拟内存总量

536862720

>>> swap.free     ########剩余内存总量

531365888

获取磁盘信息

>>> disk = psutil.disk_partitions()

>>> disk   ######所有的磁盘分区信息

[sdiskpart(device=‘/dev/sda1‘, mountpoint=‘/‘, fstype=‘ext4‘, opts=‘rw‘), sdiskpart(device=‘/dev/sdb1‘, mountpoint=‘/data‘, fstype=‘ext4‘, opts=‘rw‘)]

获取其中一块磁盘的详细信息

>>> psutil.disk_usage(‘/data‘)      ##########磁盘详细信息

sdiskusage(total=52843966464, used=336404480, free=49823244288, percent=0.59999999999999998)

>>> psutil.disk_usage(‘/data‘).total       ########磁盘总量

52843966464

>>> psutil.disk_usage(‘/data‘).free      ##########磁盘空闲量

49823244288

获取磁盘总的IO信息

>>> psutil.disk_io_counters()

sdiskio(read_count=45666, write_count=3915128, read_bytes=595380224, write_bytes=28514291712, read_time=62136, write_time=15799360, read_merged_count=23385, write_merged_count=3045265, busy_time=3432934)

获取磁盘分的IO信息

>>> psutil.disk_io_counters(perdisk=True)

{‘sdb1‘: sdiskio(read_count=338, write_count=87, read_bytes=2782208, write_bytes=909312, read_time=224, write_time=329, read_merged_count=341, write_merged_count=135, busy_time=435), ‘sda2‘: sdiskio(read_count=409, write_count=78, read_bytes=3059712, write_bytes=7172096, read_time=340, write_time=2237, read_merged_count=338, write_merged_count=1672, busy_time=2155), ‘sda1‘: sdiskio(read_count=44919, write_count=3914999, read_bytes=589538304, write_bytes=28506443776, read_time=61572, write_time=15796850, read_merged_count=22706, write_merged_count=3043479, busy_time=3430370)}

获取网卡信息,主要包括获取字节数,接受字节数,发送包数,接受包数

>>> psutil.net_io_counters()     ########获取网络总IO信息,默认pernic=False

snetio(bytes_sent=11914780901, bytes_recv=17872222026, packets_sent=60947652, packets_recv=239415142, errin=0, errout=0, dropin=2260072, dropout=0)

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

{‘lo‘: snetio(bytes_sent=356988, bytes_recv=356988, packets_sent=2811, packets_recv=2811, errin=0, errout=0, dropin=0, dropout=0), ‘eth0‘: snetio(bytes_sent=11914565009, bytes_recv=17871969714, packets_sent=60945546, packets_recv=239413594, errin=0, errout=0, dropin=2260072, dropout=0)}

获取系统用户信息

>>> psutil.users()

[suser(name=‘root‘, terminal=‘pts/1‘, host=‘192.168.8.151‘, started=1458716800.0), suser(name=‘root‘, terminal=‘pts/2‘, host=‘192.168.8.151‘, started=1458718720.0)]

获取系统的开机时间

>>> datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")

‘2015-06-02 16:31:35‘

获取系统进程信息

>>> psutil.pids()          ##########进程号

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 36, 37, 38, 39, 45, 46, 217, 218, 338, 339, 340, 422, 596, 828, 833, 862, 863, 864, 910, 1070, 1082, 1090, 1102, 1118, 1134, 1137, 1146, 1148, 1149, 1151, 1153, 1155, 1156, 1158, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5142, 5144, 5148, 5149, 5150, 5270, 5341, 5342, 6984, 7687, 10349, 10352, 13533, 14007, 14099, 15458, 18432, 23404, 30964, 30966, 31044, 31045, 31048, 31200, 31541]

>>> p = psutil.Process(31541)   ##########生成进程实例

>>> p.name()            #########进程名

‘httpd‘

>>> p.pid       #########获取pid

31541

>>> p.ppid()    #########获取父进程pid

1

>>> p.parent()  ########获取父进程,不存在则返回None

<psutil.Process(pid=1, name=‘init‘) at 139889475650512>

>>> p.exe()     #######进程bin路径

‘/usr/local/apache/bin/httpd‘

>>> p.cwd()      ###########进程工作的绝对路径

‘/‘

>>> p.username()   ########那个用户运行的进程

‘root‘

>>> p.status()    ##########进程状态

‘sleeping‘

>>> p.create_time()  ##########进程创建时间

1457429059.79

>>> datetime.datetime.fromtimestamp(p.create_time()).strftime("%Y-%m-%d %H:%M:%S")

‘2016-03-08 17:24:19‘

>>> p.uids()       ##########进程uid信息

puids(real=0, effective=0, saved=0)

>>> p.gids()       ##########进程gid信息

pgids(real=0, effective=0, saved=0)

>>> p.cpu_times()      ###########进程cpu时间信息

pcputimes(user=16.559999999999999, system=4.4100000000000001, children_user=196.94, children_system=39.619999999999997)

>>> p.memory_percent()   #################进程内存利用率百分比

0.85092965816839916

>>> p.memory_info()   ################进程内存使用相信信息

pmem(rss=17907712, vms=280260608, shared=7897088, text=430080, lib=0, data=9900032, dirty=0)

>>> p.io_counters()   ########进程io信息

pio(read_count=515693, write_count=48326, read_bytes=618496, write_bytes=6672384)

>>> p.num_threads()   #########进程开始线程数

1

>>> p.connections()   #############返回打开进程socket的namedutples列表,包括fs,family,laddr等信息

[pconn(fd=4, family=10, type=1, laddr=(‘::‘, 80), raddr=(), status=‘LISTEN‘)]

时间: 2024-12-08 23:40:57

python之psutil模块获取系统信息的相关文章

使用psutil模块获取电脑运行信息

psutil是python的一个用于获取cpu信息的模块,非常好使,以下附上官方的一些example: CPU-> Examples ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>> import psutil >>> psutil.cpu_times() scputimes(user=3961.46, nice=169.729, sy

安装Python的psutil模块时报错:error: command &#39;gcc&#39; failed with exit status 1

安装Python的psutil模块: tar zxvf psutil-2.0.0.tar.gz cd psutil-2.0.0 python setup.py install 报错: running install running bdist_egg ...... psutil/_psutil_linux.c:12:20: error: Python.h: No such file or directory In file included from psutil/_psutil_linux.c

python封装configparser模块获取conf.ini值(优化版)

昨天晚上封装了configparser模块,是根据keyname获取的value.python封装configparser模块获取conf.ini值 我原本是想通过config.ini文件中的section和keyname获取value的,前两天怎么都调试不通过.今天百度了一下,有人通过字典的方式把我的和这个想法实现了,我把这个例子修改了一下,代码如下,并通过测试,以后可以用在自动化测试框架中: 1 #coding:utf-8 2 import os 3 import ConfigParser

psutil 模块收集系统信息备忘

1.psutil下载地址 https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz 2.psutil模块源码安装 tar zxvf psutil-2.1.3.tar.gz cd psutil-2.1.3 python setup.py install 3.获取系统性能信息 CPU信息 import psutil psutil.cpu_times()         #使用cpu_times方法获取CPU完整信息 ps

python之psutil模块

系统基础信息模块 Psutil模块https://pypi.python.org/pypi/psutil/ 系统性能部分 1.CPU info Psutil.cpu_times()  #获取cpu完整信息 注:版本不一样显示的内容就不一样 包括:user #用户所占cpu时间 system #系统所占cpu时间 idle #cpu空闲时间 interrupt #可中断睡眠时间 dpc # Psutil.cpu_count() #获取cpu逻辑个数 ===〉logical = False 获取cp

psutil模块获取网卡流量

使用python监控系统时,获取网卡流量是比较难搞的,网上找了一个比较好的脚本,分享一下! psutil模块是一个跨平台的获取进程和系统应用情况(CPU,内存,磁盘,网络,传感器)的库.该模块用于系统监控.限制进程资源和运行进程的管理等方面 安装模块psutil pip install psutil 亲测Linux和Windows使用正常 net_traffic.py #!/usr/bin/env python # -*- coding: utf-8 -*- try:     import ps

python:使用netifaces模块获取本机IP网关等信息

python获取本机IP有很多种方法,可每种方法都有局限性. 使用netifaces模块获取本机IP网关等信息,需要安装netifaces模块,不管windows还是linux都可以通用. 一.程序: #!/usr/bin/env python2 # -*- coding: utf-8 -*- #实现本地网卡IP #需要安装netifaces模块 def GetNetworkIP():     #获取本地网卡IP地址     import netifaces     #routingGatewa

Python用WMI模块获取windowns系统信息

安装vmi https://pypi.org/project/WMI/#history 脚本如下: #!/usr/bin/env python #coding:utf-8 import wmi import os import sys import platform import time def sys_version(): c = wmi.WMI () #获取操作系统版本 for sys in c.Win32_OperatingSystem(): print "Version:%s"

Python 中psutil 模块的安装

1.psitil的下载地址: https://pypi.python.org/pypi/psutil/5.2.2#downloads 2.解压 tar zxvf psutil-5.2.2.tar.gz  cd psutil-5.2.2 3.安装 python setup.py build python setup.py install yum install python-devel -y