CPU 性能测试工具
CPU 是计算机系统中最核心的部件,CPU 的性能直接决定了系统的计算能力。任何程序的执行都会消耗 CPU 资源,所以任何程序几乎都可以作为衡量 CPU 性能的基准测试工具,不过最好选择 CPU 密集型的测试程序。有很多的测试程序可用于 CPU 性能的基准测试,包括 SPEC 组织的 SPEC CPU 和 SPECjbb 系列、UnixBench、SysBench、内核编译、Super PI 等。下面对其中的几种进行简单的介绍。
1. SPEC CPU2017
SPEC(Standard Performance Evaluation Corporation)是一个非营利性组织,专注于创建、维护和支持一系列标准化的基准测试程序(benchmark),让这些基准测试程序可以应用于高性能计算机的性能测试。
针对不同的测试重点,SPEC 系列的基准测试有不同的工具,如测试 CPU 的 SPEC CPU、测试 Java 应用的 SPECjbb、测试电源管理的 SPECpower、测试 Web 应用的 SPECweb、测试数据中心虚拟化服务器整合的 SPECvirt_sc 等。相对来说,SPEC 组织的各种基准测试工具在业界的口碑都比较良好,也具有一定的权威性。
SPEC CPU2017 是 SPEC CPU 系列的最新版本,主页地址:http://www.spec.org/cpu2017/。SPEC 设计这些套件是为了使用从真实用户应用程序开发的工作负载,在最广泛的实际硬件范围内提供计算密集型性能的比较测量。基准作为源代码提供,需要使用编译器命令以及通过 shell 或命令提示符窗口的其他命令。SPEC CPU 2017 还包括用于测量能耗的可选指标。SPEC CPU 2017 基准测试包包含 43 个基准测试,分为四个套件:
SPECspeed ® 2017 Integer 和 SPECspeed ® 2017 Floating Point 套件用于比较计算机完成单个任务的时间。
SPECrate ® 2017 Integer 和 SPECrate ® 2017 Floating Point 套件测量单位时间的吞吐量或工作量。
2. SPECjbb2015
SPECjbb2015 是 SPEC 组织的一个用于评估服务器端 Java 应用性能的基准测试程序,其官方主页为https://www.spec.org/jbb2015。在其之前还有 SPECjbb2013、SPECjbb2005 等版本。该基准测试主要测试 Java 虚拟机(JVM)、JIT 编译器、垃圾回收、Java 线程等方面,也可对 CPU、缓存、内存结构的性能进行度量。SPECjbb2015 既是 CPU 密集型也是内存密集型的基准测试程序,它利用 Java 应用能够比较真实地反映 Java 程序在某个系统上的运行性能。
3. UnixBench
UnixBench 为类 UNIX 系统提供了基础的衡量指标,其官方主页为http://code.google.com/p/byte-unixbench。它并不是专门测试 CPU 的基准测试,而是测试了系统的许多方面,它的测试结果不仅会受系统的 CPU、内存、磁盘等硬件的影响,也会受操作系统、程序库、编译器等软件系统的影响。UnixBench 中包含了许多测试用例,如文件复制、管道的吞吐量、上下文切换、进程创建、系统调用、基本的 2D 和 3D 图形测试,等等。
4.SysBench
SysBench 是一个模块化的、跨平台的、支持多线程的基准测试工具,它主要评估的是系统在模拟的高压力的数据库应用中的性能,其官方主页为https://sourceforge.net/projects/sysbench.mirror/。其实,SysBench 并不是一个完全 CPU 密集型的基准测试,它主要衡量了 CPU 调度器、内存分配和访问、文件系统 I/O 操作、线程创建等多方面的性能。
5. 内核编译
内核编译(kernel build 或 kernel compile)就是以固定的配置文件对 Linux 内核代码进行编译,它是 Linux 开发者社区(特别是内核开发者社区)中最常用的系统性能测试方法,也可以算作一个典型的基准测试。内核编译是 CPU 密集型,也是内存密集型,而且是磁盘 I/O 密集型的基准测试。在使用 make 命令进行编译时可以添加“-j N”参数来使用 N 进程协助编译,所以它也可以评估系统在多处理器(SMP)系统中多任务并行执行的可扩展性。只要使用相同的内核代码、相同的内核配置、相同的命令进行编译,然后对比编译时间的长短,即可评价系统之间的性能差异。
6. Super PI
Super PI 是一个单线程基准测试,可将 pi 计算为特定位数。它使用 Gauss-Legendre 算法,是 Yasumasa Kanada 在 1995 年用于将 pi 计算为 2 的 32 次幂程序的 Windows 端口。最新为 2022 年 5 月 17 日发布的 2.1 版本下载链接https://www.superpi.net/Download/。
在实际生产环境中,运行实际的 CPU 密集型程序(如可以执行 MapReduce 的 Hadoop)当然是测试 CPU 性能较好的方法。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/fb71cca87a7b37b6206aa5002】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论