(KVM连载) 8.2.1 CPU性能测试工具

8.2.1 CPU性能测试工具

CPU是计算机系统中最核心的部件,CPU的性能直接决定了系统的计算能力,故对KVM虚拟化进行性能测试首先选择对客户机中CPU的性能进行测试。任何程序的执行都会消耗CPU资源,所以任何程序都几乎可以作为衡量CPU性能的基准测试工具,不过最好是选择CPU密集型的测试程序。有很多的测试程序可用于CPU性能的基准测试,包括:SPEC组织的SPEC CPU和SPECjbb系列、UnixBench、SysBench、PCMark、PC内核编译、Super PI、等等,下面对其中的几种进行简单的介绍。

1)SPECCPU2006

SPEC(Standard Performance Evaluation Corporation)是一个非盈利组织,它专注于创建、维护和支持一系列标准化的基准测试程序(benchmark),让这些基准测试程序可以应用于对高性能计算机的性能测试。IT界的许多大公司,如IBM、Microsoft、Intel、HP、Oracle、Cisco、EMC、华为、联想、中国电信等,都是SPEC组织的成员。SPEC系列的基准测试工具,针对不同的测试重点,有不同的测试工具,如:测试CPU的SPEC CPU、测试Java应用的SPECjbb、测试电源管理的SPECpower、测试Web应用的SPECweb、测试数据中心虚拟化服务器整合的SPECvirt_sc,等等。相对来说,SPEC组织的各种基准测试工具在业界的口碑都比较良好,也具有一定的权威性。

SPEC CPU2006是SPEC CPU系列的最新版本,之前的版本有CPU2000、CPU95等,其官方主页是:http://www.spec.org/cpu2006/ 。SPEC CPU2006既支持在Linux系统上运行又支持在Windows系统上运行,是一个非常强大的CPU密集型的基准测试集合,里面包含有分别针对整型计算和浮点型计算的数十个基准测试程序[2]。在SPEC CPU2006的测试中,有bzip2数据压缩测试(401.bzip2)、人工智能领域的象棋程序(458.sjeng)、基于隐马尔可夫模型的蛋白质序列分析(456.hmmer)、实现H.264/AVC标准的视频压缩(464.h264ref)、2D地图的路径查找(473.astar)、量子化学中的计算(465.tonto)、天气预报建模(481.wrf)、来自卡内基梅隆大学的一个语音识别程序(482.sphinx3),等等。当然,其中一些基准测试也是内存密集型的,如其中的429.mcf的基准测试就既是CPU密集型又是内存密集型的。当测试完成后,可以生成html、PDF等格式的测试报告。测试报告中,有分别对整型计算和浮点型计算的总体分数,并且有各个具体的基准测试程序的分数。分别在非虚拟化原生系统和KVM虚拟化客户机系统中运行SPEC CPU2006,然后对比它们的得分即可大致衡量虚拟化中CPU的性能。

2)SPECjbb2005

SPECjbb2005是SPEC组织的一个用于评估服务器端Java应用性能的基准测试程序,其官方主页为:http://www.spec.org/jbb2005/ 。该基准测试主要测试了Java虚拟机(JVM)、JIT编译器、垃圾回收、Java线程等各个方面,它也同样对CPU、缓存、内存结构的性能进行度量。SPECjbb2005既是CPU密集型也是内存密集型的基准测试程序,它用Java应用能够比较真实地反映Java程序在某个系统上的运行性能。

3)UnixBench

UnixBench(也即曾经的BYTE基准测试)为类Unix系统提供了基础的衡量指标,其官方主页为:http://code.google.com/p/byte-unixbench/ 。它并不是专门测试CPU的基准测试,而是测试了系统的许多方面,它的测试结果不仅会受系统的CPU、内存、磁盘等硬件的影响,也会受操作系统、程序库、编译器等软件系统的影响。UnixBench中包含了许多测试用例,如:文件复制、管道的吞吐量、上下文切换、进程创建、系统调用、基本的2D和3D图形测试,等等。

4)SysBench

