返回顶部
首页 > 资讯 > 精选 >UnixBench算分介绍
  • 581
分享到

UnixBench算分介绍

2023-06-03 23:06:03 581人浏览 泡泡鱼
摘要

  关于如何用UnixBench,介绍文章很多,这里就不展开了。这里重点描述下它是如何算分的。运行参数碰到很多客户,装好后,直接./Run,就把结果跑出来了,然后还只取最后一个分值,比谁高谁低。下面列一下4C8G的结果:-----

  关于如何用UnixBench,介绍文章很多,这里就不展开了。这里重点描述下它是如何算分的。

运行参数

碰到很多客户,装好后,直接./Run,就把结果跑出来了,然后还只取最后一个分值,比谁高谁低。
下面列一下4C8G的结果:

------------------------------------------------------------------------Benchmark Run: 一 6月 25 2018 20:25:47 - 20:54:194 CPUs in system; running 1 parallel copy of testsDhrystone 2 using reGISter variables       30971628.9 lps   (10.0 s, 7 samples)Double-Precision Whetstone                     3928.1 MWIPS (12.4 s, 7 samples)Execl Throughput                               3117.6 lps   (30.0 s, 2 samples)File Copy 1024 bufsize 2000 maxblocks        645027.2 KBps  (30.0 s, 2 samples)File Copy 256 bufsize 500 maxblocks          229505.4 KBps  (30.0 s, 2 samples)File Copy 4096 bufsize 8000 maxblocks       1288742.6 KBps  (30.0 s, 2 samples)Pipe Throughput                             1635960.9 lps   (10.0 s, 7 samples)Pipe-based Context Switching                 337333.8 lps   (10.0 s, 7 samples)Process Creation                               8238.2 lps   (30.0 s, 2 samples)shell Scripts (1 concurrent)                   5817.0 lpm   (60.0 s, 2 samples)Shell Scripts (8 concurrent)                   2183.9 lpm   (60.0 s, 2 samples)System Call Overhead                        2465754.7 lps   (10.0 s, 7 samples)System Benchmarks Index Values               BASELINE       RESULT    INDEXDhrystone 2 using register variables         116700.0   30971628.9   2654.0Double-Precision Whetstone                       55.0       3928.1    714.2Execl Throughput                                 43.0       3117.6    725.0File Copy 1024 bufsize 2000 maxblocks          3960.0     645027.2   1628.9File Copy 256 bufsize 500 maxblocks            1655.0     229505.4   1386.7File Copy 4096 bufsize 8000 maxblocks          5800.0    1288742.6   2222.0Pipe Throughput                               12440.0    1635960.9   1315.1Pipe-based Context Switching                   4000.0     337333.8    843.3Process Creation                                126.0       8238.2    653.8Shell Scripts (1 concurrent)                     42.4       5817.0   1371.9Shell Scripts (8 concurrent)                      6.0       2183.9   3639.9System Call Overhead                          15000.0    2465754.7   1643.8                                                                   ========System Benchmarks Index Score                                        1362.9------------------------------------------------------------------------Benchmark Run: 一 6月 25 2018 20:54:19 - 21:22:544 CPUs in system; running 4 parallel copies of testsDhrystone 2 using register variables      114984418.6 lps   (10.0 s, 7 samples)Double-Precision Whetstone                    16614.2 MWIPS (11.6 s, 7 samples)Execl Throughput                              13645.3 lps   (30.0 s, 2 samples)File Copy 1024 bufsize 2000 maxblocks        751698.4 KBps  (30.0 s, 2 samples)File Copy 256 bufsize 500 maxblocks          230211.7 KBps  (30.0 s, 2 samples)File Copy 4096 bufsize 8000 maxblocks       1964420.6 KBps  (30.0 s, 2 samples)Pipe Throughput                             5999380.0 lps   (10.0 s, 7 samples)Pipe-based Context Switching                1095000.2 lps   (10.0 s, 7 samples)Process Creation                              34454.9 lps   (30.0 s, 2 samples)Shell Scripts (1 concurrent)                  18218.1 lpm   (60.0 s, 2 samples)Shell Scripts (8 concurrent)                   2493.1 lpm   (60.0 s, 2 samples)System Call Overhead                        5643267.3 lps   (10.0 s, 7 samples)System Benchmarks Index Values               BASELINE       RESULT    INDEXDhrystone 2 using register variables         116700.0  114984418.6   9853.0Double-Precision Whetstone                       55.0      16614.2   3020.8Execl Throughput                                 43.0      13645.3   3173.3File Copy 1024 bufsize 2000 maxblocks          3960.0     751698.4   1898.2File Copy 256 bufsize 500 maxblocks            1655.0     230211.7   1391.0File Copy 4096 bufsize 8000 maxblocks          5800.0    1964420.6   3386.9Pipe Throughput                               12440.0    5999380.0   4822.7Pipe-based Context Switching                   4000.0    1095000.2   2737.5Process Creation                                126.0      34454.9   2734.5Shell Scripts (1 concurrent)                     42.4      18218.1   4296.7Shell Scripts (8 concurrent)                      6.0       2493.1   4155.1System Call Overhead                          15000.0    5643267.3   3762.2                                                                   ========System Benchmarks Index Score                                        3357.0

