树莓派可以作为一个小型电脑,但是它不能像windows一样使用任务管理器查看当前资源占用情况

一、使用指令查看当前资源状态

  1. 使用top指令
    可以获取当前Cpu使用状态、RAM使用率等信息,但是只能查看,无法长时间运行时保存下来

  2. 使用free指令
    可以获得Mem信息,但是是以byte为单位,需要转换单位

  3. 使用df指令
    可以获得文件系统占用的详情

二、用Python语言获取资源状态并存储为txt文件

import os
import time
import logging# Return CPU temperature as a character string
def  getCPUtemperature():res  = os.popen( 'vcgencmd measure_temp' ).readline()return (res.replace( "temp=" ," ").replace(" 'C\t "," "))# Return RAM information (unit=kb) in a list
# Index 0: total RAM
# Index 1: used RAM
# Index 2: free RAM
def  getRAMinfo():p  = os.popen( 'free' )i  = 0while  1 :i  = i  + 1line  = p.readline()if  i == 2 :return (line.split()[ 1 : 4 ])# Return % of CPU used by user as a character string
def  getCPUuse():return ( str (os.popen( "top -n1 | awk '/Cpu\(s\):/ {print $2}'" ).readline().strip()))# Return information about disk space as a list (unit included)
# Index 0: total disk space
# Index 1: used disk space
# Index 2: remaining disk space
# Index 3: percentage of disk used
def  getDiskSpace():p = os.popen( "df -h /" )i = 0while 1 :i  = i  + 1line  = p.readline()if i == 2 :return (line.split()[ 1 : 5 ])def get_info():# CPU informatiomCPU_temp  = getCPUtemperature()CPU_usage  = getCPUuse()# RAM information# Output is in kb, here I convert it in Mb for readabilityRAM_stats  = getRAMinfo()RAM_total  = round ( int (RAM_stats[ 0 ])  / 1024 , 1 )RAM_used  = round ( int (RAM_stats[ 1 ])  / 1024 , 1 )RAM_free  = round ( int (RAM_stats[ 2 ])  / 1024 , 1 )# Disk informationDISK_stats  = getDiskSpace()DISK_total  = DISK_stats[0]DISK_used  = DISK_stats[1]DISK_left = DISK_stats[2]DISK_perc  = DISK_stats[3]logging.info("Local Time {timenow} \n""CPU Temperature ={CPU_temp}""CPU Use = {CPU_usage} %\n\n""RAM Total = {RAM_total} MB\n""RAM Used = {RAM_used} MB\n""RAM Free = {RAM_free} MB\n\n""DISK Total Space = {DISK_total}B\n""DISK Used Space = {DISK_used}B\n""DISK Left Space = {DISK_left}B\n""DISK Used Percentage = {DISK_perc}\n""".format(timenow = time.asctime(time.localtime(time.time())),CPU_temp = CPU_temp,CPU_usage = CPU_usage,RAM_total = str(RAM_total),RAM_used = str(RAM_used),RAM_free = str(RAM_free),DISK_total = str(DISK_total),DISK_used = str(DISK_used),DISK_left = str(DISK_left),DISK_perc = str(DISK_perc),))if __name__  == '__main__':# get infologger_file = os.path.join('log_source_info.txt')handlers = [logging.FileHandler(logger_file, mode='w'),logging.StreamHandler()]logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] ''- %(levelname)s: %(message)s',level=logging.INFO,handlers=handlers)# while(1):while(True):get_info()time.sleep(10) # Time interval for obtaining resources

获取的文件形式如下:

三、获得了各种资源状态记录的txt文件,但是统计起来十分麻烦,特别是对于长时间记录的情况。可使用Python对保存的txt文件进行操作,将数据保存到csv,以CPU use和RAM use为例:

import numpy as np
addr = "log_source_info"len_txt = len(open(addr + ".txt",'r').readlines())
len_data = int(len_txt / 13)data = np.zeros([len_txt, 1]).astype(object)
data_i = 0 with open(addr + addr_num + ".txt", "r") as f:for line in f.readlines():line = line.strip('\n')data[data_i] = linedata_i += 1
# print(data)
# CPU_Temp = np.zeros([len_data, 1]).astype(object)
CPU_Use = np.zeros([len_data, 1]).astype(object)
RAM_Total = 2976.6
RAM_Used = np.zeros([len_data, 1]).astype(object)
# CPU_Temp_cont = 0
CPU_Use_cont = 0
RAM_Used_cont = 0cont = 0
for data_t in data:# print(data_t)temp = data_t[0].split(" ")# if cont == 1 :# CPU_Temp[CPU_Temp_cont] = float(temp[3])# CPU_Temp_cont += 1if cont == 2:# find some data missif temp[3] == '%':CPU_Use[CPU_Use_cont] = 0else :# print(temp[3])CPU_Use[CPU_Use_cont] = float(temp[3])CPU_Use_cont += 1elif cont == 5:RAM_Used[RAM_Used_cont] = float(temp[3]) / RAM_TotalRAM_Used_cont += 1# print(data)cont += 1cont %= 13
with open(addr + addr_num + ".csv", "w") as fw :# fw.write("CPU_Temp" + "," + "CPU_Use" + "," + "RAM_Used" + "," + "\n")fw.write("CPU_Use" + "," + "RAM_Used" + "," + "\n")for i in range(len_data):# fw.write(str(CPU_Temp[i,0]) + "," + str(CPU_Use[i,0]) + "," + str(RAM_Used[i,0]) + "\n")fw.write(str(CPU_Use[i,0]) + "," + str(RAM_Used[i,0]) + "\n")

