Python获取CPU、内存使用率以及网络使用状态代码
作者:laozhang 发布时间:2023-03-14 22:43:36
标签:Python,CPU使用率,内存使用率,网络状态
由于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


猜你喜欢
- 在实际开发中,无论是做PC端、WebApp端还是微信公众号等类型的项目的时候,或多或少都会涉及到微信相关的开发,最近公司项目要求实现微信网页
- 最近很多小伙伴在尝鲜chatGPT,使用中遇到网站的1020的错误码,博主也遇到了相似的问题,不同的人运行环境不一样,可能解决方案不一样,接
- 本文总结分析了selenium2.0中常用的python函数。分享给大家供大家参考,具体如下:新建实例driver = webdriver.
- 在数据分析中有时候需要自己定义分组规则 这里简单介绍一下用一个字典实现分组people=DataFrame( np.random
- 本人野生程序员一名,了解了一些微服务架构、前后端分离、SPA的知识后就想试试做点什么东西。之前一直做后端,前端只是有基础知识。之前学习过an
- 写给新手的话pycharm是什么,为什么让我指定interpreter记事本最开始写C语言代码的时候,人们使用vi,记事本等软件写代码,写完
- 1.直接使用dlib安装dlib方法:Win10安装dlib GPU过程详解思路:1、使用dlib.get_frontal_fac
- 我们知道,做web开发,在调试时需要反复启动整个工程,那么上一个工程占用的端口,在下一次工程启动时就不能用了,因为占用的端口没有释放,但是手
- 在制作表单的时候,我们往往用CSS来重新定义表单元素(如输入框、按钮等)的样式,以便看起来更加美观。而表单中的很多不同元素(如输入框、提交按
- 1. 引言因为在学习遗传算法路径规划的内容,其中遗传算法中涉及到了种群的初始化,而在路径规划的种群初始化中,种群初始化就是先找到一条条从起点
- 尽管数组在 Javascript 中是对象,但是不建议使用 for in 循环来遍历数组,实际上,有很多理由来阻止我们对数组使用 for i
- 我的大体思路是:时时监听鼠标的坐标,当鼠标移动时,透明层随着鼠标移动,大图片相对透明层的移动而移动。不废话了,看代码。 <!DOCTY
- Python FastAPI请求参数传递FastAPI多参数传递类型FastAPI通过模板来匹配URL中的参数列表,大致有如下三类方式传递参
- 本文实例讲述了python简单分割文件的方法。分享给大家供大家参考。具体如下:有的网站在上传文件时对文件大小有限制,因此可以将大文件分割成多
- scipy.optimize函数使用简单使用scipy.optimize,训练逻辑回归损失函数,得到权值。scipy.optimize模块包
- 简介该篇文章主要是介绍如何使用MyBatis对Mysql数据库进行单表操作(对于mybatis的下载以及配置文件的作用和具体信息,我在上一篇
- 支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行
- 只是做笔记,没什么!! 代码如下:--创建测试表 CREATE TABLE [dbo].[Student]( [ID] [int
- 集合(Set)集合是无序和无索引的集合。在 Python 中,集合用花括号编写。实例创建集合:thisset = {"apple&
- 日前,Mozilla 的 Arun Ranganathan 向 W3C 提交了一个草案,旨在推出一个 JavaScript API,让 Ja