Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python获取系统信息模块psutil

python获取系统信息模块psutil

作者头像
用户1432189
发布于 2020-04-08 09:35:14
发布于 2020-04-08 09:35:14
1.3K00
代码可运行
举报
文章被收录于专栏:zingpLiuzingpLiu
运行总次数:0
代码可运行

  psutil,(process and system utilities),可以通过一两行代码实现系统监控,还可以跨平台使用,支持Linux/UNIX/OSX/Windows等,是系统管理员和运维小伙伴不可或缺的必备模块。

1 安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 pip install psutil 

2 获取CPU信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 In [2]: psutil.cpu_count()                 # CPU逻辑数量                                               
 2 Out[2]: 8
 3 
 4 In [3]: psutil.cpu_count(logical=False)    # CPU物理核心                                   
 5 Out[3]: 4
 6 
 7 In [4]: psutil.cpu_times()                 # 统计CPU的用户/系统/空闲时间                                             
 8 Out[4]: scputimes(user=830519.73, nice=0.0, system=723038.84, idle=42315894.17)
 9 
10 - 实现类似top命令的CPU使用率,每秒刷新一次,累计1011 In [6]: for x in range(10): 
12    ...:     r = psutil.cpu_percent(interval=1, percpu=True) 
13    ...:     print(r) 
14    ...:                                                                         
15 [19.0, 0.0, 12.7, 1.0, 8.0, 1.0, 4.0, 1.0]
16 [20.0, 0.0, 12.1, 0.0, 8.0, 0.0, 4.0, 1.0]
17 [32.0, 5.0, 23.0, 4.0, 19.0, 4.0, 16.0, 2.0]
18 [20.0, 0.0, 15.0, 0.0, 7.1, 0.0, 5.9, 2.0]
19 [24.8, 1.0, 14.9, 1.0, 9.0, 1.0, 8.1, 0.0]
20 [34.0, 4.0, 27.0, 4.0, 24.8, 4.0, 17.8, 5.0]
21 [28.7, 2.0, 20.0, 1.0, 13.0, 2.0, 11.0, 1.0]
22 [21.0, 1.0, 15.8, 1.0, 10.9, 0.0, 6.9, 1.0]
23 [22.0, 0.0, 14.9, 0.0, 9.0, 0.0, 7.0, 0.0]
24 [25.0, 2.0, 15.2, 1.0, 11.0, 1.0, 5.0, 0.0]

3 获取内存信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 In [7]: psutil.virtual_memory()           # 获取物理内存信息                                          
2 Out[7]: svmem(total=17179869184, available=5688819712, percent=66.9, used=9728593920, free=159133696, active=5531738112, inactive=5306654720, wired=4196855808)
3 
4 In [8]: psutil.swap_memory()              # 获取交换内存信息                                        
5 Out[8]: sswap(total=5368709120, used=4316463104, free=1052246016, percent=80.4, sin=659438723072, sout=4277862400)
6 - 注意: 返回的是字节为单位的整数。 总内存17179869184/1024/1024/1024 = 16.0 G

4 获取磁盘信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 In [9]: psutil.disk_partitions()          # 磁盘分区信息                             
 2 Out[9]: 
 3 [sdiskpart(device='/dev/disk1s1', mountpoint='/', fstype='apfs', opts='rw,local,rootfs,dovolfs,journaled,multilabel'),
 4  sdiskpart(device='/dev/disk1s4', mountpoint='/private/var/vm', fstype='apfs', opts='rw,noexec,local,dovolfs,dontbrowse,journaled,multilabel,noatime')]
 5 - 有两个分区,磁盘格式apfs,opts中journaled表示支持日志。
 6 
 7 In [10]: psutil.disk_usage('/')           # 磁盘使用情况                             
 8 Out[10]: sdiskusage(total=250685575168, used=118098038784, free=125440405504, percent=48.5)
 9 - 磁盘总共250685575168/1024/1024/1024233.469G,已使用48.5%10 
11 In [11]: psutil.disk_io_counters()        # 磁盘IO                                 
12 Out[11]: sdiskio(read_count=55081907, write_count=65301593, read_bytes=996595785728, write_bytes=1063386177536, read_time=18258582, write_time=10621452)

5 获取网络信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
In [12]: psutil.net_io_counters()         # 获取网络读写字节/包的个数              
Out[12]: snetio(bytes_sent=80803235840, bytes_recv=124806110208, packets_sent=254195219, packets_recv=182450714, errin=0, errout=130782, dropin=0, dropout=0)

In [13]: psutil.net_if_addrs()            # 获取网络接口信息

In [14]: psutil.net_if_stats()            # 获取网络接口状态

In [15]: psutil.net_connections()         # 获取当前网络连接信息

6 获取进程信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 In [16]: psutil.pids()                    # 所有进程ID                                         
 2 Out[16]: [0,1,39,40, ...]
 3 
 4 In [17]: import os                                                          
 5 
 6 In [18]: os.getpid()                                                        
 7 Out[18]: 70042
 8 
 9 In [19]: p = psutil.Process(os.getpid())  # 获取指定进程                                  
