Python获取CPU使用率、内存使用率、网络使用状态

原创 2015年07月10日 15:34:00

参考文章:http://blog.csdn.net/bubu8633/article/details/8258342

由于psutil已更新到3.0.1版本,最新的代码如下:

#!/usr/bin/env python

import os
import time
import sys
import atexit
import psutil

#print "Welcome,current system is",os.name," 3 seconds late start to get data"
time.sleep(3)

line_num = 1

#function of Get cpu state
def getCPUstate(interval=1):
    return (" CPU:"+str(psutil.cpu_percent(interval))+"%")

def getMemorystate():
    phymem = psutil.virtual_memory()
    line = "Memory: %5s%% %6s/%s"%(
            phymem.percent,
            str(int(phymem.used/1024/1024))+"M",
            str(int(phymem.total/1024/1024))+"M"
            )
    return line
def bytes2human(n):
    """
    >>>bytes2human(10000)
    '9.8k'
    >>>bytes2human(100001221)
    '95.4M'
    """
    symbols = ('K','M','G','T','P','E','Z','Y')
    prefix = {}
    for i ,s in enumerate(symbols):
        prefix[s] = 1 << (i+1)*10
    for s in reversed(symbols):
        if n >=prefix[s]:
            value = float(n) / prefix[s]
            return '%.2f %s'%(value,s)
    return '%.2fB'%(n)
def poll(interval):
    """Retrieve raw stats within an interval window."""
    tot_before = psutil.net_io_counters()
    pnic_before = psutil.net_io_counters(pernic=True)
    #sleep some time
    time.sleep(interval)
    tot_after = psutil.net_io_counters()
    pnic_after = psutil.net_io_counters(pernic=True)
    #get cpu stats
    cpu_state = getCPUstate(interval)
    #get memory
    memory_state = getMemorystate()
    return (tot_before,tot_after,pnic_before,pnic_after,cpu_state,memory_state)
def refresh_window(tot_before,tot_after,pnic_before,pnic_after,cpu_state,memory_state):
    """print stats on screen"""
    #print current time,cpu state,memory
    print (time.asctime() +" | "+cpu_state+" | "+
            memory_state)
    #total
    print(" NetStates:")
    print(" total bytes:  sent: %-10s received: %s"%(\
        bytes2human(tot_after.bytes_sent), \
        bytes2human(tot_after.bytes_recv)))
    print( " total packets:  sent: %-10s received: %s"%(\
        tot_after.packets_sent,\
        tot_after.packets_recv))
    # per-network interface details: let's sort network interfaces so    
    # that the ones which generated more traffic are shown first
    print( " ")
    nic_names = pnic_after.keys()
    #nic_names.sort(key=lambda x: sum(pnic_after[x]), reverse=True)
    for name in nic_names:
        stats_before = pnic_before[name]
        stats_after = pnic_after[name]
        templ = "%-15s %15s %15s"    
        print(templ % (name, "TOTAL", "PER-SEC"))  
        print(templ % (
            "bytes-sent",    
            bytes2human(stats_after.bytes_sent),  
            bytes2human(stats_after.bytes_sent - stats_before.bytes_sent) +
            '/s', 
            ))
        print(templ % (    
            "bytes-recv",    
            bytes2human(stats_after.bytes_recv),    
            bytes2human(stats_after.bytes_recv- stats_before.bytes_recv)
            + '/s',    
            ))
        print(templ % ( 
            "pkts-sent",
            stats_after.packets_sent,
            stats_after.packets_sent - stats_before.packets_sent,
            ))
        print((templ %(
            "pkts-recv", 
            stats_after.packets_recv,
            stats_after.packets_recv - stats_before.packets_recv,
            )))
        print( " ")
try:
    interval = 0
    while 1:
        args = poll(interval)
        refresh_window(*args)
        interval = 1
except (KeyboardInterrupt,SystemExit):
    pass

Python多线程学习(三、生产者与消费者)

    生产者与消费者问题是典型的同步问题。这里简单介绍两种不同的实现方法。1,  条件变量import threadingimport timeclass Producer(threading.Th...

Python获取CPU使用率、内存使用率、网络使用状态

注:需要安装psutil库 源代码如下: #!/usr/bin/env python # # $Id: iotop.py 1160 2011-10-14 18:50:36Z g.rodola@gmai...
  • bubu8633
  • bubu8633
  • 2012年12月05日 08:45
  • 38799

Python获取CPU使用率、内存使用率、网络使用状态

注:需要安装psutil库 源代码如下: #!/usr/bin/env python # # $Id: iotop.py 1160 2011-10-14 18:50:36Z g.rodola@gm...

Python获取CPU使用率、内存使用率、网络使用状态

原文地址:http://blog.csdn.net/bubu8633/article/details/8258342 注:需要安装psutil库 import sys import os ...

Python获取CPU使用率、内存使用率、网络使用状态

Python获取CPU使用率、内存使用率、网络使用状态 分类: Python 2012-12-05 08:45 6387人阅读 评论(2) 收藏 举报 注:需要安装p...

linux下如何获取cpu的利用率,内存使用率,网络吞吐率

"proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。" ...

收集物理cpu 内存使用率 网络带宽流量

问题: 1.  收集所有物理服务器型号,配置信息(CPU型号,数量,内存大小,数量,(物理机可扩容的大小)可扩容量,网卡的型号,数量) 2.  每间隔10分钟收集所有物理服务器CPU、内存...

C#获取特定进程CPU和内存使用率

C#获取特定进程CPU和内存使用率 首先是获取特定进程对象,可以使用Process.GetProcesses()方法来获取系统中运行的所有进程,或者使用Process.GetCurrentPro...
  • minsenwu
  • minsenwu
  • 2015年02月10日 15:28
  • 13287

获取CPU,内存使用率,磁盘相关信息

CPU信息bool get_cpuoccupy(CPU_OCCUPY *cpust) //对无类型get函数含有一个形参结构体类弄的指针O { FILE *fd; char buff[256...

.NET获取当前程序所在电脑的CPU和内存使用率

using System; using System.Diagnostics; using System.Text; using System.Runtime.InteropServices; n...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python获取CPU使用率、内存使用率、网络使用状态
举报原因:
原因补充:

(最多只允许输入30个字)