天天看点

Python系统性能信息模块

模块:psutil

psutil是一个跨平台库,可以很轻松的为我们实现获取系统运行的进程和资源利用率等信息。

功能:主要是为了系统监控

安装:

1

2

3

4

<code>wget https:</code><code>//pypi</code><code>.python.org</code><code>/packages/source/p/psutil/psutil-2</code><code>.0.0.</code><code>tar</code><code>.gz --no-check-certificate</code>

<code>tar</code> <code>-zxvf psutil-2.0.0.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>psutil-2.0.0</code>

<code>python setup.py </code><code>install</code>

CPU利用率主要包括以下几部分CPU信息:

User time,执行用户进程的时间百分比

System time,执行内核进程和中断的时间百分比

Wait IO,由于IO等待而使CPU处于idle(空闲)状态的时间百分比

Idle,CPU处于idle状态的时间百分比

Psutil.cpu_times() 使用方法:

5

<code>import</code> <code>psutil</code>

<code>psutil.cpu_times(percpu</code><code>=</code><code>True</code><code>)    </code><code># 使用cpu_times 方法获取CPU完整信息,需要显示所有逻辑CPU信息,percpu = True可选</code>

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

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

<code>psytil.cpu_count(logical</code><code>=</code><code>False</code><code>)  </code><code># 获取CPU 的物理个数</code>

内存信息主要包括以下几个部分:内存信息:

Total(内存总数)

Used(已使用的内存数)

Free(空闲内存数)

Buffers(缓冲使用数)

Cache(缓存使用数)

Swap(交换分区使用数)

Psutil.virtual_memory()和psutil.swap_memory() 使用方法:

6

<code>mem</code><code>=</code><code>psutil.virtual_memory() </code><code># 获取内存完整信息</code>

<code>print</code><code>(mem)</code>

<code>mem.total                   </code><code># 获取内存总数</code>

<code>mem.free                    </code><code># 获取空闲内存数</code>

<code>psutil.swap_memory()        </code><code># 获取swap分区信息</code>

磁盘信息主要包括以下几个部分:磁盘信息:

Read_count(读IO数)

Write_time(写IO数)

Read_bytes(IO读字节数)

Read_time(磁盘读时间)

Write_time(磁盘写时间)

Psutil.disk_io_counters() 使用方法:

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

<code>psutil.disk_usage(</code><code>'/'</code><code>)                </code><code># 获取分区(参数) 使用情况</code>

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

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

网络信息主要包括以下几个部分:网络信息:

Bytes_sent(发送字节数)

Bytes_recv(接收字节数)

Packets_sent(发送数据包数)

Packets_recv(接收数据包数)

Psutil.net_io_counters() 使用方法:

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

<code>psutil.net_io_counters(pernic</code><code>=</code><code>True</code><code>) </code><code># 输出每个网络接口的IO信息</code>

其他系统信息:

<code>import</code> <code>psutil,datetime</code>

<code>psutil.users()                                                                    </code><code># 返回当前登录系统的用户信息</code>

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

<code>datetime.datetime.formtimestamp(psutil.boot_time()).strftime(</code><code>'%Y-%m-%d %H:%M:%S'</code><code>) </code><code># 转换成自然时间格式</code>

<code></code><code></code>

<code></code><code>本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/2050032,如需转载请自行联系原作者</code>

<code></code>