声明:本人对自动化运维技术比较感兴趣,于8月购买了一本为名《Python自动化运维技术与最佳实践》的书籍,准备将自己的学习过程记录如下,仅供学习之用。

环境介绍:

操作系统:redhat6.4 64位

python版本:2.6.6

一、源码方式安装psutil

下载地址:https://pypi.python.org/pypi/psutil

我是下载psutil3.0这个版本(psutil-3.0.0.tar.gz )

[root@localhost opt]# tar -xvf psutil-3.0.0.tar.gz

[root@localhost opt]# cd psutil-3.0.0

[root@localhost psutil-3.0.0]# python setup.py install

二、获取系统性能信息

(1)cpu信息

[root@localhost python]# python

Python 2.6.6 (r266:84292, Oct 12 2012, 14:23:48)

[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import psutil

>>> psutil.cpu_times()

scputimes(user=11.65, nice=0.0, system=38.359999999999999, idle=977.19000000000005, iowait=15.48, irq=0.67000000000000004, softirq=1.97, steal=0.0, guest=0.0)

>>> psutil.cpu_times().user    #获取单项数据信息,如用户user的CPU时间比

11.69

>>> psutil.cpu_count()        #获取CPU的逻辑个数,默认logical=True

1

>>> psutil.cpu_count(logical=False) #获取CPU的物理个数

(2)内存信息

>>> psutil.virtual_memory()    #使用psutil.virtual_memory方法获取内存完整信息

svmem(total=3154972672L, available=2967654400L, percent=5.9000000000000004, used=394760192L, free=2760212480L, active=124850176, inactive=165478400, buffers=29954048L, cached=177487872)

>>> psutil.virtual_memory().total    #获取内存总数

3154972672L

>>> psutil.virtual_memory().free    #获取空闲内存数

2760085504L

>>> psutil.virtual_memory().buffers #获取缓冲使用数

30068736L

#获取SWAP分区信息

>>> psutil.swap_memory()

sswap(total=3221217280L, used=0L, free=3221217280L, percent=0.0, sin=0, sout=0)

(3)磁盘信息

>>> psutil.disk_partitions()    #获取磁盘完整信息

[sdiskpart(device='/dev/sda3', mountpoint='/', fstype='ext4', opts='rw'), sdiskpart(device='/dev/sda1', mountpoint='/boot', fstype='ext4', opts='rw'), sdiskpart(device='/dev/sdc1', mountpoint='/data', fstype='ext4', opts='rw')]

>>> psutil.disk_usage('/')    #获取分区的使用情况

sdiskusage(total=17437650944, used=12692647936, free=3859218432, percent=72.799999999999997)

>>> psutil.disk_io_counters()  #获取硬盘总的IO个数、读写信息

sdiskio(read_count=5616, write_count=2090, read_bytes=210427392, write_bytes=17358848, read_time=294074, write_time=24870)

>>> psutil.disk_io_counters(perdisk=True)    #perdisk=True参数获取单个分区IO个数、读写信息

{'sdc1': sdiskio(read_count=560, write_count=1, read_bytes=2271744, write_bytes=4096, read_time=299, write_time=41), 'sdb1': sdiskio(read_count=313, write_count=0, read_bytes=1240064, write_bytes=0, read_time=159, write_time=0), 'sda2': sdiskio(read_count=363, write_count=0, read_bytes=1486848, write_bytes=0, read_time=989, write_time=0), 'sda3': sdiskio(read_count=3944, write_count=2108, read_bytes=203645952, write_bytes=17469440, read_time=289724, write_time=24761), 'sda1': sdiskio(read_count=436, write_count=3, read_bytes=1782784, write_bytes=12288, read_time=2903, write_time=86)}

(4)网络信息

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

snetio(bytes_sent=412708, bytes_recv=281914, packets_sent=6402, packets_recv=3333, errin=0, errout=0, dropin=0, dropout=0)

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

{'lo': snetio(bytes_sent=174280, bytes_recv=174280, packets_sent=2151, packets_recv=2151, errin=0, errout=0, dropin=0, dropout=0), 'eth0': snetio(bytes_sent=251908, bytes_recv=118562, packets_sent=4406, packets_recv=1305, errin=0, errout=0, dropin=0, dropout=0)}

>>> psutil.net_if_stats()    #获取每个网络接口的状态

{'lo': snicstats(isup=True, duplex=0, speed=0, mtu=16436), 'eth0': snicstats(isup=True, duplex=2, speed=1000, mtu=1500)}

>>> psutil.net_if_addrs()    #获取每个网络接口的地址信息

{'lo': [snic(family=2, address='127.0.0.1', netmask='255.0.0.0', broadcast='127.0.0.1'), snic(family=10, address='::1', netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None), snic(family=17, address='00:00:00:00:00:00', netmask=None, broadcast='00:00:00:00:00:00')], 'lo:0': [snic(family=2, address='192.168.1.200', netmask='255.255.255.255', broadcast='192.168.1.200')], 'eth0': [snic(family=2, address='192.168.1.108', netmask='255.255.255.0', broadcast='192.168.1.255'), snic(family=10, address='fe80::20c:29ff:fe61:89ee%eth0', netmask='ffff:ffff:ffff:ffff::', broadcast=None), snic(family=17, address='00:0c:29:61:89:ee', netmask=None, broadcast='ff:ff:ff:ff:ff:ff')]}

(5)获取其他系统信息

>>> psutil.users()    #返回当前登陆系统的用户信息

[suser(name='timesten', terminal='pts/0', host='192.168.1.5', started=1441249920.0), suser(name='root', terminal='pts/1', host='192.168.1.5', started=1441250048.0)]

>>> psutil.boot_time()    #获取开机时间,以linux时间戳格式返回

1441249379.0

>>> import datetime

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

'2015-09-03 11:02:59'


转载于:https://blog.51cto.com/718693/1691088

系统性能信息模块篇psutil之获取系统性能信息相关推荐

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

    Psutil(进程和系统实用程序)是一个跨平台的库,用于在Python中检索有关运行进程和系统资源利用率(CPU,内存,磁盘,网络)的信息.它主要用于系统监视,分析和限制系统资源及运行进程的管理.它实 ...

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

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

  3. psutil 模块获取主机信息

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

  4. python psutil 获取命令历史_Python使用psutil获取进程信息的例子

    psutil是什么 psutil是一个能够获取系统信息(包括进程.CPU.内存.磁盘.网络等)的Python模块.主要用来做系统监控,性能分析,进程管理,像glances也是基于psutil写成的. ...

  5. 微信小程序 - 获取用户信息

    最近在研究微信小程序怎么玩的.接触后发现好多的坑. 比如在浏览器中我们可以通过document.getElementById 获取到页面的DOM对象.而在微信小程序中是获取不到DOM对象的.docum ...

  6. Python入门之——系统性能信息模块psutil

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

  7. 系统性能信息模块--psutil

    #安装psutil模块#pip install psutil -i https://pypi.doubanio.com/simple #导入psutil模块import psutilimport da ...

  8. linux rpc.statd服务 获取系统性能统计 简介

    大家在安装好RHEL/CentOS系统后,用netstat查看及端口情况,可能会发现有个rpc.statd服务,是不是不知道是哪个服务启动的啊?如何关掉RHEL/CentOS的rpc.statd服务呢 ...

  9. python psutil 进程cpu_python 模块psutil获取进程信息

    获取进程信息 接续上篇<python 常用内建模块之psutil>安装psutil,并且获取一些基本信息,本篇介绍通过psutil获取到所有进程的详细信息: 1. 获取所有进程ID pri ...

最新文章

  1. Linux内存映射--mmap函数
  2. android发短信乱码,android 音乐信息乱码处理
  3. c++中报错预处理器指令后有意外标记 - 应输入换行符
  4. 【机器视觉】 default算子
  5. OCP大会 | DCOS – 面向数据中心的运营操作系统(附PPT)
  6. Hadoop不适合哪些场景 哪些场景适合?
  7. win10看计算机属性,win10系统查看windows7版本号要比计算机属性具体的图文步骤
  8. 【软件测试】软件测试分类详述
  9. linux-headers,如何升级linux-headers-generic?
  10. php rbac 菜单生成,RBAC集成AdminLTE后台主题对菜单进行控制
  11. javaERP跨境电商平台,跨境电商源码,电商ERP源码,ERP源码
  12. docker端口映射后连不上的问题
  13. 在word文档中插入代码_如何在自动更新的Word文档中插入当前的月份和年份
  14. 瀑布流插件masonry
  15. FPGA图像处理的仿真测试激励该如何写?
  16. Prisemi芯导充电和保护硬科技亮相亚洲蓝牙耳机展
  17. 笔记:新手SEOer必备的WordPress优化插件
  18. 计算机教室网络平面示意图,计算机机房平面布置图.doc
  19. NJU 2021 计算机拔尖(数学)测试 解题报告
  20. 鸟哥的私房菜——BASHShell

热门文章

  1. mysql5.7配置_MySQL5.7详细配置教程
  2. python round函数_python中round函数如何使用
  3. 【知识星球】分组卷积最新进展,全自动学习的分组有哪些经典模型?
  4. 全球及中国虚拟厨房(仅限外卖的餐厅)行业运营模式分析及发展规划建议研究报告2021-2027年版
  5. 全球及中国1-氯-3-乙基苯行业发展规划分析及市场前瞻报告2021年版
  6. (MSDN)VB.NET的强大和C#语言的比较【转载】
  7. Linux服务器---网络配置
  8. 「Codeforces」598E (区间dp)
  9. Redis 之(二) Redis的基本数据结构以及一些常用的操作
  10. Null reference pointer was passed to the stub when not debugging with IE