系统性能信息模块psutil

psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(CPU,内存,磁盘,网络等)信息,主要应用于系统监控,分析和限制系统资源及进程的管理,它实现了同等命令行工具提供的功能,如ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice等.支持32位,和64位的Linux,Windows,OS X,FreeBSD等操作系统。

1 cpu信息
#Linux系统cpu利用率有以下几个部分
#User Time,执行用户进程的时间百分比
#System Time,执行内核进程和中断的时间百分比
#Wait IO,由于IO等待使cpu处于idle(空闲)状态的时间百分比
#Idle,cpu处于空闲状态的时间百分比 >>> import psutil
#获取cpu完成信息
>>> psutil.cpu_times()
scputimes(user=29.36, nice=0.0, system=26.59, idle=9619.35, iowait=64.78, irq=0.5, softirq=1.67, steal=0.0, guest=0.0) #获取用户user的cpu时间比
>>> psutil.cpu_times().user
34.54 #获取cpu逻辑个数
>>> psutil.cpu_count()
4 #获取cpu物理个数
>>> psutil.cpu_count(logical=False)
4 2 内存信息
#Linux系统的内存利用率信息涉及
#total 内存总数
#used 已使用的内存数
#free 空闲内存数
#buffers 缓冲使用数
#cache 缓存使用数
#swap 交换分区使用数 等
#使用 psutil.virtual_memory()与psutil.memory()方法获取 #获取内存完整信息
>>>mem = psutil.virtual_memory()
>>> mem
svmem(total=1961488384, available=1483986944, percent=24.3, used=341475328, free=941473792, active=677801984, inactive=212774912, buffers=32038912, cached=646500352, shared=4116480) #获取内存总数
>>> mem.total
1961488384 #获取空闲内存数
>>> mem.free
941473792 #获取SWAP分区信息
>>> psutil.swap_memory()
sswap(total=2147475456, used=0, free=2147475456, percent=0.0, sin=0, sout=0) 3 磁盘信息
#磁盘利用率使用psutil.disk_usage()方法获取
#IO信息
#read_count 读IO数
#write_count 写IO数
#read_bytes IO读字节数
#write_bytes IO写字节数
#read_time 磁盘读时间
#write_time 磁盘写时间
#使用psutil.disk_io_counters()获取 #获取磁盘完整信息
>>> psutil.disk_partitions()
[sdiskpart(device='/dev/sda3', mountpoint='/', fstype='ext4', opts='rw'), sdiskpart(device='/dev/sda1', mountpoint='/boot', fstype='ext4', opts='rw')] #获取/分区使用情况
>>> psutil.disk_usage('/')
sdiskusage(total=18506760192, used=4438568960, free=13128093696, percent=25.3) #获取硬盘总IO数
>>> psutil.disk_io_counters() 4 网络信息
#bytes_sent 发送字节数
#bytes_recv 接收字节数
#packets_sent 发送数据包数
#packest_recv 接收数据包数
#使用psutil.net_io_counters()获取
>>> psutil.net_io_counters() 5 其他系统信息
#psutil模块还支持获取用户登录,开机时间等信息
#显示当前登录系统的用户信息
>>> psutil.users() #获取开机时间
>>> psutil.boot_time()

系统进程管理方法

psutil在获取进程信息方面也提供了很好的支持,包括使用psutil.pids()方法获取所有PID,使用psutil.Process()方法获取单个进程的名称,路径,系统资源利用率等信息。

#列出所有进程的PID
>>> psutil.pids() #实例化一个Process对象,参数为一个PID
>>>p = psutil.Process(3197) #进程名
>>> p.name()
'python3' #进程bin路径
>>> p.exe()
'/opt/python3/bin/python3.5' #进程工作绝对路径
>>> p.cwd() #进程状态
>>> p.status() #进程创建时间
>>> p.create_time() #uid信息
>>> p.uids() #gid信息
>>> p.gids() #进程cpu时间,包括user,system两个时间
>>> p.cpu_times() #进程内存利用率
>>> p.memory_percent() #进程内存rss,vms信息
>>> p.memory_info() #进程IO信息
>>> p.io_counters() #进程开启的线程数
>>> p.num_threads()

 

