cyclictest stress 工具 使用

工具介绍

1. Cyclictest 准确且重复地测量线程的预期唤醒时间与它实际唤醒的时间之间的差异,以提供有关系统延迟的统计数据。 它可以测量由硬件、固件和操作系统引起的实时系统延迟
2.stress是Linux的一个压力测试工具,可以对CPU、Memory、IO、磁盘进行压力测试

cyclictest 工具

cyclictest 功能介绍,安装编译

Cyclictest 准确且重复地测量线程的预期唤醒时间与它实际唤醒的时间之间的差异,以提供有关系统延迟的统计数据。 它可以测量由硬件、固件和操作系统引起的实时系统延迟

  1. 下载地址
    git clone git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git
  2. 安装依赖库
    sudo apt-get install libnuma-dev
  3. make && make install 编译

cyclictest 使用介绍

1.参数介绍
在这里插入图片描述2. 使用举例
在这里插入图片描述

  1. 输出参数介绍
    在这里插入图片描述

cyclictest 工具原理

主要逻辑在线程timerthread 中,在代码rt-tests/src/cyclictest/cyclictest.c
一句话的原理:记录当前时间next 通过nanosleep 函数,延时固定的时间,切出任务,等待任务重新切回来的时候,获取当前时间now,now减去时间间隔,减去next时间,则为系统延时的时间,统计该延时的时间,则为系统调度的延时时间。

默认参数
在这里插入图片描述

void *timerthread(void *param)
{/* 设置时间间隔 也就是参数 -i 指定的时间, 默认1000us */interval.tv_sec = par->interval / USEC_PER_SEC;interval.tv_nsec = (par->interval % USEC_PER_SEC) * 1000;... while(1){/* 延时切出任务 */if (nanosleep(&interval, NULL)) {if (errno != EINTR)warn("nanosleep failed. errno: %d\n", errno);goto out;}next.tv_sec = now.tv_sec + interval.tv_sec;next.tv_nsec = now.tv_nsec + interval.tv_nsec;if ((ret = clock_gettime(par->clock, &now))) {if (ret != EINTR)warn("clock_getttime() failed. errno: %d\n", errno);goto out;}
/* 计算系统调度延时 */....if (use_nsecs)diff = calcdiff_ns(now, next);elsediff = calcdiff(now, next);if (diff < stat->min)stat->min = diff;if (diff > stat->max) {stat->max = diff;if (refresh_on_max)pthread_cond_signal(&refresh_on_max_cond);}
....
}

stress 工具

stress 功能介绍,安装

sudo apt-get install stress 直接使用命令安装就可以啦

stress 参数介绍

-c, --cpu N:产生N个进程,每个进程都循环调用sqrt函数产生CPU压力。
-i, --io N:产生N个进程,每个进程循环调用sync将内存缓冲区内容写到磁盘上,产生IO压力。通过系统调用sync刷新内存缓冲区数据到磁盘中,以确保同步。如果缓冲区内数据较少,写到磁盘中的数据也较少,不会产生IO压力。在SSD磁盘环境中尤为明显,很可能iowait总是0,却因为大量调用系统调用sync,导致系统CPU使用率sys 升高。
-m, --vm N:产生N个进程,每个进程循环调用malloc/free函数分配和释放内存。
–vm-bytes B:指定分配内存的大小
–vm-stride B:不断的给部分内存赋值,让COW(Copy On Write)发生
–vm-hang N :指示每个消耗内存的进程在分配到内存后转入睡眠状态N秒,然后释放内存,一直重复执行这个过程
–vm-keep:一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)
-d, --hdd N:产生N个不断执行write和unlink函数的进程(创建文件,写入内容,删除文件)
–hdd-bytes B:指定文件大小

–hdd-noclean:不要将写入随机ASCII数据的文件Unlink
-t, --timeout N:在N秒后结束程序
–backoff N:等待N微秒后开始运行
-q, --quiet:程序在运行的过程中不输出信息
-n, --dry-run:输出程序会做什么而并不实际执行相关的操作
–version:显示版本号
-v, --verbose:显示详细的信息