很多人就拿了3357那个分数去比了,但是上面那个单进程结果1362.9也有意义,但凡接触了这么多案例,没人关心过。多进程结果就是根据系统CPU核数,同时起多个进程的结果;单进程就是只起一个进程的结果,对于系统性能来说,两个结果都是有意义的。

话说回来,./Run 到底执行了什么?默认执行的是Index模块,它包含下面几个小程序

    "dhry2reg", "whetstone-double", "execl",    "fstime", "fsbuffer", "fsdisk", "pipe", "context1", "spawn", "shell1", "shell8","syscall"

对应的就是上面的结果的各个结果对应的case了。
翻看了下它的源代码,它的执行参数如下:./Run 模块 -i 迭代次数 -c 进程并发数 -q/-v (输出方式。

  • 模块:有时候你只想测某一个小程序的结果,那你可以修改自己去新增一个模块,修改测试内容,这对于调试是非常方便的,也可以直接指定某个执行程序。

  • 迭代次数:关于迭代次数,不能想当然的就理解成这就是要执行的次数了,默认框架分为两种迭代模式,一种是短迭代次数,默认 3次,一种是 长迭代次数,默认10 次。那输入的迭代次数就是默认的长迭代次数,短迭代次数=(迭代次数+1)/3,如果结果小于就是1. 程序配置好了,该选择哪个迭代次数。

  • 进程并发数:如果你想进程并发数不是系统CPU数,那就可以通过这个调整;

  • 输出方式:是静默还是详细输出方式;

算分

每个小程序在执行的时候都需要指定迭代模式和执行时间以及并发情况,所有的进程一次执行的结果都是统一模式。

单进程算分:

下面是单进程的一个举例:

Process Creation -- 1 copy==> "/opt/unixbench/UnixBench/pgms/spawn" 30 2>&1 >> "/opt/unixbench/UnixBench/results/VM_0_13_Centos-2018-06-25-05.log"#### Pass 1# COUNT0: 247371 #分数# COUNT1: 1 # timebase 程序写死# COUNT2: lps # 测试项名称# elapsed: 30.003119 # 耗时# pid: 16803 # 进程ID# status: 0 # 是否成功退出#### Pass 2# COUNT0: 242919# COUNT1: 1# COUNT2: lps# elapsed: 30.002898# pid: 5035# status: 0#### Pass 3# COUNT0: 243989# COUNT1: 1# COUNT2: lps# elapsed: 30.002732# pid: 21228# status: 0*Dump score:     242919.0Count score:     243989.0Count score:     247371.0>>>> Results of 1 copy>>>> score: 8188.34084738901>>>> time: 30.0029255>>>> iterations: 2

其中COUNT0,COUNT1,COUNT2是这么算出来的,每个进程的结果如:

COUNT|x|y|x

经过解析,变成如下:

    COUNT0 = x    COUNT1 = y    COUNT2 = z

算分过程如下:

  1. 根据COUNT0从小到大,去掉 1/3 的最差结果;

  2. 如果timebase,耗时都是大于0, $product += log($COUNT0) - log(耗时/ $timebase) 否则就不需要考虑耗时这块: $product += log($COUNT0)

  3. 单项性能分:$score = exp($product/2),2是统计的迭代次数,经过计算恰好是这个分数,与系统输出一致。
    它总的算法思想:就是先通过log降维,把不同次数不一样的结果尽可能拉平,平均然后在阶乘,后面多个结果也是这个思想,先降维,再平均,再阶乘。

多进程算分

那如果并发执行多个呢?举例如下:

Shell Scripts (1 concurrent) -- 4 copies==> "/opt/unixbench/UnixBench/pgms/looper" 60 "/opt/unixbench/UnixBench/pgms/multi.sh" 1 2>&1 >> "/opt/unixbench/UnixBench/results/VM_0_13_centos-2018-06-25-05.log"#### Pass 1# COUNT0: 4614# COUNT1: 60# COUNT2: lpm# elapsed: 60.005639# pid: 20858# status: 0# COUNT0: 4596# COUNT1: 60# COUNT2: lpm# elapsed: 60.009496# pid: 20859# status: 0# COUNT0: 4592# COUNT1: 60# COUNT2: lpm# elapsed: 60.011761# pid: 20862# status: 0# COUNT0: 4614# COUNT1: 60# COUNT2: lpm# elapsed: 60.011930# pid: 20864# status: 0#### Pass 2# COUNT0: 4547# COUNT1: 60# COUNT2: lpm# elapsed: 60.005597# pid: 10791# status: 0# COUNT0: 4590# COUNT1: 60# COUNT2: lpm# elapsed: 60.013270# pid: 10793# status: 0# COUNT0: 4578# COUNT1: 60# COUNT2: lpm# elapsed: 60.006054# pid: 10794# status: 0# COUNT0: 4561# COUNT1: 60# COUNT2: lpm# elapsed: 60.014214# pid: 10797# status: 0#### Pass 3# COUNT0: 4631# COUNT1: 60# COUNT2: lpm# elapsed: 60.013816# pid: 31734# status: 0# COUNT0: 4632# COUNT1: 60# COUNT2: lpm# elapsed: 60.012614# pid: 31735# status: 0# COUNT0: 4637# COUNT1: 60# COUNT2: lpm# elapsed: 60.005633# pid: 31737# status: 0# COUNT0: 4645# COUNT1: 60# COUNT2: lpm# elapsed: 60.006082# pid: 31740# status: 0*Dump score:      18276.0Count score:      18416.0Count score:      18545.0>>>> Sum of 4 copies>>>> score: 18477.4244713467>>>> time: 60.009621375>>>> iterations: 2

算分过程如下:

  1. 分数:如18545,就是PASS3个项的加总: 4631+4632+4637+4645

  2. 耗时:平均值,即:(60.013816+60.012614+60.005633+60.006082)/4=60.00953625

  3. timebase: 还是那个COUNT1
    上述3步即是把一个并发结果合成一个结果,然后的积分方式跟单进程的方式一样

总分

那文章开头多进程的图例分数举例:

  1. 算出来的每项score有个加权分数,要除以10(作为单项比拼,我觉得除不除10无所谓,估计是为了跟总分接近)

  2. 总分计算:=exp(average(每项score分*10)),结果恰恰好就是我们要的结果。

综上对UnixBench的分数计算算是全面介绍了一边,附件有excel证明计算过程。

附件下载:                                                                                算分过程.xls...[米拉齐].1543830848.zip                                    

--结束END--

本文标题: UnixBench算分介绍

本文链接: https://lsjlt.com/news/235951.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • UnixBench算分介绍
      关于如何用UnixBench,介绍文章很多,这里就不展开了。这里重点描述下它是如何算分的。运行参数碰到很多客户,装好后,直接./Run,就把结果跑出来了,然后还只取最后一个分值,比谁高谁低。下面列一下4C8G的结果:-----...
    99+
    2023-06-03
  • MySQL计算百分比方法介绍
    根据相应条件抽出相应count数(myCount)抽出总count数(totalCount)计算百分比:myCount / totalCount * 100四舍五入:使用ROUND函数ROUND(numbe...
    99+
    2024-04-02
  • postgresql——运算符介绍
    postgresql的内部运算符很丰富,主要有四大类,分别是:算术运算符、比较运算符、逻辑运算符、位操作运算符。如下:①:算术运算符: 用于各类数值运算,包括加(+)减(-) 乘(*)除(/)求余...
    99+
    2024-04-02
  • 分库分表介绍
    目录 一、前言         二、何谓数据切分 三、垂直切分 1、垂直分库 2、垂直分表 3、垂直切分优缺点 4、拆分需考虑的业务因素 四、水平切分 1、水平分库 2、水平分表 3、水平切分优缺点 五、垂直与水平切分的联合使用 六、数据分...
    99+
    2023-09-03
    mysql 分表分库 垂直水平 表分区 切分策略
  • MySQL分区介绍
    不论创建何种类型的分区,如果表中存在主键或唯一索引时,分区列必须是唯一索引的一个组成部分 mysql> create table t1(     -> col1 i...
    99+
    2024-04-02
  • MySQL <>和<=> 运算符介绍
    <> 运算符 作用:表示不等于。 说明:和 “!=” 运算符的作用一致,相较之下 “<>” 的可读性较差。 ### 查询非汉族用户,以下两条语句的作用是一致的。 > SELEC&#...
    99+
    2022-05-22
    MySQL <> MySQL <=> MySQL <> <=>
  • Oracle分区表介绍
    http://blog.csdn.net/gapapp/article/details/11631371 一. 分区表理论知识     &n...
    99+
    2024-04-02
  • shell的比较运算介绍
    shell字符串比较、判断是否为数字 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$...
    99+
    2022-06-04
    shell
  • php中珠算法的介绍
    这篇文章主要介绍“php中珠算法的介绍”,在日常操作中,相信很多人在php中珠算法的介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中珠算法的介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!说明...
    99+
    2023-06-20
  • chatgpt的算法原理介绍
    chatgpt的算法原理是基于GPT-3,先通过人工标注方式训练出强化学习的冷启动模型与reward反馈模型,最后通过强化学习的方式...
    99+
    2023-02-09
    chatgpt
  • linux awk运算符实例介绍
    本篇内容介绍了“linux awk运算符实例介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、运算符介绍运算符描述赋值运算符= += -...
    99+
    2023-06-13
  • python运算符号详细介绍
    目录比较运算符布尔运算符python中的位运算符运算符的优先级比较运算符 a,b=10,30 print('a>b吗?',a>b) print('a<b吗?'...
    99+
    2024-04-02
  • Vue中的计算属性介绍
    目录1、什么是计算属性2.计算属性的语法 3.举例 1、什么是计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。 例...
    99+
    2024-04-02
  • VBScript运算符的详细介绍
    这篇文章主要讲解了“VBScript运算符的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VBScript运算符的详细介绍”吧!VBScript 运算符VBScript 有一套完整的...
    99+
    2023-06-08
  • MySQL逻辑分层介绍
    上一篇文章主要介绍了MySQL在Ubuntu18.04系统上的安装,以及安装过程中可能会遇到的一些问题的解决方案。 在这篇文章里,开始介绍MySQL数据库的逻辑分层。通过本文的介绍,可以大致了解到MySQL的语句从客户端发出请求后...
    99+
    2021-01-31
    MySQL逻辑分层介绍
  • Python线性分类介绍
    通过约束类的协方差相等,将贝叶斯分类器简化为线性分类器。比较生成模型和判别模型在挑战性分类任务中的性能。 在本实验课中:我们将比较线性分类的“生成建模”和&l...
    99+
    2024-04-02
  • Oracleuserenv()函数介绍分析
    Oracle的用户环境(User Environment)是指数据库会话的各种设定和属性。Oracle提供了一个名为USERENV的...
    99+
    2023-09-14
    函数
  • MySQL的分表和分区介绍
        在日常开发或维护中经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果...
    99+
    2024-04-02
  • Mysql 分区介绍(九) —— 分区管理
    一、分区操作 1. 将没有分区的表改为分区表 ALTER TABLE trb3 PARTITION BY KEY(id) PARTITIONS 2; 2. 删除分区 # 删除所有分区, 同时数据丢失 ALT...
    99+
    2024-04-02
  • php加密算法的实例介绍
    本篇内容主要讲解“php加密算法的实例介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php加密算法的实例介绍”吧!<php#加密算法header(&#...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作