内存和网卡压力测试

1.内存压力测试

1.1测试目的

内存压力测试的目的是评估开发板中的内存子系统性能和稳定性,以确保它能够满足特定的应用需求。开发板通常用于嵌入式系统、物联网设备、嵌入式智能家居等场景,这些场景对内存的要求通常比较高。

其内存压力测试的主要目的有:

1.对确定内存的可靠性:通过模拟高负载下的内存使用情况,可以检测内存中的错误和问题,并确定开发板是否能够在稳定的状态下长时间运行。这有助于确保系统的可靠性和数据安全性。

2.发现内存瓶颈:通过测试开发板在处理大量数据时的性能表现,可以评估内存访问速度、吞吐量、响应时间等性能指标,并确定系统在处理大量数据时的性能瓶颈所在。这有助于确定系统的性能极限,并采取相应的优化措施。

3.验证内存兼容性:不同类型的内存可能会影响开发板的性能和稳定性。通过内存压力测试可以验证不同类型的内存是否兼容,以确保内存与开发板的兼容性。

4.测试系统容错性:通过模拟异常情况下的内存使用情况,可以测试开发板在处理异常情况时的表现,并确定开发板能否在不影响数据完整性的情况下恢复正常工作。

1.2测试原理

Memtester是一种用于测试系统内存稳定性和可靠性的工具。它可以模拟各种内存负载情况,并检测和报告内存错误。

Memtester可以在Linux和其他类Unix系统上运行,并可以通过命令行或脚本进行控制。它可以测试内存的不同方面,包括内存容量、内存速度、内存类型、内存通道等。同时,它还可以测试系统的内存管理和内存分配机制,以确定系统是否能够有效地管理和分配内存。

使用Memtester进行内存测试时,需要指定测试的内存容量和测试的时间长度。测试过程中,Memtester会在内存中模拟各种负载情况,例如写入随机数据、重复写入相同数据、使用指定的模式写入数据等。在测试过程中,Memtester会检测内存中的错误,并将错误信息记录到日志文件中。

通过使用Memtester,可以有效地测试系统内存的稳定性和可靠性,以便确定系统是否能够在各种负载情况下正常运行。测试结果可以帮助开发人员识别和解决内存相关的问题,并优化系统的内存性能。

1.3测试方法

memtester工具使用命令格式为memtester [-p 内存物理起始地址] [测试内存大小B/K/M/G] [测试次数]。

命令格式不是固定的,可以省略部分。

ⅰ. 省略测试次数,则连续进行测试,直到手动结束

ⅱ. 省略内存物理起始地址,则由系统随机选择空闲内存测试

使用方法:

ⅰ. 对1G内存测试100次

./memtester 1G 100

ⅱ. 对2G内存进行连续测试

./memtester 1G 100

ⅲ. 从0x00010000地址开始测试1G内存100次

./memtester -p 0x10000 1G 100

1.4实验部分

点击 下载地址,即可下载memtester。

打开终端进入到该路径下,输入解压命令:

tar xzvf memtester-4.6.0.tar.gz

进入到解压出来的文件夹后打开conf-cc文件,行首更改如下,并保存

/home/tangjunfeng/rk3568/sdkv1.3.0_linux4.19/buildroot/output/rockchip_rk3568/host/usr/bin/aarch64-buildroot-linux-gnu-cc -O2 -DPOSIX -D_POSIX_C_SOURCE=200809L -D_FILE_OFFSET_BITS=64 - 

打开conf-ld文件,行首更改如下,并保存

/home/tangjunfeng/rk3568/sdkv1.3.0_linux4.19/buildroot/output/rockchip_rk3568/        host/usr/bin/aarch64-buildroot-linux-gnu-cc -s

在memtester-4.6.0路径下,进行编译:

sudo make

编译之后,进行安装:

sudo make install 

安装完成后,会在memtester-4.6.0路径下生成memtester可执行文件,将memtester执行文件传到RK3568开发板中,给予memtester权限

chmod 777 memtester

输入free -h查看开发版剩余空间,可以看到还剩余3.6G
在这里插入图片描述

输入命令(3.6G=3687M,跑3轮),即可测试

./memtester 3687 3

2.网卡压力测试

2.1网络性能评估工具Iperf

网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保证网络性能的基础,但是由于网络设计不合理、网络存在安全漏洞等原因,都会导致网络带宽利用率不高。要找到网络带宽利用率不高的原因,就需要对网络传输进行监控,此时就需要用到一些网络性能评估工具,而Iperf就是这样一款网络带宽测试工具,本节将详细介绍一下Iperf的使用。