stress 使用介绍

  1. cpu 测试
    stress --cpu 8 --timeout 60
    开启8个CPU进程执行sqrt计算,60秒后结束
    在这里插入图片描述2. io 测试
    stress --io 2 --hdd 2 --timeout 60s
    开启2个IO进程,2个磁盘IO进程
    在这里插入图片描述
    测试结果,查看iowait 参数
    在这里插入图片描述
  2. 内存测试
    stress --vm 2 --vm-bytes 1G --vm-hang 100 --timeout 100s
    开启2个IO进程,2个磁盘IO进程
    开启2个进程分配内存,每次分配1GB内存,保持100秒后释放,100秒后退出。
    在这里插入图片描述
    测试结果,使用htop 查看
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1618151.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

反转链表00

题目链接 反转链表 题目描述 注意点 链表中节点的数目范围是 [0, 5000] 解答思路 迭代或递归解决本题 代码 方法一&#xff1a; // 迭代 class Solution {public ListNode reverseList(ListNode head) {if (head null || head.next null) {return head;}ListNode pre…

Unity导出Android制作桌面宠物精灵需要背景透明

项目场景&#xff1a; Unity制作小精灵导出后&#xff0c;嵌入Android页面中。要求整个APP页面只有一个Android页面背景&#xff0c;因此Unity需要背景透明。最后要求整个APP代码以SDK和API的方式提供给第三方APP使用。 解决历程&#xff1a; 1. 直接修改主相机纯色背景透明…

C++桌面小精灵:实现像Office助手一样的帮助精灵

桌面助手小精灵是一款高性能系统辅助软件&#xff0c;它运行速度快&#xff0c;消耗内存不超过2M&#xff0c;界面美观&#xff0c;结构简洁&#xff0c;可像QQ&#xff0c;MSN等软件一样便捷收放&#xff0c;功能实用&#xff0c;能够为日常的电脑使用带来很大的便捷。 VC实现…

vnc远程桌面精灵,细数三款可能你没有使用过的vnc远程桌面精灵

看到vnc远程桌面精灵就可以知道这是一款什么软件&#xff0c;远程控制软件讲究的是方便好操作&#xff0c;因为远程控制这个功能就是比较麻烦的。细数三款可能你没有使用过的vnc远程桌面精灵。 第一款&#xff1a;IIS7服务器管理工具 这个工具里面的VNC功能可以说是使用感非常…

基于C#制作一个桌面宠物

此文主要基于C#制作一个桌面宠物,可自定义宠物素材图片及打开外部exe的快捷菜单。 实现流程1.1、创建项目1.2、准备素材1.3、控件设置(1)PictureBox控件(2)timer控件(3)contextMenuStrip控件1.4、生成为exe程序1.5、设置开机自启代码块实现流程 1.1、创建项目 打开Visu…

VSCode配置触动精灵开发环境

VSCode配置触动精灵开发环境 文章目录 VSCode配置触动精灵开发环境一、安装VSCode二、搭建开发环境1.安装插件2.Lua编译器(可以不安装)3.触动精灵插件使用 一、安装VSCode 首先下载 VsCode: https://code.visualstudio.com/ 二、搭建开发环境 1.安装插件 (1) Lua ---- Lua语…

JAVA桌面精灵演示版

近来闲的慌,看见C#或C写的桌面精灵是不是心理痒痒&#xff0c;JAVA能写不?在我这里回答是&#xff1a;能 当然程序还有点bug,背景处理有问题&#xff0c;这个和系统的刷新率有关....以后再研究... 没啥特别的功能&#xff0c;就是隐藏精灵和现实精灵&#xff0c;完全是gui设…

c语言桌面窗口移动,c语言移动Windows桌面图标

移动windows桌面图标实现简单动画 这个操作需要关闭 桌面图标的自动排列 image.png #include #include #include #include #include #define N 200 typedef struct node { int x; // 横坐标 int y; // 纵坐标 int fx; // x 运动方向 int fy; // y 运动方向 }Node; int main() {…

mmd导入的桌面精灵:unity(转载)

之前想做一个桌面精灵&#xff0c;就上网查了一下。发现各位前辈真强大。我就搬运搬运&#xff1a; 首先我先在网上找到了一下模型和舞蹈动作数据&#xff0c;mmd的。 网站是&#xff1a;mmd模型和动作数据 然后我们再去下载一个mmd转换成fbx的unity插件&#xff1a; MMD4Mecan…

制作桌面精灵(动态桌面)——鼠标跟随的粒子效果

这里使用了nowpaper的一个例子&#xff1a; Silverlight C# 游戏开发&#xff1a;绚丽的粒子特效-颜色粒子&#xff08;一&#xff09; 我新建了一个WPF 3.5项目&#xff0c;将里面的代码添加了几个方法&#xff0c;就可以在桌面上使用这个效果。 主要原理是用了一个鼠标的钩子…

