用了其他的测试脚本 花里胡哨的 不好用 这个我测试了 安装速度快 测试速度快 结果也详细 专门测试内存速度的就是靠谱

要测试 Linux 系统内存的读写速度,可以使用 sysbench 工具。以下是安装和使用 sysbench 进行内存性能测试的步骤:

1. 安装 sysbench

在 Debian/Ubuntu 系统中,可以用以下命令安装:

sudo apt update
sudo apt install sysbench

在 CentOS/RHEL 系统中,可以用以下命令:

sudo yum install epel-release
sudo yum install sysbench

2. 测试内存读写速度

使用 sysbench 执行内存测试。下面的命令会创建一个 10 GB 的数据集并进行读写测试:

sysbench memory --memory-block-size=1M --memory-total-size=10G run

执行后,系统会输出读和写的速度,单位为 MB/s。

要测试内存速度的极限,可以通过调整 sysbench 的参数来增加并发线程数和数据块的大小,或者使用更大的内存数据集。以下是一些建议的命令和参数设置。

3. 增加并发线程数

可以通过指定 --num-threads 参数来增加并发线程数。例如:

sysbench memory --memory-block-size=1M --memory-total-size=20G --num-threads=4 run

这个命令会使用 4 个线程同时读取和写入 20 GB 的数据。你可以根据自己系统的 CPU 核心数选择合适的线程数量。

4. 设置更大的内存块和数据集

调大内存块的大小和数据集的总量可以帮助测试更高负载的性能:

sysbench memory --memory-block-size=8M --memory-total-size=50G --num-threads=8 run

上述命令将使用 8 个线程,内存块大小为 8 MB,总数据量为 50 GB。

5. 结果分析

测试完成后,你可以根据 sysbench 输出的结果来观察内存的读写性能。如果你想要测试内存极限速度可以通过增加线程和增加数据块的大小。

6. 结果注释

比如我使用的这个测试命令:

sysbench memory --memory-block-size=8M --memory-total-size=100G --num-threads=8 run

我四通道内存用这个测试出了内存极限速度80g/s 所以拿此作参考

内存测试的输出结果:

警告信息

WARNING: --num-threads is deprecated, use --threads instead

这个警告表明 --num-threads 参数已经被废弃,建议使用 --threads 来替代,但这并不影响测试的结果。

测试配置

Number of threads: 8

这里指定了使用 8 个线程 进行测试。多线程可以提高并发性能。

初始化

Initializing random number generator from current time

初始化随机数生成器,以当前时间为种子。用于生成随机数据。

测试选项

Running memory speed test with the following options:
block size: 8192KiB
total size: 102400MiB
operation: write
scope: global
  • block size: 设置每个读写操作的数据块大小为 8192 KiB (8 MB)
  • total size: 测试时使用的总数据量为 102400 MiB (100 GB)
  • operation: 执行写操作。
  • scope: 表示操作范围为全局。

线程初始化

Initializing worker threads... Threads started!

开始初始化工作线程,线程已经被启动。

测试结果

Total operations: 12800 ( 8809.27 per second)
102400.00 MiB transferred (70474.19 MiB/sec)
  • Total operations: 执行了 12800 次写操作。
  • 每秒操作数: 写入速度为 8809.27 操作/秒
  • 总数据传输量: 测试过程中成功写入了 102400.00 MiB(100 GB)。
  • 写入速度: 平均速度为 70474.19 MiB/sec,即每秒可以写入约 70.5 GB 的数据。

一般统计数据

General statistics:
total time: 1.4506s
total number of events: 12800
  • total time: 测试总耗时大约为 1.4506秒
  • total number of events: 总共处理了 12800 次事件(写操作)。

延迟统计

Latency (ms):
min: 0.58
avg: 0.84
max: 9.53
95th percentile: 1.44
sum: 10725.81
  • min: 最小延迟大约为 0.58ms
  • avg: 平均延迟约 0.84ms
  • max: 最大延迟为 9.53ms,有时在高负载下延迟会增加。
  • 95th percentile: 表示 95% 的操作延迟在 1.44ms 以内。
  • sum: 总延迟时间为 10725.81ms

线程公平性

Threads fairness:
events (avg/stddev): 1600.0000/0.00
execution time (avg/stddev): 1.3407/0.06
  • events (avg/stddev): 每个线程平均完成 1600 次事件,标准差为 0.00,说明各个线程的负载极为均衡。
  • execution time (avg/stddev): 每个线程的平均执行时间为 1.3407s,标准差为 0.06

这个测试表明你的内存性能相当不错,能够处理大块数据的写入操作,并且延迟也在一个可接受的范围内。

卸载sysbench

如果你要卸载 sysbench,可以使用以下命令,根据你使用的 Linux 发行版来选择:

在 Debian/Ubuntu 系统上

打开终端,输入以下命令:

sudo apt remove sysbench

如果想完全删除包括配置文件在内,可以使用:

sudo apt purge sysbench

在 CentOS/RHEL 系统上

打开终端,输入以下命令:

sudo yum remove sysbench

执行完后,sysbench 就会被卸载。

最后修改:2024 年 12 月 07 日
如果觉得我的文章对你有用,请随意赞赏