内存性能测试工具
与 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/stream2STREAM 软件具有良好的空间局部性,是对转换检测缓冲区 TLB(Translation Lookaside Buffer)友好、缓存友好的一款软件。STREAM 软件支持复制(Copy)、尺度变换(Scale)、矢量求和(Add)、复合矢量求和(Triad)四种运算方式测试内存带宽的性能。
Copy 是复制操作,先访问一个内存单元读出其中的值,再将值写入到另一个内存单元。
Scale 是乘法操作,先从内存单元读出其中的值,作一个乘法运算,再将结果写入到另一个内存单元。
Add 是加法操作,先从内存单元读出两个值,做加法运算, 再将结果写入到另一个内存单元。
Triad 是将 Copy、Scale、Add 三种操作组合起来进行测试。具体操作方式是:先从内存单元中中读两个值 a、b,对其进行乘加混合运算(a + 因子 * b ),再将运算结果写入到另一个内存单元。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/21f597a248f1ac63ee3ed1c45】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论