Memory测试工具-stressapptest详解

news2024/9/20 16:31:41

✨前言:

stressapptest 是一个用于在各种系统组件上施加压力的工具,特别专注于内存和CPU。通过运行各种模式的访问测试,stressapptest 旨在模拟高负载下的系统行为,并帮助发现潜在的错误,比如硬件故障、过热或系统组件的不稳定性。

🌟下面是stressapptest命令的一些详细说明:

内存和CPU压力: stressapptest 主要用于在内存和处理器上施加压力,检查它们在高负荷情况下的可靠性。它可以通过执行读写操作、内存复制和反转等来达到这个目的。
磁盘I/O 测试: 除了内存和CPU测试之外,stressapptest 还能进行磁盘I/O测试,这通过向指定的设备或文件进行读写操作来完成。
网络测试: stressapptest 可以进行网络测试,这是通过添加指定向特定IP地址或响应网络请求的线程来实现的。
NUMA支持: NUMA系统允许将内存和处理器绑定到特定的NUMA节点上,stressapptest 支持这一点,并利用numactl工具来指定节点。
错误检测: 它包含了检测硬件错误(如ECC错误)的组件,当系统在高压力下运行时,这对于确认系统稳定性至关重要。
日志记录: stressapptest 可以记录测试期间的所有输出到日志文件中,供以后分析和故障排除。
参数调整: stressapptest 提供了许多参数,允许用户自定义测试的各个方面,包括测试持续的时间、使用的内存量、测试工作线程的数量等。

✨Centos下工具安装

🌟先下载源码(需要安装git)

git clone https://github.com/stressapptest/stressapptest.git

🌟编译和安装 stressapptest:

cd stressapptest
./configure
make && make install

编译完成之后会看到这个可执行文件
在这里插入图片描述

🌟stressapptest – help 可以看到常用参数

在这里插入图片描述

🌟参数解释

-M mbytes: 指定测试时要使用的内存大小(以兆字节为单位)。

–reserve-memory: 如果不使用大页面(hugepages),则为系统保留的内存量。

-H mbytes: 要求的最小大页面内存大小(以兆字节为单位)。

-s seconds: 测试运行的时间(秒)。

-m threads: 启动进行内存复制任务的线程数目。

-i threads: 启动进行内存反转任务(即对内存中的数据取反)的线程数目。

-C threads: 启动用于CPU压力测试的线程数目。

–findfiles: 自动查找磁盘I/O操作的位置。

-d device: 添加一个直接写操作磁盘的线程,针对块设备(或文件)‘device’。

-f filename: 添加一个使用临时文件 ‘filename’ 的磁盘线程。

-l logfile: 将输出日志写入 ‘logfile’ 文件。

–no_timestamps: 日志消息中不添加时间戳前缀。

–max_errors n: 在发现 ‘n’ 个错误后早期退出。

-v level: 详细信息级别(0-20),默认是8。

–printsec secs: 指定每隔多少秒打印「剩余秒数」的信息。

-W: 使用更多CPU资源以提高内存复制任务的压力。

-A: 在不兼容的系统上以降级模式运行。

-p pagesize: 内存块的大小(字节)。

–filesize size: 磁盘I/O临时文件的大小。

-n ipaddr: 添加一个网络线程,连接到IP地址为 ‘ipaddr’ 的系统。

–listen: 运行线程来监听并响应网络线程。

–no_errors: 在不检查ECC或其他错误的情况下运行。

–force_errors: 注入假错误来测试错误处理。

–force_errors_like_crazy: 注入大量假错误来测试错误处理。

-F: 不检查每项事务的结果。

–stop_on_errors: 在发现第一个错误后停止测试。

–read-block-size: 用于读取的块大小(用于 -d 参数)。

–write-block-size: 用于写入的块大小(用于 -d 参数),如果未定义,则使用读取的块大小作为写入的块大小。

–segment-size: 分割磁盘的段大小(用于 -d 参数)。

–cache-size: 磁盘缓存的大小(用于 -d 参数)。

–blocks-per-segment: 每次迭代每个段读/写的块数量(用于 -d 参数)。

–read-threshold: 一个块读操作应该花费的最长时间(微秒)(用于 -d 参数)。

–write-threshold: 一个块写操作应该花费的最长时间(微秒)(用于 -d 参数)。

–random-threads: 每个磁盘写线程的随机线程数(用于 -d 参数)。

–destructive: 写入/擦除磁盘分区(用于 -d 参数)。