SysBench是一个模块化的、跨平台的、支持多线程的基准测试工具,它主要评估的是系统在模拟的高压力的数据库应用中的性能,其官方主页为:http://sysbench.sourceforge.net/ 。其实,SysBench并非是一个完全CPU密集型的基准测试,它主要衡量了CPU调度器、内存分配和访问、文件系统I/O操作、线程创建等多方面的性能。

5)PCMark

PCMark是由Futuremark公司开发的针对一个计算机系统整体及其部件进行性能评估的基准测试工具,其官方网站是:http://www.futuremark.com/benchmarks/pcmark 。在PCMark的测试结果中,会对系统整体和各个测试组件进行评分,得分的高低就直接反映其性能的好坏。目前,PCMark只能在Windows系统中运行,PCMark分为几个不同等级的版本,其中基础版是可以免费下载和使用的,而高级版和专业版都需要支付一定的费用才能合法使用。

6)内核编译(kernel build或kernel compile)

内核编译,就是以固定的配置文件对Linux内核代码进行编译,它是Linux开发者社区(特别是内核开发者社区)中最常用的系统性能测试方法,也可以算作是一个典型的基准测试。内核编译是CPU密集型,也是内存密集型,而且是磁盘I/O密集型的基准测试,而且使用make命令进行编译时可以添加“-j N”参数来使用N进程协作编译,所以它也可以评估系统在多处理器(SMP)系统中多任务并行执行的可扩展性。只要使用相同的内核代码,使用相同的内核配置,使用相同的命令进行编译,然后对比编译时间的长短即可评价系统之间的性能差异。另外,关于Linux内核编译步骤可以参考3.3.3节“编译KVM”中的详细介绍。

7)Super PI

Super PI是一个计算圆周率π的程序,是一个典型的CPU密集型基准测试工具。Super PI最初是在1995年时日本数学家金田康正[3]用于计算圆周率π的程序,当时他将圆周率计算到了小数点后的4G(2的32次方)个数据位。Super PI基准测试程序的原理非常简单,它根据用户的设置计算圆周率π的小数点后N个位数,然后统计消耗的时间,根据时间长度的比较就能初步衡量CPU计算能力的优劣。Super PI最初是一个Windows上的应用程序,可以从http://www.superpi.net/ 网站下载,目前支持计算小数点后32M(2的25次方)个数据位。不过,目前也有Linux版本的Super PI,可以从http://superpi.ilbello.com/ 网站下载,它也是支持计算到小数点后32M个数据位。目前的Super PI都支持单线程程序,可以执行多个实例从而实现多个计算程序同时执行,另外,也有一些测试程序实现了多线程的Super PI,如:Hyper PI (http://virgilioborges.com.br/hyperpi/)。

在实际生产环境中,运行实际的CPU密集型程序(如可以执行MapReduce的Hadoop)当然是测试CPU性能较好的方法,不过,为了体现更普通而不是特殊的应用场景,本节选择了3个基准测试程序用于测试KVM虚拟化中的CPU性能,包括一个比较权威SPEC CPU2006、一个Linux社区中常用的内核编译和一个非常简单的Super PI。