[Python Study Notes]psutil模块的更多相关文章

  1. 15.python笔记之psutil模块

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

  2. python基础之psutil模块和发邮件(smtplib和yagmail)

    除了内建的模块外,Python还有大量的第三方模块. 基本上,所有的第三方模块都会在PyPI - the Python Package Index上注册,只要找到对应的模块名字,即可用pip安装. 此 ...

  3. python笔记之psutil模块

    收集教程 http://www.cnblogs.com/xiao1/p/6164204.html 实战教程 安装psutil模块 pip2 install psutil 实战代码 #encoding= ...

  4. [Python Study Notes]CS架构远程访问获取信息--SERVER端v2.0

    更新内容: 1.增加内存信息获取 2.增加电池信息获取 3.增加磁盘信息获取 4.重新布局窗体 5.增加窗体名称 6.增加连接成功之前,不可按压 ''''''''''''''''''''''''''' ...

  5. [Python Study Notes]CS架构远程访问获取信息--SERVER端

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  6. [Python Study Notes]进程信息(丁丁软件监控进程,http-post)

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  7. [Python Study Notes]cpu信息

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  8. [Python Study Notes]电池信息

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  9. [Python Study Notes]内存信息

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

随机推荐

  1. GBK,UTF8是什么?有什么区别,做网站选择哪种好?

    GBK包含全部中文字符: UTF-8则包含全世界所有国家需要用到的字符. GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准) UTF-8编码的文字可以在各国各种支持 ...

  2. Composer 是什么

    简单来说,Composer 是一个新的安装包管理工具,服务于 PHP 生态系统.它实际上包含了两个部分:Composer 和 Packagist.下面我们就简单说一下他们各自的用途. Composer ...

  3. 邓_ phpcms_

    {pc:content action="lists" catid="$catid" num="10" order="id DESC ...

  4. 邓_ Php·魔术方法

    ================================================ 1.__tostring()   用于定义输出对象引用时调用  常用于打印一些对象的信息 必须有返回值 ...

  5. 新版Azure Automation Account 浅析(一) --- 创建和Run As Account

    去年年底Azure中国的Automation Account悄悄做了升级.新版本不管从功能还是end user experience方面都让人耳目一新.如果说升级前只是一个运行脚本的小工具,升级后的A ...

  6. 分布式CAP原理

    根据维基百科定义[CAP] 根据定理,一个分布式系统最多只能满足其中两项, 不可能同时满则C-A-P三项 首先说一下对各项原则的理解 (1)一致性C: 单机环境下, 数据只有一份,所有的客户端访问的是 ...

  7. uwsgi常用配置

    一.安装方式 1.wget 可以去官网:https://pypi.python.org/pypi/uWSGI/ 下载对应的版本   tar -xvf uwsgi-2.13.1.tar.gz cd uw ...

  8. ThinkPhp关闭Debug后出错解决方案

    注:我使用的是ThinkPHP的3.2版本,其他版本类似 从自己入手PHP开发以来,一直使用的是ThinkPHP的框架,前几天偶然间碰到了一个错误,在Debug模式下网站一切正常,而关闭Debug进行 ...

  9. PowerCLI: One-Liner to get VMs, Clusters, ESX Hosts and Datastores并导入数据库中

    需求:定期自动获取Vm在VCenter中对应的cluster.ESX.Datastore信息,同时将变化或者新增的数据上传到数据库中 解决思路分析: 1 首先使用VMware的powerCLI工具通过 ...

  10. 通过编程为Outlook 2007添加邮件规则

    Outlook 所支持的邮件规则相当有用,我们经常需要针对某些特征的邮件做特殊的处理.例如将其移动到某个特定文件夹,或者删除它等等. Outlook所支持的邮件规则主要两大类:收到邮件时和发送邮件时 ...