Python获取CPU使用率、内存使用率、网络使用状态
2014-03-14 11:26
417 查看
注:需要安装psutil库,详细: http://code.google.com/p/psutil/
源代码如下:
源代码如下:
#!/usr/bin/env python # # $Id: iotop.py 1160 2011-10-14 18:50:36Z g.rodola@gmail.com $ # # Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Transplant to NT system by hui.wang, 2012-11-28 # Add function of get cpu state and get memory state by hui.wang,2012-11-29 """ Shows real-time network statistics. Author: Giampaolo Rodola' <g.rodola@gmail.com> """ import sys import os import atexit import time import psutil print "Welcome,current system is",os.name," 3 seconds late start to get data..." time.sleep(3) line_num = 1 def print_line(str): print str #function of Get CPU State def getCPUstate(interval=1): return (" CPU: " + str(psutil.cpu_percent(interval)) + "%") #function of Get Memory def getMemorystate(): phymem = psutil.phymem_usage() buffers = getattr(psutil, 'phymem_buffers', lambda: 0)() cached = getattr(psutil, 'cached_phymem', lambda: 0)() used = phymem.total - (phymem.free + buffers + cached) line = " Memory: %5s%% %6s/%s" % ( phymem.percent, str(int(used / 1024 / 1024)) + "M", str(int(phymem.total / 1024 / 1024)) + "M" ) return line def bytes2human(n): """ >>> bytes2human(10000) '9.8 K' >>> bytes2human(100001221) '95.4 M' """ 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 '%.2f B' % (n) def poll(interval): """Retrieve raw stats within an interval window.""" tot_before = psutil.network_io_counters() pnic_before = psutil.network_io_counters(pernic=True) # sleep some time time.sleep(interval) tot_after = psutil.network_io_counters() pnic_after = psutil.network_io_counters(pernic=True) # get cpu state 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): os.system("cls") """Print stats on screen.""" #print current time #cpu state #memory print_line(time.asctime()+" | "+cpu_state+" | "+memory_state) # totals print_line(" NetStates:") print_line("total bytes: sent: %-10s received: %s" \ % (bytes2human(tot_after.bytes_sent), bytes2human(tot_after.bytes_recv)) ) print_line("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_line("") 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_line(templ % (name, "TOTAL", "PER-SEC")) print_line(templ % ( "bytes-sent", bytes2human(stats_after.bytes_sent), bytes2human(stats_after.bytes_sent - stats_before.bytes_sent) + '/s', )) print_line(templ % ( "bytes-recv", bytes2human(stats_after.bytes_recv), bytes2human(stats_after.bytes_recv - stats_before.bytes_recv) + '/s', )) print_line(templ % ( "pkts-sent", stats_after.packets_sent, stats_after.packets_sent - stats_before.packets_sent, )) print_line(templ % ( "pkts-recv", stats_after.packets_recv, stats_after.packets_recv - stats_before.packets_recv, )) print_line("") try: interval = 0 while 1: args = poll(interval) refresh_window(*args) interval = 1 except (KeyboardInterrupt, SystemExit): pass
相关文章推荐
- Python获取CPU使用率、内存使用率、网络使用状态
- Python获取CPU使用率、内存使用率、网络使用状态
- Python获取CPU使用率、内存使用率、网络使用状态
- Python获取CPU使用率、内存使用率、网络使用状态
- Python获取CPU使用率、内存使用率、网络使用状态
- Python获取CPU、内存使用率以及网络使用状态代码
- python自动化运维学习------使用模块psutil获取系统cpu、内存、磁盘、网络、进程等信息
- python windows下通过SSH获取linux系统cpu、内存、网络使用情况
- python获取linux系统内存、cpu、网络使用情况
- 转载:python获取linux系统内存、cpu、网络使用情况
- python获取linux系统内存、cpu、网络使用情况
- Linux Java 获取CPU使用率,内存使用率,磁盘IO,网络带宽使用率等等
- 使用.NET FrameWork获取CPU,内存使用率以及磁盘空间
- Python如何使用urllib2获取网络资源
- python获取CPU,内存,磁盘使用率
- python之psutil模块(获取系统性能信息(CPU,内存,磁盘,网络)
- linux系统使用python获取内存使用信息脚本分享
- python利用WMI等监控获取windows状态如CPU、内存、硬盘等信息
- 【Java】【系统状态】获取系统信息(包括操作系统、jvm、cpu、内存、硬盘、网络、io等)
- python使用psutil模块获取系统状态