有一次测试过程需要查看开发板在增加负载的过程是否正常,由于在增加负载的过程中打印温度,打印温度可以通过脚本直接体现出来,负载也可以使用top命令打印出来,但是top命令用于保存脚本就比较费劲了,如何将负载打印到脚本中更适合保存呢?

这个时候我们就用到vmstat命令了。

vmstat命令是最常见的Linux/Unix监控工具,属于sysstat包。可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。

使用vmstat -h  查看帮助

root@localhost:~# vmstat -h

Usage:

vmstat [options] [delay [count]]

Options:

-a, --active           active/inactive memory   显示活跃和非活跃内存

-f, --forks            number of forks since boot   显示从系统启动至今的fork数量

-m, --slabs            slabinfo  显示slabinfo

-n, --one-header       do not redisplay header  只在开始时显示一次各字段名称。

-s, --stats            event counter statistics  显示内存相关统计信息及多种系统活动数量

-d, --disk             disk statistics  显示磁盘相关统计信息。

-D, --disk-sum         summarize disk statistics

-p, --partition <dev>  partition specific statistics  显示指定磁盘分区统计信息

-S, --unit <char>      define display unit  使用指定单位显示。参数有 k 、K 、m 、M,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

-w, --wide             wide output  指定输出宽度

-t, --timestamp        show timestamp

-h, --help     display this help and exit

-V, --version  output version information and exit

For more details see vmstat(8).

不做详细描述,下面只针对这个场景来描述我的使用方法

一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数 如 vmstat 2 1

显示字段说明如下:

类别

项目

含义

说明

Procs(进程)

r

等待执行的任务数

展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。

B

等待IO的进程数量

Memory(内存)

swpd

正在使用虚拟的内存大小,单位k

free

空闲内存大小

buff

已用的buff大小,对块设备的读写进行缓冲

cache

已用的cache大小,文件系统的cache

inact

非活跃内存大小,即被标明可回收的内存,区别于free和active

具体含义见:概念补充(当使用-a选项时显示)

active

活跃的内存大小

具体含义见:概念补充(当使用-a选项时显示)

Swap

si

每秒从交换区写入内存的大小(单位:kb/s)

so

每秒从内存写到交换区的大小

IO

bi

每秒读取的块数(读磁盘)

块设备每秒接收的块数量,单位是block,这里的块设备是指系统上所有的磁盘和其他块设备,现在的Linux版本块的大小为1024bytes

bo

每秒写入的块数(写磁盘)

块设备每秒发送的块数量,单位是block

system

in

每秒中断数,包括时钟中断

这两个值越大,会看到由内核消耗的cpu时间sy会越多

秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目

cs

每秒上下文切换数

CPU(以百分比表示)

us

用户进程执行消耗cpu时间(user time)

us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或其他措施了

sy

系统进程消耗cpu时间(system time)

sys的值过高时,说明系统内核消耗的cpu资源多,这个不是良性的表现,我们应该检查原因。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足

Id

空闲时间(包括IO等待时间)idle

一般来说 us+sy+id=100

wa

等待IO时间(iowait)

wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。

st

实时进程占用cpu的时间(steal time)

最终,我的老化脚本如下

#!/bin/bash

while true

do

vmstat 1 3

echo -----------------------------------

echo "`date +%T`  current temperature : =`cat /sys/class/thermal/thermal_zone0/temp`"

done

使用vmstat 1 3的原因是我如果每次只打印一次,发现经常有cpu数据不正常的情况,后面2次都是正确的,为了保险,我每次打印3次,后面的语句作用是显示当前温度(实际温度*1000)

运行结果如下:

怎么样,是不是比较好用了啊,后面我再不同负载下的对应数据就不在这里显示了。