vnc远程桌面精灵,七款让人爱不释手的vnc远程桌面精灵

看到vnc远程桌面精灵就可以知道这是一款什么软件,远程控制软件讲究的是方便好操作,因为远程控制这个功能就是比较麻烦的。推荐七款让人爱不释手的vnc远程桌面精灵。 第一款:IIS7服务器管理工具 这个工具里面的VNC功能可以说是使用感非常棒的。它可以一键导出或导入,还可以…

JAVA8 Swing 简单的桌面精灵(踩坑点记录)

1. 前言 萌新上班摸鱼的时候玩了玩Swing&#xff0c;想着弄个桌面精灵玩玩&#xff0c;结果一百度发现过气Swing&#xff0c;根本没多少教程&#xff0c;只能东找找&#xff0c;西凑凑&#xff0c;终于拼出了想要的效果。给张效果图&#xff1a; 本质上就是个隐藏了边框的窗口…

vs+qt实现简单桌面精灵

开篇先放成果&#xff08;桌面精灵用的图片皆为网上的图片&#xff0c;后准备自己做一下&#xff09; 可以实现获取在桌面的位置&#xff0c;产生相应的变化&#xff0c;比如用鼠标将他拖到电脑屏幕边缘&#xff0c;会吸附到电脑边缘&#xff08;其实就是换了一张图片&#xf…

windows/linux桌面精灵(带源码)

效果图&#xff1a; 代码实现逻辑&#xff1a; 桌面上展示的动画均为gif无背景动图&#xff08;可以下载一套指定模型的gif图&#xff09;&#xff0c;通过监听键盘的输入或者鼠标的点击拖拽&#xff0c;来实现动画的切换&#xff0c;在切换时&#xff0c;通过播放控制器来实现…

PyQt5桌面应用开发(11):摸鱼也要讲基本法之桌面精灵

本文目录 PyQt5桌面应用系列鼠标不要钱&#xff0c;手腕还不要钱吗&#xff1f;PyQt5源程序python文件资源定义界面定义文件 技术要素资源文件StyleSheetsQMainWindow设置窗体几何 结论 PyQt5桌面应用系列 PyQt5桌面应用开发&#xff08;1&#xff09;&#xff1a;需求分析 PyQ…

桌面精灵制作记录

前言 2014年时&#xff0c;想做一个会跳舞的&#xff0c;当在敲代码的时候驱动跳舞激励程序员、可以聊天的、可以语音聊 的桌面精灵 上个最后效果图 没gif 接入聊天AI 市面上的人工智能回答很多产品。比较流行的好用的有&#xff1a; 1.微软小娜和微软小冰&#xff0c;似乎…

Lottery抽奖项目学习第二章第一节:环境、配置、规范

Lottery抽奖项目学习第二章第一节&#xff1a;环境、配置、规范 环境、配置、规范 下面以DDD架构和设计模式落地实战的方式&#xff0c;进行讲解和实现分布式抽奖系统的代码开发&#xff0c;那么这里会涉及到很多DDD的设计思路和设计模式应用&#xff0c;以及互联网大厂开发中…

SMC_Interpolator2Dir反向插补运动

附加函数是&#xff1a; SMC_Interpolator2Dir_SlowTask 函数的位置&#xff1a; 输入&#xff1a; 运行 bExecute 【BOOL】 路径包 poqDataIn 指向SMC_OUTQUEUE的指针 停止 bSlow_Stop 停止BOOL 急停 bEmergency_Stop 紧急停止BOOL 单…

70K的QQ——MiniQQ

采用标准腾讯UDP协议&#xff0c;显示IP、显示上次登录时间/IP、初步支持群、好友分组&#xff0c;最酷的是软件本身只有70K&#xff01;速度、稳定性、易用性都还不错&#xff0c;目前版本为[V2.0B] &#xff0c;另外还有一款[V1.6]是基于WAP协议的&#xff0c;可以在GPRS笔记…

【GoLang】go入门:go语言执行过程分析 常见数据类型(基本数据类型)

1、go语言执行过程分析 【1】执行流程分析 通过 go build 进行编译 运行上一步生成的可执行文件 通过 go run 命令直接运行 【2】上述两种执行流程的区别 在编译时&#xff0c;编译器会将程序运行时依赖的库文件包含在可执行文件中&#xff0c;所以可执行文件会变大很多通过g…