可使用的工具包:
安装手段:
psutil是Python的第三方模块,专门用来获取操作系统以及硬件相关的信息,比如:CPU、磁盘、网络、内存等等。
获取 CPU 的逻辑核心数量
1 2 3 4 5 6 |
|
获取 CPU 的物理核心数量
1 2 |
|
结果为 6,说明是 6 核超线程;如果 CPU 的物理核心数和逻辑核心数相等,也为 12,则说明是 12 核非超线程。
统计 CPU 的用户/系统/空闲时间
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
该函数返回的是一个 namedtuple,后面凡是结构长的和这里类似的,都是 namedtuple。补充一下,如果你的程序中需要创建大量的对象,并且该对象的属性固定不变,那么不妨使用 namedtuple,相比使用字典,能节省大量空间。
查看 CPU 的使用率
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
查看 CPU 的统计信息
包括上下文切换、中断、软中断,以及系统调用次数等等。
1 2 3 4 5 6 7 8 9 |
|
查看 CPU 的频率
1 2 3 4 5 6 |
|
查看内存使用情况
1 2 3 4 5 6 7 8 9 10 |
|
total 表示总内存,available 表示可用内存,percent 表示内存使用率,used 表示已使用的内存,free 表示可用内存。
所以 available 加上 used 等于 total,used 除以 total 再乘以 100 等于 percent。
查看交换内存信息
1 2 3 4 5 6 7 8 9 10 11 |
|
查看磁盘分区、磁盘使用率和磁盘 IO 信息
1 2 3 4 5 6 7 8 |
|
可以看到一共有三个盘符,fstype 表示文件系统类型,这里是 NTFS;opts 中的 rw 表示可读写。
该函数还可以接收一个参数 all,默认为 False。如果指定为 True,在 Linux 上返回的内容还会包含 /proc 等特殊文件系统的挂载信息。由于我这里是 Windows,所以两者没区别。
查看某个磁盘使用情况
1 2 3 4 5 6 7 8 9 |
|
查看磁盘 IO 统计信息
1 2 3 4 5 6 7 8 9 10 11 |
|
以上返回的是所有磁盘加起来的统计信息,我们可以指定 perdisk=True,分别列出每一个分区的统计信息。
查看网卡的网络 IO 统计信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
|
查看网络接口信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
查看当前机器的网络连接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
是不是很方便呢?在 Linux 中有两个命令可以做到这一点,分别是 netstat 和 ss。另外该函数会返回所有的连接信息,所以当连接数很多的时候,会占用较高的内存。
查看当前登录的用户信息
1 2 3 4 5 6 7 |
|
查看系统的启动时间
1 2 3 4 5 6 7 |
|
psutil 还提供了很多和进程管理相关的功能函数,非常的丰富,我们来看一下。
查看当前存在的所有进程的 pid
1 2 3 4 5 6 |
|
查看某个进程是否存在
1 2 3 4 |
|
返回所有进程(Process)对象组成的迭代器
1 2 3 4 5 6 7 8 9 |
|
根据 pid 获取一个进程对应的 Process 对象
1 2 3 4 5 6 7 8 9 |
|
我们说根据 pid 可以获取一个进程对应的 Process 对象,而这个对象里面包含了该进程的全部信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
|
我们还可以调用 psutil.test 来模拟 ps 命令。
1 2 3 |
|
psutil:获取硬件、网络相关信息,以及管理进程