由于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
以上就是本次更新后的实例代码,大家可以一起测试下,如果有其他问题可以在下方的留言区讨论,感谢你对小牛知识库的支持。
问题内容: 我正在尝试使用Java获取当前正在运行的Java虚拟机使用的CPU百分比。我的研究指出我要使用该类。通过在线示例,我编写了以下内容: 在两台计算机上对此进行测试后,我无法停止获得两个调用的结果。我尝试通过各种方法使用Java 7和6的64位和32位版本运行此代码。不过,我得到的是打印出的该,根据的Javadoc, 我不知道还要在这里做什么。获取CPU负载至关重要,我想避免使用其他库,例
问题内容: 我正在使用Sigar来获取应用程序服务器中当前正在运行的JVM的CPU使用率,并将其存储为该数据的历史视图,但是我总是获得0%的CPU百分比。 同时,我保持visualVM处于打开状态以监视CPU使用率,并且看到visualVM中的CPU%定期更改,而使用Sigar总是报告0%。 这是我定期运行的代码: 该代码始终给出0%。 在这种情况下,我在做什么错呢?如何让Sigar显示类似于Vi
问题内容: 我发现这篇较旧的文章“ 如何在Java中监视计算机的 Cpu内存和磁盘使用情况”,并想问一下Java 7中是否有新内容。我想获取当前的CPU- ,我的应用程序的RAM,netzwork和netzwork的使用情况。它必须适用于linux(mac)和Windows。数据不能太详细,三个值就足够了(cpu:10%,Ram 4%,Network 40%)。如果数据仅用于应用程序而不是整个操作
问题内容: 如何使用Python检索CPU的温度?(假设我在Linux上) 问题答案: py-cputemp似乎可以胜任。
问题内容: 我正在使用Python 3.1,如果有帮助的话。 无论如何,我正在尝试获取此网页的内容。我用Google搜索了一下,尝试了不同的方法,但是它们没有用。我猜想这应该是一件容易的事,但是…我做不到。:/。 urllib,urllib2的结果: 谢谢杰森。:D。 问题答案: 由于您使用的是Python 3.1,因此需要使用新的Python 3.1 API 。 尝试: 或者,看起来您正在使用P
问题内容: 我的Go程序需要知道所有系统和用户进程的当前cpu使用率。 我如何获得? 问题答案: 我遇到了类似的问题,但从未找到轻量级的实现。这是我的解决方案的精简版,可以回答您的特定问题。我按照tylerl的建议对文件进行采样。您会注意到,我在两次采样之间等待3秒以匹配top的输出,但是在1或2秒的情况下我也取得了不错的结果。我在go例程中的循环中运行类似的代码,然后在需要其他go例程时访问cp