Psutil(进程和系统实用程序)是一个跨平台的库,用于在Python中检索有关运行进程和系统资源利用率(CPU,内存,磁盘,网络)的信息。它主要用于系统监视,分析和限制系统资源及运行进程的管理。它实现了Linux命令工具提供的许多功能,例如:ps,top,lsof,netstat,ifconfig,who,df,kill,nice,ionice,iostat,iotop,uptime,pidos,tty,tasket,pmap等。psutil目前支持以下平台:linux、Windows、OSX、FreeBSD,OpenBSD、NETBSD、sun Solaris、AIX操作系统。所以是python实现系统运维不可或缺的模块。

官方下载地址:https://pypi.org/

psutil模块安装:https://github.com/giampaolo/psutil

我这里使用windows10系统,pip install psutil安装

具体使用:

一.系统管理

1.查看cpu信息

psutil.cpu_times()

参数介绍:

  • user:用户进程使用的CPU时间累计
  • nice:优先级为负值的进程使用时间
  • system:内核进程使用时间累计
  • idle:CPU空闲时间累计
  • iowait:等待IO花费的时间
  • irq:硬中断时间累计
  • softirq:软中断时间累计
  • steal:花费在虚拟机中的时间

2.显示cpu所有逻辑信息

psutil.cpu_times(percpu=True)

3.查看用户的cpu时间比

psutil.cpu_times().user

4.查看cpu逻辑个数

psutil.cpu_count()

5.查看cpu物理个数

psutil.cpu_count(logical=False)

-----------------------------------------------

6.查看系统内存

mem = psutil.virtual_memory() //系统内存所有信息
mem.total //系统总计内存
mem.used //系统已经使用内存
mem.free //系统空闲内存
mem.active //系统正在使用的内存和最近使用内存
mem.inactive //系统已经分配的内存,但还没有使用的
mem.shared //系统共享的内存
mem.buffers //系统缓冲区内存
mem.cached //系统cpu缓存空间,存放经常使用的数据

7.获取swap交换内存信息

psutil.swap_memory()

----------------------------------------------

8.读取磁盘参数

磁盘IO信息包括

read_count(读IO数),

write_count(写IO数)

read_bytes(IO写字节数),

read_time(磁盘读时间),

write_time(磁盘写时间)

9.获取分区信息

psutil.disk_partitions()

10.获取指定分区的信息

psutil.disk_usage('/')   #获取/分区的状态

11.获取磁盘总的IO详情

psutil.disk_io_counters()

12.获取单个分区IO个数

psutil.disk_io_counters(perdisk=True)    #perdisk=True参数获取单个分区IO个数

13.读取网络信息

网络信息与磁盘IO信息类似,涉及到几个关键点,包括

byes_sent(发送字节数),

byte_recv=xxx(接受字节数),

pack-ets_sent=xxx(发送字节数),

pack-ets_recv=xxx(接收数据包数),这些网络信息用

获取网络总IO信息

psutil.net_io_counters()  

14.输出网络每个接口信息

psutil.net_io_counters(pernic=True)     #pernic=True

15.获取当前系统用户登陆信息

psutil.users()

16.获取系统开机时间

psutil.boot_time()  #以linux时间格式返回

17.将获取到的时间转换成可视时间

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

二.系统进程管理

列出所有的进程信息:

>>> res = psutil.process_iter()
>>> for i in res:
... print(i)

1.列出系统所有进程的ID

psutil.pids()

2.获取某一进程的信息,参数为pid

psutil.Process(pid)

3.获取指定进程的名称

psutil.Process(pid).name()

4.获取指定进程的执行命令的路径

psutil.Process(pid).exe()

5.获取指定进程的工作路径的绝对路径

psutil.Process(pid).cwd() 

6.获取进程的状态

psutil.Process(pid).status()

7.进程创建时间

psutil.Process(pid).create_time()

8.以可视的方式显示创建进程的时间

datetime.datetime.fromtimestamp(psutil.Process(pid).create_time()).strftime("%Y-%m-%d %H: %M: %S")

9.获取指定进程的uid信息

psutil.Process(pid).uids()

10.获取指定进程的gid信息

psutil.Process(pid).gids()

11.获取指定进程的cpu时间信息,包括user,system

psutil.Process(pid).cpu_times()

12.获取进程cpu的亲和度

psutil.Process(pid).cpu_affinity()

13.进程内存的利用率

psutil.Process(pid).memory_percent()

14.进程内存的rss和vms的值

psutil.Process(pid).memory_info()

15.指定进程的IO数,包括读写IO数及字节数

psutil.Process(pid).io_counters()

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

