Python怎么利用psutil实现获取硬件,网络和进程信息


本篇内容主要讲解“Python怎么利用psutil实现获取硬件,网络和进程信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么利用psutil实现获取硬件,网络和进程信息”吧!Python 有一个第三方模块叫 psutil,专门用来获取操作系统以及硬件相关的信息,比如:CPU、磁盘、网络、内存等等。下面来看一下它的用法,不过在使用之前需要先安装,直接 pip install psutil 即可。获取 CPU 的逻辑核心数量获取 CPU 的物理核心数量结果为 6,说明是 6 核超线程;如果 CPU 的物理核心数和逻辑核心数相等,也为 12,则说明是 12 核非超线程。统计 CPU 的用户/系统/空闲时间该函数返回的是一个 namedtuple,后面凡是结构长的和这里类似的,都是 namedtuple。补充一下,如果你的程序中需要创建大量的对象,并且该对象的属性固定不变,那么不妨使用 namedtuple,相比使用字典,能节省大量空间。查看 CPU 的使用率查看 CPU 的统计信息包括上下文切换、中断、软中断,以及系统调用次数等等。查看 CPU 的频率查看内存使用情况total 表示总内存,available 表示可用内存,percent 表示内存使用率,used 表示已使用的内存,free 表示可用内存。所以 available 加上 used 等于total,used 除以 total 再乘以 100 等于 percent。查看交换内存信息说到内存,有免费云主机域名物理内存、交换内存、虚拟内存,这三者有什么区别呢?用大白话解释就是:1)物理内存是实际的内存条提供的临时数据存储空间,在 Windows 上右键点击计算机,再点击属性时,上面显示的安装内存(RAM)就是电脑的物理内存。这些内存是实际存在的,在你不给机器增加内存条的时候是不会改变的。2)交换内存通常在页面调度和交换进程数据时使用,相当于在进行内存整理的时候,会先把部分数据放在硬盘的某块区域。类似我们整理衣柜,衣服一多直接整理会很麻烦,因此会先把部分衣服拿出来放在其它地方,等衣柜里的衣服整理完了,再把放在其它地方的衣服拿回来。这个其它地方在计算机中则代表硬盘的某块区域,也就是我们所说的交换区。通常使用交换内存是因为物理内存不足导致的,正所谓衣柜,如果足够大的话就没必要拿出部分衣服放在其它地方, 直接在衣柜里就能解决了。3)最后是虚拟内存,当操作文件,可执行程序等等,那么首先要把它们从磁盘读取到内存中,因此 CPU 除了自己那一部分小小的空间外,要想操作数据,只能操作内存里的数据。但是当内存不够了,那么会在硬盘上开辟一份虚拟内存,将物理内存里的部分数据放在虚拟内存当中。硬盘的空间很大,即使普通电脑安装的固态硬盘也有一百个 G,因此可以拿出一部分充当虚拟内存。不过虚拟内存虽说是内存,但毕竟在硬盘上,速度和 CPU 直接从物理内存里读取数据相差甚远。这也是为什么要将经常被访问的热点数据放在 Redis 缓存里,而不是放在硬盘或者数据库上。查看磁盘分区、磁盘使用率和磁盘 IO 信息可以看到一共有三个盘符,fstype 表示文件系统类型,这里是 NTFS;opts 中的 rw 表示可读写。该函数还可以接收一个参数 all,默认为 False。如果指定为 True,在 Linux 上返回的内容还会包含 /proc 等特殊文件系统的挂载信息。由于我这里是 Windows,所以两者没区别。查看某个磁盘使用情况查看磁盘 IO 统计信息read_count :读次数write_count:写次数read_bytes:读的字节数write_bytes:写的字节数read_time:读时间write_time:写时间以上返回的是所有磁盘加起来的统计信息,我们可以指定 perdisk=True,分别列出每一个分区的统计信息。查看网卡的网络 IO 统计信息查看网络接口信息查看当前机器的网络连接是不是很方便呢?在 Linux 中有两个命令可以做到这一点,分别是 netstat 和 ss。另外该函数会返回所有的连接信息,所以当连接数很多的时候,会占用较高的内存。查看当前登录的用户信息查看系统的启动时间psutil 还提供了很多和进程管理相关的功能函数,非常的丰富,我们来看一下。查看当前存在的所有进程的 pid查看某个进程是否存在返回所有进程(Process)对象组成的迭代器根据 pid 获取一个进程对应的 Process 对象我们说根据 pid 可以获取一个进程对应的 Process 对象,而这个对象里面包含了该进程的全部信息。我们还可以调用 psutil.test 来模拟 ps 命令。输出如下:它是怎么做的呢?还记得我们之前说的 process_iter 吗?会返回所有进程的 Process 对象,直接依次输出里面的信息即可。同理,我们也可以通过 process_iter 找到某一个进程对应的进程 id。有了这个操作之后,我们便可以找到对应的进程,然后借助操作系统的 kernal 修改进程内部的数据。到此,相信大家对“Python怎么利用psutil实现获取硬件,网络和进程信息”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: node中的stream有哪些类型

本篇内容介绍了“node中的stream有哪些类型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! node stream有4种类型:1、Readable(可读流…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 03/22 17:31
Next 03/22 17:32

相关推荐