psutil = process and system utilities,

psutil是个跨平台库,能够轻松实现获取系统运行的进程和系统利用率,包括CPU、内存、磁盘、网络等信息。

Linux系统下的安装

pip install  psutil

现在开始看看它的使用

一 cpu

#查看逻辑cpu的个数
>>> psutil.cpu_count()
2
#查看物理cpu的个数
>>> psutil.cpu_count(logical=False)
2
>>> psutil.cpu_times_percent() #cpu的总使用情况
scputimes(user=0.0, nice=0.0, system=0.1, idle=99.9, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
>>> psutil.cpu_times_percent(percpu=True) #每个cpu的使用情况
[scputimes(user=0.0, nice=0.0, system=0.1, idle=99.9, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0),
scputimes(user=0.0, nice=0.0, system=0.1, idle=99.9, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)]
>>> psutil.cpu_percent() #cpu的使用率
0.1
#要查看cpu的负载呢,我们还是使用其他的命令吧

  >>> import os
  >>> os.getloadavg()
  (0.01, 0.06, 0.06)

 二 内存

#查看系统缓存的信息
>>> psutil.swap_memory()
sswap(total=536866816, used=0, free=536866816, percent=0.0, sin=0, sout=0)
>>> psutil.swap_memory().total #单位是字节
536866816
>>> psutil.swap_memory().total/1024 #swap总大小,以kb单位表示
524284
>>> psutil.swap_memory().free/1024 #空闲swap大小,以kb单位表示
524284 #统计内存使用情况
##############总内存 ,使用的,空闲 ,使用百分比,buffers ,cached 单位是字节
>>> for i in ['total','used','free','percent','buffers','cached']:
... ret=getattr(psutil.virtual_memory(),i)
... print(ret)
...
1514450944
227557376
852000768
25.5
3215360
431677440

 三 磁盘

#获取磁盘信息
>>> psutil.disk_partitions()
[sdiskpart(device='/dev/sda3', mountpoint='/', fstype='xfs', opts='rw,seclabel,relatime,attr2,inode64,noquota'),
sdiskpart(device='/dev/sda1', mountpoint='/boot', fstype='xfs', opts='rw,seclabel,relatime,attr2,inode64,noquota')]
#获取挂载点的分区信息,通过device去的话显示有问题
>>> psutil.disk_usage("/boot")
sdiskusage(total=206213120, used=117985280, free=88227840, percent=57.2)
>>> psutil.disk_usage("/boot").percent
57.2

四 网卡

#获取网卡ens33的IP地址
>>> psutil.net_if_addrs()['ens33'][0].address
'192.168.137.16'
#子网掩码
>>> psutil.net_if_addrs()['ens33'][0].netmask
'255.255.255.0'
#查看网卡是否开启
>>> psutil.net_if_stats()['ens33'].isup
True
#查看网卡的速率,命令有ifconfig,ethtool
>>> psutil.net_if_stats()['ens33'].speed
1000 #单位 Mb/s

五 网络

#psutil.net_connections 查看网络的连接情况
>>> for i in psutil.net_connections():
... if i.raddr: #判断外部地址情况不为空的情况,避免raddr=()产生错误
... print(i.laddr.ip,i.laddr.port,i.raddr.ip,i.raddr.port,i.status,i.pid)
...
# 本地地址 ,端口,外部地址 ,外部端口, 连接情况 , pid
('192.168.137.16', 22, '192.168.137.1', 52783, 'ESTABLISHED', 1327)
('192.168.137.16', 22, '192.168.137.1', 52083, 'ESTABLISHED', 1189)

六进程

#进程的情况
>>> p=psutil.Process(1094) #1094是nginx的master进程
>>> p.num_threads() #打开的线程数,由于nginx是一个主进程和多个工作进程,因此都为1
1
>>> p.cwd() #进程的工作目录路径
'/'
>>> p.cmdline() #nginx的命令进程信息
['nginx:', 'master', 'process', '/usr/sbin/nginx']
>>> p.exe() #执行的命令
'/usr/sbin/nginx'
>>> p.is_running() #是否存活
True
>>> p.name() #进程名称
'nginx'
>>> p.nice() #进程的nice值
0
>>> p.status() #状态
'sleeping'
>>> p.threads() #它的线程情况
[pthread(id=1094, user_time=0.0, system_time=0.0)]
>>> p.ppid() #它的父进程
1
>>> p.username() #它的执行用户
'root'
>>> p.memory_percent() #内存利用率
0.14280343701908643
>>> p.cpu_percent() #cpu利用率
0.0
>>> psutil.pid_exists(1111) #查看进程是否存在
False
>>> psutil.pid_exists(1094)
True

python之psutil的更多相关文章

  1. CentOS7--64安装python的psutil模块

    1.以root身份登陆CentOS依次 执行以下命令: wget https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.g ...

  2. Python模块 (psutil)

    psutil psutil是Python中一个系统信息检索模块,可以获取(系统.CPU.内存.网络.磁盘)等信息,可以应用于系统的监控.健康状态检查,等同于shell中的ps.free.top.df功 ...

  3. python使用psutil获取服务器信息

    >>> import psutil 获取cpu信息>>> psutil.cpu_times()scputimes(user=128258.38, nice=12.2 ...

  4. Python 中psutil 模块的安装

    第一步下载psutil 的安装包 网址:https://pypi.python.org 第二步解压 .tar.gz cd psutil- 第三步安装: python setup.py build py ...

  5. [转载] python利用psutil遍历进程名字和exe所在目录

    本文转载自: http://www.duanzhihe.com/1594.html http://www.jianshu.com/p/64e265f663f6 import psutil,os,tim ...

  6. Linux-Centos7----安装Python的psutil模块插件

    # wget https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz # tar zxvf psutil-2.1.3. ...

  7. python之psutil模块(获取系统性能数据)

    psutil模块 1.介绍 psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等) ...

  8. python之psutil模块详解(Linux)--小白博客

    Python-psutil模块 windows系统监控实例,查询 https://www.cnblogs.com/zhou2019/p/10567282.html 1.简单介绍 psutil是一个跨平 ...

  9. python模块psutil的使用

    介绍 psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息.它主要应用于系统 ...

  10. python之psutil模块(获取系统性能信息(CPU,内存,磁盘,网络)

    一.psutil模块 1. psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等) ...

随机推荐

  1. angular6 引用echart第一次数据不显示解决

    1 使用promise从后台返回数据后,页面还是比数据更快的加载出来,导致echart图页面加载的时候不显示问题 1.1 html <div echarts [options]="do ...

  2. 小妖精的完美游戏教室——buff系统

    作者:小妖精Balous,未经作者允许,任何个人与单位不得将此源代码用于商业化项目 #region buff /// <summary> /// 是否魔法免疫,魔法免疫的生物不会受到除自己 ...

  3. 阿里云ECS Centos7 系统安装图形化桌面

    阿里云官网默认的Linux Centos7系统镜像,都是没有安装桌面环境的,用户如果要使用桌面,需要自己在服务器上进行安装. 本教程以MATE桌面安装为例 1.登录服务器,执行命令安装桌面环境. 先安 ...

  4. 让Entity Framework不再私闯sys.databases

    这里的“私闯sys.databases”是指Entity Framework默认发起的查询:SELECT Count(*) FROM sys.databases WHERE [name]=N'数据库名 ...

  5. display inline or block

    一.首先要了解什么是块级元素与行级元素 块级元素 会占领页面的一行,其后多个block元素自动换行. 可以设置width,height,设置了width后同样也占领一行.同样也可以设置   margi ...

  6. ubuntu 上安装node.js 的简单方法

    一.安装 1.$ sudo apt-get install nodejs 2.$ sudo apt-get install npm 二.升级     1.升级npm命令如下: $ sudo npm i ...

  7. sklearn pipeline

    sklearn.pipeline pipeline的目的将许多算法模型串联起来,比如将特征提取.归一化.分类组织在一起形成一个典型的机器学习问题工作流. 优点: 1.直接调用fit和predict方法 ...

  8. postman测试请求参数中文乱码问题

    用IDEA调试代码时,用postman测试请求url,发现post或者get请求中参数是中文的话,后台获取的参数是乱码, 一般两个方面 发送请求的一方:postman的问题 接受请求的一方:tomca ...

  9. Assembly Experiment9

    用英文写太浪费时间了,而且书上的讲解对各种功能的英文原句少之又少,有空还是看龙书吧(不存在的) 实验1: 十六进制转换十进制 实验代码: ; 在屏幕上输出内存单元中的十进制两位数 assume cs: ...

  10. orientdb docker-compose 运行

    orientdb 很早就跑过,但是现在在跑,发现配置有些变动,原有studio 直接就可以访问的,新版本的居然还需要自己添加 server 的配置,所以为了方便使用docker-compose 运行, ...