–monitor_mode: 只进行ECC错误轮询,不产生压力负载。

–cc_test: 进行缓存一致性测试。

–cc_inc_count: 增加缓存线成员的次数。

–cc_line_count: 分配的缓存线大小数据结构的数量,用于缓存一致性线程操作。

🌟工具使用

 stressapptest -s 100 -M 2048 -m 4 -W

👉这条命令的含义是:
-s 100 : 测试持续100秒。

-M 2048: 使用2048MB(即2GB)内存进行测试。
-m 4: 启动4个线程执行测试。
-W: 启用更强的数据完整性验证。

⚠️注意事项
在进行内存压测时,请注意以下几点:
监控系统行为:在压测期间,监控系统的响应,以确保系统不会出现过载导致的严重问题。
确保系统稳定性:在生产环境中,确保您了解运行压测的潜在风险。压测可能会导致系统使用大量资源,从而影响到其他应用或服务。
测试结果:压测结束后,stressapptest会报告测试结果,包括是否有错误发生。仔细检查这些结果以确保内存的稳定性和可靠性。

✨numactl和stressapp的结合:

日常中如果我们要对一些numa的节点,例如cxl的memory的测试的话,
在 NUMA 架构下,我们可以将 CPU 绑定到节点 0,将内存分配绑定到节点 2,然后使用 stressapptest 工具在这种配置下运行压力测试,测试持续 100 秒,使用 2 GB 的内存,并启动 4 个执行内存操作的线程,同时应用更多的 CPU 压力。这可以帮助你观察在特定 NUMA 维度上系统组件(特别是内存和CPU)的性能表现和稳定性。

numactl -N 0 -m 2 stressapptest -s 100 -M 2048 -m 4 -W

在这里插入图片描述

watch -n 1 "numactl -H"

可以使用上面的命令查看numa节点的内存消耗情况。

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

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

相关文章

IGraph使用实例——图属性设置2之GML或GraphML输出

1 概述 1.1GML Graph Modeling Language (GML) 是一种用于描述图形结构的文本格式,它提供了为节点和边分配属性的灵活性。以下是关于GML的详细解释:1)定义与用途: GML是一种通用的图形表示语言,常用于表示网络…

个人笔记-python生成gif

使用文件的修改时间戳进行排序 import os import re import imageio# 设置图片所在的文件夹路径 folder_path /home/czy/ACode/AMAW_20240219/9.3.x(Discrete_time_marching)/9.3.17.11.1(Disc_concessive_CH_ZJ)/current_figures # 文件夹路径;linux…

Mysql疑难报错排查 - Field ‘XXX‘ doesn‘t have a default value

项目场景: 数据库环境 :mysql8; 工程使用:MyBatisPlus 表情况: 问题描述 某一个插入语句使用了 MyBatisPlus 的 save 方法,因为end_time1 end_time2都并没有值,所以在MyBatisPlus默认情况下,…

kafka-消费者-指定offset消费(SpringBoot整合Kafka)

文章目录 1、指定offset消费1.1、创建消费者监听器‘1.2、application.yml配置1.3、使用 Java代码 创建 主题 my_topic1 并建立3个分区并给每个分区建立3个副本1.4、创建生产者发送消息1.4.1、分区0中的数据 1.5、创建SpringBoot启动类1.6、屏蔽 kafka debug 日志 logback.xml1…

视频汇聚平台EasyCVR对接GA/T 1400视图库:结构化数据(人员/人脸、车辆、物品)对象XMLSchema描述

在信息化浪潮席卷全球的背景下,公安信息化建设日益成为提升社会治理能力和维护社会稳定的关键手段。其中,GA/T 1400标准作为公安视频图像信息应用系统的核心规范,以其结构化数据处理与应用能力,为公安信息化建设注入了强大的动力。…

精妙无比的App UI 风格

精妙无比的App UI 风格

BERT+PET方式模型训练

基于BERTPET方式文本分类模型搭建 模型搭建 本项目中完成BERTPET模型搭建、训练及应用的步骤如下(注意:因为本项目中使用的是BERT预训练模型,所以直接加载即可,无需重复搭建模型架构): 一、实现模型工具类函数二、实现…

RAG检索增强生成(1)-大语言模型的外挂数据库

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks Lewis P, Perez E, Piktus A, et al. Retrieval-augmented generation for knowledge-intensive nlp tasks[J]. Advances in Neural Information Processing Systems, 2020, 33: 9459-9474. RAG结合了信息检…

