(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. 什么是一致性hash?

    一致性hash 前言 说出来大家可能不相信,我昨天做梦梦到自己在面试,然后面试官问了我这个问题哈哈~然后我就打算按照自己的理解写一写.如果有写的不对的欢迎大家指正! 直接开始 普通hash算法 普通h ...

  2. Java学习笔记--文件IO

    简介 对于任何程序设计语言,输入和输出(Input\Output)都是系统非常核心的功能,程序运行需要数据,而数据的获取往往需要跟外部系统进行通信,外部系统可能是文件.数据库.其他程序.网络.IO设备 ...

  3. 问题笔记-vueCli3.0打包路径出错

    需求:vueCli3.0打包路径出错.解决办法:vueCli3.0打包,新版本更新脚手架做出精简,webpack配置文件需要手动配置.在文件根目录创建一个vue.config.js配置文件.基本版: ...

  4. MyBatis笔记(六)

    1. 动态SQL 1.1 介绍 概念:**动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句.* 官网描述: MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其 ...

  5. CIE标准色度系统(上)

    一.颜色匹配 为了满足工业生产对颜色特性的定量化和标准化的需要,由国际照明委员会(CIE)的协调和指导下,先后提出CIE1931和CIE1964标准色度观察者光谱三刺激值,由此奠定了现代色度学基础. ...

  6. hadoop 简单安装部署

    hadoop第一课:虚拟机搭建和安装hadoop及启动 hadoop第二课:hdfs集群集中管理和hadoop文件操作 hadoop第三课:java开发hdfs hadoop第四课:Yarn和Map/ ...

  7. Unity 渲染流水线 :CPU与GPU合作创造的艺术wfd

    前言 对于Unity渲染流程的理解可以帮助我们更好对Unity场景进行性能消耗的分析,进而更好的提升场景渲染的效率,最后提升游戏整体的性能表现 Unity的游戏画面的最终的呈现是由CPU与GPU相互配 ...

  8. leetcode 刷题(数组篇)74 题 搜索二维矩阵 (二分查找)

    二分查找要注意边界值的取值,边界情况的判定 题目描述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一 ...

  9. JavaWeb 基础知识补充

    软件架构 1. C/S: Client/Server 客户端/服务器端         * 在用户本地有一个客户端程序,在远程有一个服务器端程序         * 如:QQ,迅雷...        ...

  10. day18.进程2

    1 进程调度算法(了解) -先来先服务调度算法 -短作业优先调度算法 -时间片轮转法 -多级反馈队列 2 同步异步,阻塞非阻塞(了解) 1 同步调用:提交了以后,一直等待结果返回 2 异步调用:提交了 ...