psutil.Process(pid).connections()

17.指定进程开启的线程数

psutil.Process(pid).num_threads()

-------------------------------------------------------

18.popen类的使用

from subprocess import PIPE
P = psutil.Popen(["/usr/bin/python","-c","print('hello')"],stdout=PIPE) 执行系统中的命令,非交互,并且输出。 >>> P.name() 'python' >>> P.username() 'root' >>> P.communicate()
('hello\n', None)

1.python系统性能信息模块之psutil模块的更多相关文章

  1. 系统性能信息模块之psutil模块

    一.psutil模块介绍 官方网址:https://pypi.org/ psutil模块安装:https://github.com/giampaolo/psutil/blob/master/INSTA ...

  2. Python运维自动化psutil 模块详解(超级详细)

    psutil 模块 参考官方文档:https://pypi.org/project/psutil/ 一.psutil简介 psutil是一个开源且跨平台(http://code.google.com/ ...

  3. python之系统性能信息模块psutil

    系统性能信息模块psutil 跨平台库 轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息. 主要用于系统监控,分析和限制系统资源及进程的管理 实现同等命令行工具提供的功能( ...

  4. python自动化运维笔记1 —— 系统性能信息模块psutil

    一.系统基础信息模块 1.1 系统性能信息模块psutil psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率( ...

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

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

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

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

  7. 15.python笔记之psutil模块

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

  8. 自动化之路 python psutil模块 收集硬件信息

    一.psutil模块 1. psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息.它主要应用于系统监控,分析和限制系统资源及进程的管理.它实现了 ...

  9. [Python Study Notes]psutil模块

    系统性能信息模块psutil psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(CPU,内存,磁盘,网络等)信息,主要应用于系统监控,分析和限制系统资源及进程的管理,它实现了同等 ...

随机推荐

  1. ACM学习历程—HDU5700 区间交(树状数组 && 前缀和 && 排序)

    http://acm.hdu.edu.cn/showproblem.php?pid=5700 这是这次百度之星初赛2B的第五题.省赛回来看了一下,有这样一个思路:对于所有的区间排序,按左值排序. 然后 ...

  2. COGS 2638. 数列操作ψ 线段树

    传送门 : COGS 2638. 数列操作ψ 线段树 这道题让我们维护区间最大值,以及维护区间and,or一个数 我们考虑用线段树进行维护,这时候我们就要用到吉司机线段树啦 QAQ 由于发现若干次an ...

  3. 一分钟理解js闭包

    什么是闭包?先看一段代码: ? 1 2 3 4 5 6 7 8 9 10 function a(){   var n = 0;   function inc() {     n++;     cons ...

  4. rpm -Uvh 升级时的陷阱

    问题现象 用rpm -Uvh升级后,原先的一个软链接被删除了,而采用先rpm -e 卸载rpm包,再rpm -ivh 安装包的方法,这个软链接还在.这个软链接是在rpm包安装的时候建立,也只有在rpm ...

  5. Swift-ScrollView轮播图的简易封装和使用

    不多说,轮播图是开发中必要一项技能,直接上代码: 先说我的思路:首次继承于UIScrollView类自定义MyScrollView,在MyScrollView里自定制方法,func creatMySc ...

  6. 野村综合社,惠普2面,索尼,CDK面试经理

    今天疯了一口气面试了四个企业,自我介绍都说了七八遍,晚上回家到头就睡.中间接了oracle的电话,也不知道如何. 11:00野村面试 野村综合社北京流通部 面试3个人,一个英语部门负责人,一个日语负责 ...

  7. poj 3128 Leonardo's Notebook——思路(置换)

    题目:http://poj.org/problem?id=3128 从环的角度考虑. 原来有奇数个点的环,现在点数不变: 原来有偶数个点的环(设有 k 个点),现在变成两个大小为 k/2 的环. 所以 ...

  8. dubbox消费者启动成功,却无法连接注册中心

    使用dubbox作为服务提供端很好实现,因为git的说明和网上有很多的例子可供参考,但是消费端都一笔带过,简单得很,初学者往往以为只要配置如下3样东西就够了: <?xml version=&qu ...

  9. laravel 二维码生成器包 QrCode 的使用

    在laravel中使用 QrCode 生成二维码 https://laravelacademy.org/post/2605.html 我在本机的windows下composer require 没有成 ...

  10. Google Cloud VM上在线扩硬盘

    Google Cloud VM是可以在线扩展Disk的大小的. 一.创建VM和磁盘 比如我有一台VM,附加了一块Disk,大小是120GB.如下图: 在VM中进行格式化: mkfs.ext4 -F / ...