【转载】8.2.1 CPU性能测试工具的更多相关文章

  1. Linux系统性能测试工具(四)——CPU性能测试工具之super_pi、sysbench

    本文介绍关于Linux系统(适用于centos/ubuntu等)的CPU性能测试工具-sysbench.CPU性能测试工具包括: super_pi: sysbench——不仅可以测试CPU性能,而且可 ...

  2. [转载]性能测试工具 2 步解决 too many open files 的问题,让服务器支持更多连接数

    [转载]性能测试工具 2 步解决 too many open files 的问题,让服务器支持更多连接数 大话性能 · 2018年10月09日 · 最后由 大话性能 回复于 2018年10月09日 · ...

  3. 网络性能测试工具iperf详细使用图文教程【转载】

    原文:http://blog.163.com/hlz_2599/blog/static/142378474201341341339314/ 参考:http://man.linuxde.net/iper ...

  4. Apache性能测试工具ab使用详解~转载

    Apache自带性能测试工具ab使用详解 一. Apache的下载 1. http://www.apache.org/,进入Apache的官网 2. 将页面拖到最下方“Apache Project L ...

  5. 【web性能】web性能测试工具推荐

    WEB性能测试工具主要分为三种,一种是测试页面资源加载速度的,一种是测试页面加载完毕后页面呈现.JS操作速度的,还有一种是总体上对页面进行评价分析,下面分别对这些工具进行介绍,如果谁有更好的工具也请一 ...

  6. python模块介绍- multi-mechanize 性能测试工具

    python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...

  7. 【腾讯开源】Android性能测试工具APT使用指南

    [腾讯开源]Android性能测试工具APT使用指南 2014-04-23 09:58 CSDN CODE 作者 CSDN CODE 17 7833 腾讯 apt 安卓 性能测试 开源 我们近日对腾讯 ...

  8. Linux 性能测试工具 sysbench 的安装与简单使用

    文章目录 Linux 性能测试工具 sysbench 的安装与简单使用        一 背景        二 实验环境            2.1 操作系统            2.2 其他配 ...

  9. 性能测试工具 wrk 安装与使用

    介绍 今天给大家介绍一款开源的性能测试工具 wrk,简单易用,没有Load Runner那么复杂,他和 apache benchmark(ab)同属于性能测试工具,但是比 ab 功能更加强大,并且可以 ...

随机推荐

  1. JS实现环绕地球飞行的3D飞行线动画效果(JS+HTML)

    1.项目介绍 JS+HTML实现绕地球飞行的3D飞行线动画效果,且3D地球可以随意拖动和滑动缩放,画面中心是蓝色地球,地球表面上的两点连线之间有光电随机出现沿着抛物线轨迹3D飞行,可使用较好的浏览器打 ...

  2. [Fundamental of Power Electronics]-PART II-8. 变换器传递函数-8.4 变换器传递函数的图形化构建

    8.4 变换器传递函数的图形化构建 第7章推导出的buck变换器小信号等效电路模型在图8.55中再次给出.让我们用上一节的图解方法来构造该变换器的传递函数和端阻抗. Fig. 8.55 Small-s ...

  3. 轻松理解 Java 静态代理/动态代理

    目录 什么是代理模式 定义 代理模式的主要角色 优点 缺点 静态代理 动态代理 JDK原生动态代理 例子 分析 小结 CGLIB动态代理 例子 分析 final类型 其他方案 尾声 理解Java动态代 ...

  4. 如何写好一个 Spring 组件

    背景 Spring 框架提供了许多接口,可以使用这些接口来定制化 bean ,而非简单的 getter/setter 或者构造器注入.细翻 Spring Cloud Netflix.Spring Cl ...

  5. JAVAEE_Servlet_18_关于Servlet线程安全问题

    关于Servlet线程安全问题 Servlet线程安全 Servlet 是单实例多线程的环境下运行的. 在服务器运行期间,一个Servlet接口实现类,只能创建一个实例对象(一个进程(Servlet接 ...

  6. 👰🏿‍♂️

    出于利益我便是绝对的利己主义者,凡事以自己为根本,以求自己利益最大化而不顾他人.社会.国家: 出于兴趣考我便希望全天下的人都好,都可爱,都不必受餐食无饱和居无定所的困苦,不必因感情的躁动而心情颠簸,因 ...

  7. 老Python总结的字典相关知识

    字典 Python中的字典(dict)也被称为映射(mapping)或者散列(hash),是支持Python底层实现的重要数据结构. 同时,也是应用最为广泛的数据结构,内部采用hash存储,存储方式为 ...

  8. ASP.NET Core五种Filter

    Authorization Filter Authorization是五种Filter中优先级最高的,通常用于验证Request合不合法,不合法后面就直接跳过. 权限控制器过滤器,可以通过Authon ...

  9. 08. linux下 mv find grep命令

    mv命令: find命令: grep命令: 作用:查找文件中相应的内容,及文本信息. 格式:grep "内容" [选项]  文件名或路径 常用选项:

  10. 2-7 Java基础数据类型之字符型

    代码中输入如下部分: /* char的取值范围0-65535 */ public class DataType06 { public static void main(String[]args){ c ...