下面介绍Iperf的主要功能。

(1)TCP方面

测试网络带宽。

支持多线程,在客户端与服务端支持多重连接。

报告MSS/MTU值的大小。

支持TCP窗口值自定义并可通过套接字缓冲。

(2)UDP方面

可以设置指定带宽的UDP数据流

可以测试网络抖动值、丢包数

支持多播测试

支持多线程,在客户端与服务端支持多重连接。

2.2Iperf下载

iperf官网:iperf.fr

iperf源码下载地址:https://github.com/esnet/iperf

Windows版本二进制文件下载:32位&64位

Linux系统terminal终端下载指定版本:

1.执行git clone https://github.com/esnet/iperf.git 默认下载最新版本。
2.cd iperf-3.x 进入目录,执行git tag查看历史版本。
3.执行git checkout 3.1.3 回退到3.1.3的历史版本。

2.3Iperf安装及使用

网络连接和IP配置

服务端与客户端的网口通过网线和交换机连接,两者IP需要保持在同一网段,如下所示:

Windows系统终端:192.169.10.200

Linux系统终端:192.168.10.50

服务端iperf的安装与使用

关闭Windows系统的防火墙与杀毒软件或允许iperf通过防火墙。
拷贝iperf-3.0.11-win32.rar并解压至Windows系统的的英文路径的目录(如D盘根目录)。
按"win + R"打开Dos窗口,执行“d:” 进入D盘,再执行“cd iperf-3.0.11-win32”进入iperf3.exe所在目录。
执行iperf3 -s 运行iperf作为服务端
在这里插入图片描述

客户端iperf的安装与使用

git下载iperf-3.1.3-source.tar.gz至/opt目录,进入/opt目录执行tar vxzf iperf-3.0.11-source.tar.gz解压文件。

进入/opt/iperf-3.0.11-source目录,执行以下操作进行编译和安装:

./configure
make
make install

2.4测试TCP

在Linux终端执行

iperf3 -c 192.168.10.200 -d -t 60
在这里插入图片描述

2.5测试结果

服务端:
在这里插入图片描述

客户端:
在这里插入图片描述

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

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

相关文章

开发板通过Ethernet(以太网口)与笔记本相连,并通过笔记本wifi连接手机热点来访问外网

文章目录 1、连接开发板与笔记本:2、配置笔记本的网络共享:3、配置开发板的网络设置:4、验证网络连接: 1、连接开发板与笔记本: 使用一根网线将开发板的Ethernet接口与笔记本的以太网口相连。 2、配置笔记本的网络共…

【深度学习】sdwebui的token_counter,update_token_counter,如何超出77个token的限制?对提示词加权的底层实现

文章目录 前言关于token_counter关于class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing)如何超出77个token的限制?对提示词加权的底层实现Overcoming the 77 token limit in diffusers方法1 手动拼方法2 compel 问询、帮助请看: 前言 …

Linux系统切割文件和合并文件介绍

split 和 cat 是 Linux 系统中用于文件切割和合并的命令。它们可以用于将大文件分割成多个小文件,或者将多个小文件合并成一个大文件。 1. split 命令用于将一个大文件切割成多个小文件。它的基本语法如下: split [-a num][-d][-l num][file][prefix] 其…

JS 数组方法 slice 和 splice 的区别

1. slice 概述 slice 方法用于提取数组中的一部分,返回提取结果,不会改变原数组 语法 array.slice(start, end)start 起始位置 end 可选参数,结束位置返回值: 起始位置到结束位置之间的数据,包含起始位置,但是不包含…

动规训练2

一、最小路径和 1、题目解析 就是一个人从左上往做下走,每次只能往右或者往下,求他到终点时,路径上数字和最小,返回最小值 2、算法原理 a状态表示方程 小技巧:经验题目要求 用一个二维数组表示,创建一个…

Flask Python:数据库多条件查询,flask中模型关联

前言 在上一篇Flask Python:模糊查询filter和filter_by,数据库多条件查询中,已经分享了几种常用的数据库操作,这次就来看看模型的关联关系是怎么定义的,先说基础的关联哈。在分享之前,先分享官方文档,点击查看 从文档…

蓝桥杯算法基础(36)动态规划dp经典问题详解

动态规划 -动态规划方法方法代表了这一类问题(最优子结构or子问题最优性)的有一半解法,是设计方法或者策略,不是具体算法 -本质是递推,核心是找到状态转移的方式,写出dp方程 -形式:记忆性递归递推01背包问题…

