cyclictest stress 工具 使用

news2024/10/7 20:27:46

工具介绍

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);
        else
            diff = 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://www.coloradmin.cn/o/939135.html

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

相关文章

ZQGZ-08、61、44、80 导轨安装系列中间继电器 JOSEF约瑟 增加保护和控制线路

系型型号 ZQGZ-08 ZQGZ-61 ZQGZ-44 ZQGZ-80 ZQGZ-RJ08 ZQGZ-RJ61 ZQGZ-RJ44 ZQGZ-RJ80 ZQGZ-PJ08 ZQGZ-PJ61 ZQGZ-PJ44 ZQGZ-PJ80 ZQGZ-RY08 ZQGZ-RY61 ZQGZ-RY44 ZQGZ-RY80 ZQGZ-PY08 ZQGZ-PY61 ZQGZ-PY44 ZQGZ-PY80 ZQGZ-08、61、44、80 导轨安装系列中间继电器用…

以太网交换机高稳定性时钟系统应用方案

随着网络技术的不断发展&#xff0c;我们的生活也发生着巨大的变化&#xff0c;这离不开以太网起到的重大作用&#xff0c;全球大部分地区的以太网交换机市场都出现了增长。 那么&#xff0c;平常我们所说的以太网交换机到底是什么&#xff1f;今天小扬给大家科普科普以太网交…

ModaHub魔搭社区:WinPlan经营大脑查询业务表单详情

查询业务表单详情 ●URL:https://open.shulead.com/api/schema/detail ●Method:POST 请求参数 WinPlan决策系统 算力 阿里云 腾讯云 AWS亚马逊 框架 业务数据基座 WinPlan垂直大模型 模型 分析模型 预测模型 决策模型 应用 精准预测

Java之API详解之Runtime的详细解析

3.1 概述 Runtime表示Java中运行时对象&#xff0c;可以获取到程序运行时设计到的一些信息 3.2 常见方法 常见方法介绍 我们要学习的Object类中的常见方法如下所示&#xff1a; public static Runtime getRuntime() //当前系统的运行环境对象 public void exit(int statu…

ssm+vue医院医患管理系统源码和论文

ssmvue医院医患管理系统源码和论文077 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm vue.js 摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已…

尚硅谷宋红康MySQL笔记 14-18

是记录&#xff0c;不会太详细&#xff0c;受本人知识限制会有错误&#xff0c;会有个人的理解在里面 第14章 视图 了解一下&#xff0c;数据库的常见对象 对象描述表(TABLE)表是存储数据的逻辑单元&#xff0c;以行和列的形式存在&#xff0c;列就是字段&#xff0c;行就是记…

计算机毕设 基于机器学习与大数据的糖尿病预测

文章目录 1 课题背景2 数据导入处理3 数据可视化分析4 特征选择4.1 通过相关性进行筛选4.2 多重共线性4.3 RFE&#xff08;递归特征消除法&#xff09;4.4 正则化 5 机器学习模型建立与评价5.1 评价方式的选择5.2 模型的建立与评价5.3 模型参数调优5.4 将调参过后的模型重新进行…

vscode 对模型train、detect脚本进行Debug时配置参数

我们训练yolov5代码时&#xff0c;一般会配置一些参数&#xff0c;比如模型权重文件--weights, 模型的配置文件--cfg, 以及训练的数据--data, 对应的训练脚本为: 训练train python train.py -- weights ./yolov5s.pt --cfg models\yolov5s.yaml --data ./data/coco128.yaml…

3.卷积层相关概念

3.1 卷积原理 ① Conv1d代表一维卷积&#xff0c;Conv2d代表二维卷积&#xff0c;Conv3d代表三维卷积。 ② kernel_size在训练过程中不断调整&#xff0c;定义为3就是3 * 3的卷积核&#xff0c;实际我们在训练神经网络过程中其实就是对kernel_size不断调整。 ③ 可以根据输入…

企业注册小程序流程

一、准备资料&#xff1a; 1、未被微信公众平台注册&#xff0c;未被微信开放平台注册&#xff0c;未被个人微信号绑定的邮箱 2、企业名称&#xff08;与企业注册证上的一致&#xff09;3、营业执照注册号&#xff08;15位&#xff09;&#xff08;或18位统一社会信用代码&am…

基于Servlet实现博客系统--- 前后端分离

目录 一.博客系统概述 1.软件的生命周期 2.学习目标 二.数据库的建立 2.插入数据 三.创建项目 1.建立maven项目 2.导入相关的依赖 3.编写工具类 1.编写数据库相关的工具类 2.编写字符串的工具类 3.编写用户的工具类 4.创建实体类 1.创建user实体类 2.创建blog…

window系统中如何判断是物理机还是虚拟机及VMPROTECT无法检测云主机

为什么要判断物理机&#xff0c;因为授权不能对虚拟机安装后的软件进行授权。虚拟机可以复制可以克隆&#xff0c;无法作为一个不可复制ID来使用。 总结了如何判断物理机&#xff1a; 1. 用systeminfo的系统型号。&#xff08;注&#xff0c;有资料是看处理器和bios。但是我这…

【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习)

本站以分享各种运维经验和运维所需要的技能为主 《python》&#xff1a;python零基础入门学习 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解…

Flutter 逆向安全

前几天在 "学习" 一个项目&#xff0c; 发现是用 Flutter 开发的。之前研究过 flutter 的逆向&#xff0c;早期 Flutter 有工具可以通过快照进行反编译&#xff1a;《对照表如下》 新的版本开发者没有维护了。 目前没有很好的工具 可以对 Flutter 进行反编译&#xf…

FanoutExchange广播(扇形)交换机

目录 一、简介 二、代码展示 父pom文件 pom文件 配置文件 config 生产者 消费者 测试 结果 一、简介 扇型&#xff08;广播&#xff09;交换机&#xff0c;这个交换机没有路由键概念&#xff0c;就算你绑了路由键也是无视的。 这个交换机在接收到消息后&#xff0c;…

WordPress导航主题/酷啦鱼导航主题模板

酷啦鱼导航主题模板&#xff0c;是一款基于WordPress的导航主题&#xff0c;酷啦鱼导航主题是个人基于wordpresscodestar work框架设计的简洁导航主题。 下载地址&#xff1a;https://bbs.csdn.net/topics/616084697

当 Apache Doris 遇上大模型:探秘腾讯音乐如何基于大模型 + OLAP 构建智能数据服务平台

本文导读&#xff1a; 当前&#xff0c;大语言模型的应用正在全球范围内引发新一轮的技术革命与商业浪潮。腾讯音乐作为中国领先在线音乐娱乐平台&#xff0c;利用庞大用户群与多元场景的优势&#xff0c;持续探索大模型赛道的多元应用。本文将详细介绍腾讯音乐如何基于 Apach…

【大模型AIGC系列课程 3-2】国产开源大模型:ChatGLM

1. GLM https://arxiv.org/pdf/2103.10360.pdf GLM是General Language Model的缩写,是一种通用的语言模型预训练框架。它的主要目标是通过自回归的空白填充来进行预训练,以解决现有预训练框架在自然语言理解(NLU)、无条件生成和有条件生成等任务中表现不佳的问题。 具体来…

python conda实践 sanic框架gitee webhook实践

import subprocess import hmac import hashlib import base64 from sanic.response import text from sanic import Blueprint from git import Repo# 路由蓝图 hook_blue Blueprint(hook_blue)hook_blue.route(/hook/kaifa, methods["POST"]) async def kaifa(req…

【Java 中级】一文精通 Spring MVC - 数据格式化器(六)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…