与CPU的重要性类似,内存也是一个计算机系统中最基本、最重要的组件,因为任何应用程序的执行都需要用到内存。将内存密集型的应用程序分别在非虚拟化的原生系统和KVM客户机中运行,然后根据它们的运行效率就可以粗略评估KVM的内存虚拟化性能。对于内存的性能测试,可以选择CPU性能测试工具提到的SPECjbb2015、SysBench、内核编译等基准测试(因为它们同时也是内存密集型的测试),还可以选择LMbench、Memtest86+、STREAM等测试工具。下面简单介绍几种内存性能测试工具。

1. LMbench

LMbench是一个使用GNU GPL许可证发布的免费和开源的自由软件,可以运行在类UNIX系统中,以便比较它们的性能,下载链接:https://sourceforge.net/projects/lmbench/。LMbench是一个用于评价系统综合性能的可移植性良好的基准测试工具套件,它主要关注两个方面:带宽(bandwidth)和延迟(latency)。LMbench中包含了很多简单的基准测试,它覆盖了文档读写、内存操作、管道、系统调用、上下文切换、进程创建和销毁、网络等多方面的性能测试。

2. Memtest86+

Memtest86+ v6 是一个统一的、免费的、开源的内存测试工具,在 GNU GPL v2.0 下发布。新的 v6 代码库(最初称为 PCMemTest)由 Martin Whitaker 提供,基于由 Sam Demeulemeester 开发的 Memtest86+ v5。两者现在都在 Memtest86+ 上工作。网址为:https://www.memtest.org/。

Memtest86+ 是用于 x86 和 x86-64 架构计算机的独立内存测试仪。它提供了比 BIOS 内存测试提供的更彻底的内存检查。Memtest86+ 可以通过 PC BIOS(传统或 UEFI)直接加载和运行,也可以通过支持 Linux 16 位、32 位、64 位或 EFI 切换引导协议的中间引导加载程序加载和运行。它应该适用于任何 Pentium 类或更高版本的 32 位或 64 位 x86 CPU。

3. STREAM

STREAM软件是内存带宽性能测试的基准工具,也是衡量服务器内存性能指标的通用工具。下载地址:https://github.com/lindorx/stream2。STREAM软件具有良好的空间局部性,是对转换检测缓冲区TLB(Translation Lookaside Buffer)友好、缓存友好的一款软件。STREAM软件支持复制(Copy)、尺度变换(Scale)、矢量求和(Add)、复合矢量求和(Triad)四种运算方式测试内存带宽的性能。

  • Copy是复制操作,先访问一个内存单元读出其中的值,再将值写入到另一个内存单元。
  • Scale是乘法操作,先从内存单元读出其中的值,作一个乘法运算,再将结果写入到另一个内存单元。
  • Add是加法操作,先从内存单元读出两个值,做加法运算, 再将结果写入到另一个内存单元。
  • Triad是将Copy、Scale、Add三种操作组合起来进行测试。具体操作方式是:先从内存单元中中读两个值a、b,对其进行乘加混合运算(a+因子 * b ),再将运算结果写入到另一个内存单元。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