FreeRTOS中断管理以及实验

FreeRTOS中断管理以及实验 继续记录学习FreeRTOS的博客,参照正点原子FreeRTOS的视频。 ARM Cortex-M 使用了 8 位宽的寄存器来配置中断的优先等级,这个寄存器就是中断优先级配置寄存器 , STM32寄存器中并且这个寄存器只使用[7:4]&#xff0c…

Rust 中的字符串类型:`str` 和 `String`

Rust 中的字符串类型:&str 和 String 文章目录 Rust 中的字符串类型:&str 和 String1. &str:不可变的字符串引用2. String:可变的字符串3、字符串使用综合案例代码执行结果 在 Rust 编程语言中,有两种主要…

RTX RTOS 操作实例分析之---线程(thread)

0 Preface/Foreword 1 线程(thread) 1.1 线程定义 1.1.1 USE_BASIC_THREADS(宏定义) 经过以上步骤(makefile包含),USE_BASIC_THREADS在编译阶段被定义到相应的模块中。 1.1.2 定义线程ID变量…

安装Pillow库的方法最终解答!_Python第三方库

安装Python第三方库Pillow 我的环境:Window10,Python3.7,Anaconda3,Pycharm2023.1.3 pillow库 Pillow库是一个非常强大的图像处理库。它提供了广泛的图像处理功能,让我们可以轻松地读取和保存图像、创建缩略图和合并到…

Java学习day5-面向对象2

构建标准JavaBean快捷方式 快捷键:altinsert(Fn)->构造函数->全选构造带参方法,不选择则空参构造 插件:ptg,安装后右键单击,倒数第三个则为一键构造所有set/get函数 数据类型 基本数据类型:数据值存储在自己的…

欧拉路径欧拉回路

欧拉回路,指遍历图时通过图中每条边且仅通过一次,最终回到起点的一条闭合回路,适用于有向图与无向图,如果不强制要求回到起点,则被称为欧拉路径。 欧拉图:具备欧拉回路的图 无向图:图的所有顶…

代码随想录 Day37 738.单调递增的数字 968.监控二叉树

738.单调递增的数字 class Solution { public:int monotoneIncreasingDigits(int N) {string strNum to_string(N);// flag用来标记赋值9从哪里开始// 设置为这个默认值,为了防止第二个for循环在flag没有被赋值的情况下执行int flag strNum.size();for (int i s…

37-巩固练习(一)

37-1 if语句等 1、问&#xff1a;输出结果 int main() {int i 0;for (i 0; i < 10; i){if (i 5){printf("%d\n", i);}return 0;} } 答&#xff1a;一直输出5&#xff0c;死循环 解析&#xff1a;i5是赋值语句&#xff0c;不是判断语句&#xff0c;每一次循…

路径规划——曲线拟合详解(一):多项式轨迹与QP优化(minimum-snap算法核心部分)

前言 历经一个多星期时间&#xff0c;我们在路径规划——搜索算法部分讲解了7种常见的路径搜索算法&#xff0c;每一种算法的链接放在下面了&#xff0c;有需要的朋友点击跳转即可&#xff1a; 路径规划——搜索算法详解&#xff08;一&#xff09;&#xff1a;Dijkstra算法详…

由平行公设的不同而来三种几何学浅谈

由平行公设的不同而来三种几何学浅谈 欧几里德的《几何原本》 欧几里德的《几何原本》一开始就给出了23个定义&#xff0c;5个公设&#xff0c;5个公理。 23个定义(部分)&#xff1a; 点是没有部分的东西。 线是没有宽度的长度。 线的端点是点。 直线是各点都在同一方向上…

GraalVM运行模式和企业级应用

文章目录 GraalVM运行模式JIT模式AOT模式 GraalVM的问题和解决方案GraalVM企业级应用传统架构的问题Serverless架构函数计算Serverless应用场景Serverless应用 GraalVM内存参数 GraalVM运行模式 JIT模式 JIT&#xff08; Just-In-Time &#xff09;模式 &#xff0c;即时编译模…

重置gitlab root密码

gitlab-rails console -e production user User.where(id: 1).first user User.where(name: "root").first #输入重置密码命令 user.password"admin123!" #再次确认密码 user.password_confirmation"admin123!" #输入保存命令&am…

单例(Singleton)设计模式总结

1. 设计模式概述&#xff1a; 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式免去我们自己再思考和摸索。 就像是经典的棋谱&#xff0c;不同的棋局&#xff0c;我们用不同的棋谱。"套路"经典的设计模式一共有…