10 
11 In [20]: p.name()         # 进程名称                                                
12 Out[20]: 'python3.7'
13 
14 In [21]: p.exe()          # 进程exe路径                                              
15 Out[21]: '/opt/anaconda3/bin/python3.7'
16 
17 In [22]: p.cwd()          # 进程工作目录                                             
18 Out[22]: '/Users/liuyouyuan/workspace/pyproject/scripts'
19 
20 In [23]: p.cmdline()      # 进程启动的命令行                                     
21 Out[23]: ['/opt/anaconda3/bin/python', '/opt/anaconda3/bin/ipython']
22 
23 In [24]: p.ppid()         # 父进程ID                                                
24 Out[24]: 46810
25 
26 In [25]: p.parent()       # 父进程                                                
27 Out[25]: psutil.Process(pid=46810, name='zsh', started='2020-03-30 15:24:07')
28 
29 In [26]: p.children()     # 子进程列表                                          
30 Out[26]: []
31 
32 In [27]: p.status()       # 进程状态                                              
33 Out[27]: 'running'
34 
35 In [28]: p.username()     # 进程用户名                                          
36 Out[28]: 'liuyouyuan'
37 
38 In [29]: p.create_time()  # 进程创建时间                                     
39 Out[29]: 1586241277.044256
40 
41 In [30]: p.terminal()     # 进程终端                                            
42 Out[30]: '/dev/ttys003'
43 
44 In [31]: p.cpu_times()    # 进程使用的CPU时间                                  
45 Out[31]: pcputimes(user=3.119619328, system=0.63911072, children_user=0.0, children_system=0.0)
46 
47 In [32]: p.memory_info()  # 进程使用的内存                                   
48 Out[32]: pmem(rss=73498624, vms=4479959040, pfaults=28482, pageins=185)
49 
50 In [33]: p.open_files()   # 进程打开的文件                                    
51 Out[33]: 
52 [popenfile(path='/Applications/Visual Studio Code.app/Contents/Resources/electron.asar', fd=26),
53  popenfile(path='/Applications/Visual Studio Code.app/Contents/Resources/app/node_modules.asar', fd=28),
54  popenfile(path='/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Resources/English.lproj/Localized.rsrc', fd=33)]
55 
56 In [34]: p.connections()  # 进程相关网络连接                                 
57 Out[34]: []
58 
59 In [35]: p.num_threads()  # 进程的线程数量                                   
60 Out[35]: 6
61 
62 In [36]: p.threads()      # 所有线程信息                                         
63 Out[36]: 
64 [pthread(id=1, user_time=3.008698, system_time=0.4743),
65  pthread(id=2, user_time=0.008189, system_time=0.028232),
66  pthread(id=3, user_time=3.7e-05, system_time=2.4e-05),
67  pthread(id=4, user_time=3.8e-05, system_time=2.5e-05),
68  pthread(id=5, user_time=3.3e-05, system_time=1.6e-05),
69  pthread(id=6, user_time=2e-05, system_time=1.7e-05)]
70 
71 In [37]: p.environ()      # 进程环境变量                                         
72 Out[37]: 
73 {'TMPDIR': '/var/folders/ys/hf5c1mt91qgdq3r803d6qdq80000gn/T/',
74  '__CF_USER_TEXT_ENCODING': '0x1F5:0x19:0x34',
75  'SHELL': '/bin/zsh',
76  ...
77  '_': '/opt/anaconda3/bin/ipython'}
78 
79 In [38]: p.terminate()    # 结束进程                                           
80 [1]    70042 terminated  ipython
81 (base) 

6 参考

https://www.liaoxuefeng.com/wiki/1016959663602400/1183565811281984

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python扩展库psutil用法精要
0、安装与导入psutil pip install psutil import psutil 1、查看CPU信息 >>> psutil.cpu_count() #查看CPU核数 2 >>> psutil.cpu_count(logical=False) #查看CPU物理个数 2 >>> psutil.cpu_percent() #查看CPU使用率 23.4 >>> psutil.cpu_percent(percpu=True) #查看每个CPU的使用率 [18.9, 26.0] >>> psutil.cpu
Python小屋屋主
2018/04/16
1.1K0
开发实践|玩转Python开发工具库psutil
本篇内容介绍了“怎么用Python实现查询CPU和内存”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让我带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
六月暴雪飞梨花
2024/01/25
2170
开发实践|玩转Python开发工具库psutil
psutil获取系统信息
scputimes(user=125.65, nice=20.8, system=243.42, idle=5515413.34, iowait=15.87, irq=0.0, softirq=45.79, steal=0.0, guest=0.0, guest_nice=0.0)
buiu
2021/12/31
1.6K0
python系统信息模块psutil
    psutil模块能够获取系统运行的进程和系统利用率。包括:CPU,内存,磁盘,网络等信息。一般用于系统的监控,分析和限制系统资源和进程的管理。