AI绘画揽活新中式室内设计,能不能让你一见“粽”情?

端午节即将来临,计划节前完成的图赶出来了吗?别着急,可以找个AI绘画工具做帮手,让你在短时间内完成高质量的设计。 恰逢端午佳节,相比其他装修风格,新中式显然与端午节更般配,那么我们就用AI绘画的新中式风…

趣测小程序开发搭建,趣测趣玩小程序是何物?

一、趣测小程序简介 趣测趣玩小程序是一款提供趣味测试和玩乐功能的应用程序。用户可以通过该小程序参与各种有趣的测试,这些测试可能涵盖性格、情感、智力等多个方面,旨在为用户提供轻松愉快的体验。同时,该小程序还可能包含一些游戏元素&a…

实战项目《负载均衡在线OJ系统》

一、项目灵感来源 在日常做题的过程中,我们总会去力扣和牛客网上去做题,但是从来没有想过网站是如何加载给用户的,以及在提交代码时,是如何得知我们的代码是否正确。基于这样的原因,也是学习到一定程度的知识后&#x…

ar地产沙盘互动体验提供更加丰富多彩的楼盘信息

AR增强现实技术作为其重要分支,正逐步在全球市场中崭露头角。国内的AR增强现实技术公司正致力于链接物理世界和虚拟世界,为用户带来沉浸式的AR体验。它们打造线上线下联动的一站式文旅景区数字化运营平台,让您在享受旅游的同时,也…

爬虫(没)入门:用 node-crawler 爬取 blog

起因 前几天想给一个项目加 eslint,记得自己曾经在博客里写过相关内容,所以来搜索。但是发现 csdn 的只能按标题,没办法搜正文,所以我没搜到自己想要的内容。 没办法只能自己又重新折腾了一通 eslint,很烦躁。迁怒于…

新手上路:Linux虚拟机创建与Hadoop集群配置指南①(未完)

一、基础阶段 Linux操作系统: 创建虚拟机 1.创建虚拟机 打开VM,点击文件,新建虚拟机,点击自定义,下一步 下一步 这里可以选择安装程序光盘映像文件,我选择稍后安装 选择linux系统 位置不选C盘,创建一个新的文件夹VM来放置虚拟机,将虚拟机名字改为master方便后续识别…

AI框架之Spring AI与Spring Cloud Alibaba AI使用讲解

文章目录 1 AI框架1.1 Spring AI 简介1.2 Spring AI 使用1.2.1 pom.xml1.2.2 可实现的功能 1.3 Spring Cloud Alibaba AI1.4 Spring Cloud Alibaba AI 实践操作1.4.1 pom.xml1.4.2 配置文件1.4.3 对接文本模型1.4.4 文生图模型1.4.5 语音合成模型 1 AI框架 1.1 Spring AI 简介…

什么是APP加固?

APP加固是一系列技术手段的集合,旨在提升移动应用程序的安全性,保护其免受各种攻击和威胁。加固技术可以对应用程序的代码、数据、运行环境等多个方面进行保护,从而提高应用的整体安全性和韧性。 常见的APP加固技术 代码混淆: 代码…

Ubuntu系统本地搭建WordPress网站并发布公网实现远程访问

文章目录 前言1. 搭建网站:安装WordPress2. 搭建网站:创建WordPress数据库3. 搭建网站:安装相对URL插件4. 搭建网站:内网穿透发布网站4.1 命令行方式:4.2. 配置wordpress公网地址 5. 固定WordPress公网地址5.1. 固定地…

java中事务中遇到锁会造成什么问题,以及该如何解决?

在spring中实现事务有多种方式,主要是两种:一种是声明式事务,一种是编程式事务,今天我们就讲声明式事务中的一种,使用注解Transactional,这个注解的作用就是帮助我们在代码执行完毕之后自动提交事务&#x…

Coolmuster Android助手评测:简化Android到电脑的联系人传输

产品概述 Coolmuster Android助手是一款旨在简化Android设备与计算机之间数据管理和传输过程的全面工具。它以用户友好的界面和全面的功能,成为寻求高效数据管理解决方案的Android用户的热门选择。 主要特点和功能Coolmuster Android助手拥有一系列使其成为管理Andr…

优思学院|谈汽车零部件企业生产精益及现场管理

精益生产(Lean Production)和现场管理作为现代制造企业的核心管理理念,正在越来越多的企业中得到应用。尤其是在中国,许多汽车零部件企业通过精益管理和六西格玛方法,显著提高了生产效率,降低了生产成本&am…