Python运维开发之psutil库的使用详解
作者:BrownFly 发布时间:2023-10-24 14:22:55
标签:Python,psutil库
介绍
psutil能够轻松实现获取系统运行的进程和系统利用率。
导入模块
import psutils
获取系统性能信息
CPU信息
使用cpu_times()方法获取CPU的完整信息:
>>> psutil.cpu_times()
获取单项数据,例如用户user的CPU时间比:
>>> psutil.cpu_times().user
获取CPU的个数:
>>> psutil.cpu_count() # 默认logical=True,获取逻辑个数
>>> psutil.cpu_count(logical=False) # 获取CPU的物理个数
内存信息
获取物理内存总大小和已使用内存:
>>> mem = psutil.virtual_memory()
>>> mem # 显示所有的参数
>>> mem.total # 总内存
>>> mem.used # 已使用内存
>>> mem.free # 获取空闲内存数
>>> psutil.swap_memory() # 获取SWAP分区信息
磁盘信息
获取磁盘完整信息:
>>> psutil.disk_partitions()
获取分区的使用情况:
>>> psutil.disk_usage('C:/') # 里面参数为所在磁盘分区
获取硬盘总的IO个数:
>>> psutil.disk_io_counters()
>>> psutil.disk_io_counters(perdisk=True) # 获取单个分区的IO个数
网络信息
获取网络总的IO信息:
>>> psutil.net_io_counters()
>>> psutil.net_io_counters(pernic=True) # 输出单个网络接口的IO信息
其他系统信息
返回当前登录系统的用户信息:
>>> psutil.users()
获取开机时间:
>>> psutil.boot_time() # 以Linux时间戳格式返回
# 如果想要转换成自然时间格式:
>>> datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
进程管理
进程信息
列出所有进程PID
>>> psutil.pids()
实例化进程对象
>>> p = psutil.Process(716)
>>> p.name() # 进程名
>>> p.exe() # 进程bin路径
>>> p.cwd() # 进程工作目录的绝对路径
>>> p.status() # 进程状态
>>> p.create_time() # 进程创建时间
>>> p.uids() # 进程uid信息
>>> p.gids() # 进程gid信息
>>> p.cpu_times() # 进程CPU时间信息
>>> p.cpu_affinity() # get进程的亲和度
>>> p.memory_percent() # 进程内存使用率
>>> p.num_threads() # 进程开启的线程数
popen类的使用
popen类可以获取用户启动的应用程序进程信息。
>>> p = putil.Popen(["/usr/bin/python","-c","print('Hello')"],stdout=subprocess.PIPE)
>>> p.name()
>>> p.username() # 创建进程的用户
>>> p.communicate()
('hello\n',None)
>>> p.cpu_times() # 得到进程运行的CPU时间
来源:https://segmentfault.com/a/1190000016718610


猜你喜欢
- Python的matplotlib模块中的errorbar函数可以绘制误差棒图,本次主要绘制不带折线的误差棒图。1.基本参数errorbar
- 本文实例讲述了Python封装原理与实现方法。分享给大家供大家参考,具体如下:【封装】 隐藏对象的属性和实现细节,仅对外提供公共访
- 本文实例讲述了PHP截取指定图片大小的方法。分享给大家供大家参考。具体分析如下:imagecopyresampled($newim, $im
- mybatis分页插件pageHelper详解及简单实例工作的框架spring springmvc mybatis3首先使用分页插件必须先引
- 前言:以往看到我博客的小伙伴可能都知道,我的前言一般都是吐槽和讲废话环节,哈哈哈哈。今天难得休息,最近可真是太忙了,博主已经连续一年都在99
- 在使用google或者baidu搜图的时候会发现有一个图片颜色选项,感觉非常有意思,有人可能会想这肯定是人为的去划分的,呵呵,有这种可能,但
- Python自动化测试 Eclipse+Pydev 搭建开发环境C#之所以容易让人感兴趣,是因为安装完Visual Studio, 就可以很
- 前言MySQL提供了众多功能强大、方便易用的函数。使用这些函数可以极大地提高用户对数据库的管理效率。MySQL中的函数包括数学函数、字符串函
- 当Python执行import语句时,它会在一些路径中搜索Python模块和扩展模块。可以通过sys.path查看这些路径,比如:>&
- 前言今天就来学习一下图形设计界面的美化,首先我们知道 QtDesigner设计出来的界面默认是不太怎么美观的。所以在以后的实际开发中很多界面
- 前言最近有人在Twisted邮件列表中提出诸如"为任务紧急的人提供一份Twisted介绍"的需求。值得提前透露的是,这个
- 我想大多数的人在编写ASP程序的时候,都碰到过类似的错误信息: Error Number -> 
- bookheader.asp Recommended Books for <%=session(&quo
- 给大家分享一下TensorFlow在MAC系统中的安装步骤以及环境搭建的操作流程。TensorFlow 底层的图模型结构清晰,容易改造;支持
- javascript实现翻页效果:<html> <head> <title>上下翻页看 - aspxho
- 1. 安装pip3yum install python34-pip2. 安装python34develyum install python3
- 有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的。那么我们使用Python如何调用Linux的
- Python 解释器内置了一些常量和函数,叫做内置常量(Built-in Constants)和内置函数(Built-in Function
- 本月第一天日期SELECT FirstDayOfCurrentMonth = dateadd(mm,datediff(mm,0,getdat
- 1.Python是如何进行内存管理的?答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制一、对象的引用计数机制Pytho