py3study
2020/01/13
5150
psutil查看系统进程
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134681.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/06
1.5K0
Python标准库:psutil 轻松获取各种系统信息!
今天介绍的是psutil模块,它是一个跨平台库(https://github.com/giampaolo/psutil)。
快学Python
2021/08/09
4.3K0
Python之psutil库的使用
psutil (python system and process utilities) 是一个跨平台的第三方库,能够轻松实现获取系统运行的进程和系统利用率(包扩CPU、内存、磁盘、网络等)信息。它主要用于系统监控、分析、限制系统资源和进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持的操作系统包括:Linux,Windows,macOS,,AIX等等。同时支持python2与python3版本,当前最新版本为5.4.8。
全栈程序员站长
2022/09/05
1.2K0
Python监控服务器利器--psuti
服务器的监控通过安装一些常用的监控软件之外,有时也需要运行一些shell或Python脚本;shell下可以使用系统自带的ps/free/top/df等shell命令,Python可以调用subprocess等模块来运行shell命令,不过这么做就比较麻烦。这里有一个比较好用的第三方模块:psutil。 psutil是一个跨平台的库,用于在Python中检索有关运行进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。它主要用于系统监视,分析,限制进程资源和运行进程的管理。它实现了UNIX命令行工具提供的许多功能,例如:ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice,ionice,iostat,iotop,uptime,pidof,tty,taskset,pmap。 psutil目前支持以下平台:
py3study
2020/01/07
8230
获取Linux系统性能信息(Python)
Python 2.7.5 (default, Jul 13 2018, 13:06:57)
子润先生
2021/07/12
1.7K0
Python学习之旅(二十九)
PIL(Python Imaging Library):提供了强大的图像操作功能,可以通过简单的代码完成复杂的图像处理,是Python平台事实上的图像处理库,支持Python 2.7以及更低的版本
py3study
2020/01/20
4300
运维Python自动化之路:基础信息模块之psutil模块
系统信息的收集,对于服务质量的把控、服务的监控等来说是非常重要的组成部分,甚至是核心的基础支持部分。
释然IT杂谈
2022/10/27
2.3K0
运维Python自动化之路:基础信息模块之psutil模块
Go之获取系统性能指标 - goPsutil
psutil是一个跨平台进程和系统监控的Python库,而gopsutil是其Go语言版本的实现。 Go语言部署简单、性能好的特点非常适合做一些诸如采集系统信息和监控的服务,本文介绍的gopsutil库是知名Python库:psutil的一个Go语言版本的实现。
iginkgo18
2021/01/05
3.5K0
psutil - Python中用于进程和系统监控的跨平台库
psutil(进程和系统实用程序)是一个跨平台库,用于检索 Python 中运行的进程和系统利用率(CPU、内存、磁盘、网络、传感器)的信息。
wangmcn
2023/11/22
2540
psutil - Python中用于进程和系统监控的跨平台库
Python常用库-Psutil
介绍一个处理进程的实用工具,这个是一个第三方库。应用主要有类似ps、cd、top,还有查看硬盘、内存使用情况等。
叉叉敌
2019/02/11
1.6K0
Python常用库-Psutil
Python获取Linux或Window
    前段时间写了一篇博文名为《利用Python脚本获取Windows和Linux的系统版本信息》,本篇博文利用这篇文章中的知识提供一个增强版本的获取信息的Python脚本。执行后,看起来就像登录Ubuntu Linux系统时提示的motd信息一样,可以看到:
py3study
2020/01/07
2.7K0
Python获取Linux或Window
Python 自动化系统信息收集
psutil能够轻松实现获取系统运行的进程和系统利用率包括(CPU,内存,磁盘 和网络)等。主要用于系统监控。对于系统维护来说是个不错的模块。
微软技术分享
2022/12/28
1.2K0
python psutil
psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。
孙杰
2019/10/29
7440
python功能笔记——远程监控
python 监控远程主机(根据慕课网手打) 1.获取要监控的计算机的信息 os.system('command') 直接输出结果 os.popen('command') 返回一个文件 open('/proc/file') cpuinfo文件 保存的cpu信息
py3study
2020/01/08
1K0
005 一步步教你Python Devops系统监控数据采集
psutil 是一个跨平台的库,用于在 Python 中检索系统运行时信息和操作。它可以用来监控系统资源的使用情况,如 CPU、内存、磁盘 I/O、网络等。以下是基于 psutil 开发一个简单监控工具的步骤:
苦叶子
2024/04/14
2650
005 一步步教你Python Devops系统监控数据采集
python psutil 获取命令历史_python之psutil
psutil是个跨平台库,能够轻松实现获取系统运行的进程和系统利用率,包括CPU、内存、磁盘、网络等信息。
全栈程序员站长
2022/09/05
4800
相关推荐
Python扩展库psutil用法精要
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验