嵌入式开发板老化过程中显示温度与负载的关系脚本的用法相关推荐

  1. 飞凌嵌入式RK3399开发板使用过程中问题实录及解决思路

    飞凌RK3399的开发板,已经推出了一段时间,根据飞凌嵌入式技术服务部统计的客户问题反馈,整理了一份客户在使用RK3399开发板过程中经常遇到的几个问题,并提供了解决思路. RK3399开发板简介: ...

  2. 驱动开发基础知识必修-(一)嵌入式开发板的启动过程

    驱动开发必修-嵌入式开发板的启动过程 简介 从打印日志入手 熟悉启动过程 1.执行u-boot程序 2.加载linux内核 3.挂载rootfs 4.加载完后 进入终端(命令输入行) UBOOT 1. ...

  3. NVIDIA嵌入式开发板Jetson TX1教程

    开箱 Jetson TX1(现在已经出了TX2)是英伟达公司新出的GPU开发板,拥有世界上先进的嵌入式视觉计算系统,提供高性能.新技术和极佳的开发平台,之前还出过TK1,鉴于TK1比较小,而且性能不如 ...

  4. 【4412嵌入式开发板学习笔记】认识uboot -迅为电子资料分享

    重要说明:这份笔记不是4412开发配套的,是我在网上看视频的时候下载上课老师的笔记后修改的.所以我试了一下笔记上的uboot命令,有些无法使用,可能是uboot版本问题或者文件系统问题.具体原因我目前 ...

  5. 嵌入式开发板CAN通信编程——伺服电机驱动

    嵌入式开发板CAN通信编程--伺服电机驱动 在实际的嵌入式项目开发过程中,若不涉及上位机与开发板的通信传输数据,那最关键的无非就是两个内容,读取传感器的数据并处理,驱动硬件设备工作.传感器数据的读取内 ...

  6. 韦东山嵌入式开发板小结1

    韦东山嵌入式开发板小结1 一.连接[开发板-win10-虚拟机] 1.播放虚拟机VMware的ubuntu 16.04,设置win10和 虚拟机处于同一网段 >>>ipconfig ...

  7. 移植QT5.9到嵌入式开发板(详细)

    移植QT5.9到嵌入式开发板 1.硬件平台 2.软件平台介绍 Linux操作系统 移植的要求 3.源码下载与编译 交叉编译器 4.系统烧录 制作SD卡烧录 命令行烧录 Nandflash启动OK335 ...

  8. 嵌入式开发板硬件操作入门学习0——电路图概念 硬件接口的四大类

    电路图概念 术语: sch:schematic,原理图 PCB:Printed Circuit Board,印刷电路板 footprint:脚印.足迹,表示元件在电路板上的外形 component:元 ...

  9. 【转载】嵌入式开发板通过串口与PC互相传送文件

    嵌入式开发板通过串口与PC互相传送文件 2017年03月24日 15:55:17 缘客_ql 阅读数:6961 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

最新文章

  1. angular @ViewChild使用
  2. 运维不懂这些面试题拿不到高薪
  3. IntelliJ idea 12的初次约会
  4. 机器学习算法-随机森林初探(1)
  5. 灯泡(信息学奥赛一本通-T1438)
  6. 手机出货量暴跌!00后4年没换手机:除了贵、穷还有别的原因...
  7. 大数据_MapperReduce_Hbase的优化_存数据_自动计算分区号 自动计算分区键---Hbase工作笔记0027
  8. 腾讯 Angel 升级:加入图算法,支持十亿节点、千亿边规模!
  9. Hibernate关系映射和HQL
  10. 轻芒 CEO 王俊煜:高品质内容是核心,小程序是它的最好载体
  11. Linux中的cp命令老九门
  12. 手机 测试php代码大全,VIVO手机测试指令代码大全
  13. 一个指导人机系统评估的框架
  14. golang 将数据导入excel
  15. 呼叫中心中间件(mod_cti基于FreeSWITCH)-排队(ACD 话务分配)
  16. java xml sql_走进 SQL/XML
  17. 2023年武汉市中等职业学校技能大赛 “网络搭建与应用”
  18. 计算机视觉算法实习生:大厂面试经历(百度、京东、滴滴、字节、美团,旷视,快手,小米)
  19. Oracle数据库数据查询语句示例(包含大部分常用语句)
  20. 损失37亿!Intel将彻底退出傲腾存储业务;车主因眼睛小被自动驾驶误判“开车睡觉”;微信安装包11年膨胀575倍 | EA周报...

热门文章

  1. 如何加入家庭组计算机打印机,如何使用利用win7家庭组打印机
  2. 更改c语言程序保存地址吗,(C语言)修改文件时间程序(创建时间、修改时间、访问时间)...
  3. office技巧:Word如何快速的创建表格
  4. Docker 常用命令 (持续更新)
  5. 不要用JWT替代session管理(上):全面了解Token,JWT,OAuth,SAML,SSO
  6. 关于网站下拉导航的设置
  7. python环境搭建
  8. Go 性能优化技巧 8/10
  9. 才知道创建数据表的后面int(M)的m居然和存储大小没有关系
  10. 浏览器的工作过程(转)