注意!!! 如果需要对CPU温度进行获取到csv文件,需要对txt文件进行处理,使用查找->替换,将

'C

替换为:

 'C  # 也就是在所有的摄氏度前面加一个空格,因为摄氏度为字符无法获得数据格式

树莓派4B监控CPU占用率、内存使用率、磁盘使用量以及CPU温度相关推荐

  1. linux c 获取进程 cpu占用率 内存占用情况

    实例如下: #include <stdio.h> #include <unistd.h> #include <sys/time.h> #include <st ...

  2. 电脑游戏显卡cpu占用率测试软件,游戏运行慢CPU占用率高试下更换显卡驱动试试...

    我们平常在玩一些大型的游戏的时候,经常会遇到运行游戏软件时候电脑速度慢,电脑显示CPU占用率已经达到了100%的情况.其实遇到这类的问题是很正常的,因为我们在玩大型的游戏时需要占用到较多的CPU资源. ...

  3. java cms cpu占用率_cpu使用率过高和jvm old占用过高排查过程

    今天断断续续的收到管理平台的异常报警,cpu占用过高和jvm old占用过高,这个时候赶紧去排查原因,下面记录了我的排查过程,可能里面还有不正确的地方,欢迎各位大佬指正,也欢迎大家关于类似的案例一起交 ...

  4. Linux服务器如何查看CPU占用率、内存占用、带宽占用

    CPU占用率查看命令:top 图中红色部分即为占用百分率,下面是每个进程的CPU占用率,如果服务器是多核CPU可能在下方看到有些进程CPU占用超过100%,这种一般是该进程使用了多核. 内存占用率:f ...

  5. 性能优化之CPU占用率高(一)

    文章部分摘于,点击查看原文​​​​​​​ 当我们cpu使用率高的情况下会出现什么情况? 我们访问程序的速度比较慢,运行时间长. 系统崩溃,无法访问程序. 什么情况会导致Java应用程序的CPU使用率飙 ...

  6. c语言程序会使cpu变高,用 C 语言写个程序,运行时,cpu占用率一直保持50%

    好记性不如烂笔头 --东西太多,脑子永远不够用 问题 用 C 语言写个程序,运行时,cpu占用率一直保持50% 解决方案 一看题目好眼熟!<编程之美>!然而已经记不清楚了,果然东西需要经常 ...

  7. 记一次线上Java程序导致服务器CPU占用率过高的问题排除过程

    1.故障现象 客服同事反馈平台系统运行缓慢,网页卡顿严重,多次重启系统后问题依然存在,使用top命令查看服务器情况,发现CPU占用率过高. 2.CPU占用过高问题定位 2.1.定位问题进程 使用top ...

  8. [原]调试实战——程序CPU占用率飙升,你知道如何快速定位吗?

    前言 如果我们自己的程序的CPU Usage(CPU占用率)飙升,并且居高不下,很有可能陷入了死循环.你知道怎么快速定位并解决吗?今天跟大家分享几种定位方法,希望对你有所帮助. 如何判断是否有死循环? ...

  9. 计算机cpu占用率高,计算机的CPU占用率过高时怎么办

    原标题:计算机的CPU占用率过高时怎么办 如果CPU太高,我该怎么办?我相信很多朋友在使用电脑时,都会遇到电脑突然卡住,而且还会发出很大的噪音,而且电脑表面很热.怎么了?让小编悄悄地告诉你,这其实是因 ...

  10. 服务器中木马病毒处理(CPU占用率很高)处理办法

    参考:https://blog.csdn.net/wkfyynh/article/details/105206990 记录一下这个过程,方便后来人使用.如果遇到权限问题,在所有执行命令前使用sudo ...

最新文章

  1. 在目前大数据时代下,怎么能成为一名合格的数据分析师
  2. 生物技术行业十年回顾:微生物组发展未达预期?
  3. 新注册了一个BLOG
  4. GVIM中文编码出现乱码的解决方案
  5. 窗体跳转传值 1130
  6. JavaWeb笔记(七)FilterListener
  7. 3-算法 鸡兔同笼 简单逻辑
  8. WPF在DLL中读取Resource的方法
  9. apache+nginx 实现动静分离
  10. 袖珍计算器c语言设计源码,VB程序题:编一模拟袖珍计算器的完整程序,界面如下图所示。要求:输入两个操作数和一个操作符,根据操作符决定所做的运算。 VB源码 龚沛曾...
  11. 【AJAX 教程】JS 原生 AJAX 请求
  12. 时区缩写与UTC(GMT)时差对照表
  13. 计算机学院校运会解说词,大学学院运动会入场解说词
  14. 装修心得体会(家装团购实战版)
  15. ios申请企业开发者账号的代理_苹果企业开发者账号如何申请?
  16. 浅谈程序员的英语学习 - 风口上的猪 - 博客园
  17. Linux设置非root用户启动程序
  18. idea全局护眼色绿豆沙
  19. Ansible一键离线安装部署
  20. 【数据结构与算法】深度理解队列(上)

热门文章

  1. 计算机移动硬盘无法访问,移动硬盘无法访问参数不正确的解决方法
  2. Java摇骰子比大小_android 摇骰子比大小app源码
  3. wordpress企业网站模板
  4. 使用Hex view编写脚本生成特定格式刷写文件
  5. 使用adb命令管理应用
  6. is 简写 缩写_为什么e.g.是for example的缩写?它和i.e.是什么关系?
  7. 升级opengl和显卡驱动_到底用不用更新显卡驱动
  8. ios9企业证书提示“未受信任的企业级开发者”解决方法
  9. 手把手教你搭建织女星开发板RISC-V开发环境
  10. 神经网络拓扑图怎么画,神经网络和图神经网络