Python获取CPU使用率、内存使用率、网络使用状态
2016-11-18 17:26
459 查看
原文地址:http://blog.csdn.net/bubu8633/article/details/8258342
注:需要安装psutil库
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
#function of Get CPU State;
def getCPUstate(interval=1):
return (" CPU: " + str(psutil.cpu_percent(interval)) + "%")
#function of Get Memory
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.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.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 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):
if os.name == 'nt':
os.system("cls")
else:
os.system("clear")
"""Print stats on screen."""
#print current time #cpu state #memory
print(time.asctime()+" | "+cpu_state+" | "+memory_state)
# totals
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
注:需要安装psutil库
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
#function of Get CPU State;
def getCPUstate(interval=1):
return (" CPU: " + str(psutil.cpu_percent(interval)) + "%")
#function of Get Memory
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.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.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 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):
if os.name == 'nt':
os.system("cls")
else:
os.system("clear")
"""Print stats on screen."""
#print current time #cpu state #memory
print(time.asctime()+" | "+cpu_state+" | "+memory_state)
# totals
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获取CPU使用率、内存使用率、网络使用状态
- Python获取CPU使用率、内存使用率、网络使用状态
- Python获取CPU使用率、内存使用率、网络使用状态
- Python获取CPU使用率、内存使用率、网络使用状态
- Python获取CPU使用率、内存使用率、网络使用状态
- Python获取CPU、内存使用率以及网络使用状态代码
- 转载:python获取linux系统内存、cpu、网络使用情况
- python获取linux系统内存、cpu、网络使用情况
- python获取linux系统内存、cpu、网络使用情况
- python自动化运维学习------使用模块psutil获取系统cpu、内存、磁盘、网络、进程等信息
- python windows下通过SSH获取linux系统cpu、内存、网络使用情况
- Linux Java 获取CPU使用率,内存使用率,磁盘IO,网络带宽使用率等等
- Windows下用C语言获取进程cpu使用率,内存使用,IO情况
- 编程获取系统当前cpu使用率/空闲率 、内存使用率、剩余可用内存 Nvidia GPU的利用率等
- 获取当前进程的CPU使用率和内存使用
- 转linux c程序获取cpu使用率及内存使用情况
- Python如何使用urllib2获取网络资源
- 【转】编程获取系统当前cpu使用率/空闲率 、内存使用率、剩余可用内存等
- Python如何使用urllib2获取网络资源