Linux-CPU性能测试
更新时间:2024-07-02
本文主要介绍BCC Linux系统中CPU性能测试工具的使用,以Centos7.6为例,主要说明如下(本次测试的参数结果仅作为参考,具体还需结合服务器自身业务情况综合判断)。
-
衡量指标
一般使用以下指标衡量CPU的性能:- Dhrystone 2 using register variables
- Double-Precision Whetstone
- 测试工具
UnixBench是一款开源的测试 Unix 系统基本性能的工具,是比较通用的测试VPS性能的工具,该工具会测试系统各个方面一系列的性能,然后将每个测试结果和一个基准值进行比较,得到一个索引值,所有测试项目的索引值结合在一起形成一个测试分数值,测试结果不仅仅取决于硬件,也取决于系统、开发库、甚至是编译器,测试执行完大约需要10-30分钟。
同时,UnixBench也支持多CPU系统的测试,默认的行为是测试两次,第一次是单个进程的测试,第二次是多个进程的测试。
- 工具安装
1)下载软件包,解压后进入unixbench目录,以unixbench-5.1.3为例
$ wget https://soft.laozuo.org/scripts/UnixBench5.1.3.tgz
$ tar -zxvf UnixBench5.1.3.tgz
$ cd UnixBench
2)make编译
$ make
如果在make过程中出现报错,可以依照如下的参考,安装依赖包。
///1.make: gcc: Command not found
make: *** [pgms/arithoh] Error 127
如果出现gcc报错,我们需要安装gcc依赖包
///
$ yum install gcc
///2.Error: Please install /usr/bin/time提示错误,解决方法如下
$ yum install time
///3.如果出现bash: make: command not found问题
$ yum -y install gcc automake autoconf libtool make
3)执行./Run开始跑分
$ ./Run
如果在run过程中出现报错,可以依照如下的参考,安装依赖包。
///3.Can't locate Time/HiRes.pm
有的时候在运行./Run时候会出现这样的错误
Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./Run line 6.
BEGIN failed--compilation aborted at ./Run line 6.
解决方案也简单,只需要安装组件
///
yum install perl-Time-HiRes
//运行安装之后我们再运行./Run就可以。
- 参数说明
测试过程中每个项目后面会有1 2 3 4 5 6 7 8 9 10 数字,意思是进行了10组测试,测试过程中部分内容及解释如下:
测试项目 | 项目说明 |
---|---|
Dhrystone 2 using register variables | 测试 string handling,该测试侧重字符串处理,没有浮点运算,结果受硬件设计和软件优化影响大 |
Double-Precision Whetstone | 测试浮点数操作的速度和效率 |
Execl Throughput | 此测试考察每秒钟可以执行的 execl 系统调用的次数 |
File Copy 1024 bufsize 2000 maxblocks | 测试从一个文件向另外一个文件传输数据的速率 |
File Copy 256 bufsize 500 maxblocks | 测试从一个文件向另外一个文件传输数据的速率 |
File Read 4096 bufsize 8000 maxblocks | 测试从一个文件向另外一个文件传输数据的速率 |
Pipe-based Context Switching | 测试两个进程(每秒钟)通过一个管道交换一个不断增长的整数的次数 |
Pipe Throughput | 一秒钟内一个进程可以向一个管道写 512 字节数据然后再读回的次数 |
Process Creation | 测试每秒钟一个进程可以创建子进程然后收回子进程的次数(子进程一定立即退出) |
Shell Scripts (8 concurrent) | 测试一秒钟内一个进程可以并发地开始一个shell 脚本的 n 个拷贝的次数,n 一般取值1,2,4,8 |
System Call Overhead | 测试进入和离开操作系统内核的代价,即一次系统调用的代价 |