UnixBench算分介绍【转】

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

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

Benchmark Run: &#x4E00; <span class="hljs-number">6&#x6708; <span class="hljs-number">25 <span class="hljs-number">2018 <span class="hljs-number">20:<span class="hljs-number">54:<span class="hljs-number">19 - <span class="hljs-number">21:<span class="hljs-number">22:<span class="hljs-number">54
<span class="hljs-number">4 CPUs <span class="hljs-keyword">in system; running <span class="hljs-number">4 parallel copies of tests

Dhrystone <span class="hljs-number">2 using register variables      <span class="hljs-number">114984418.6 lps   (<span class="hljs-number">10.0 s, <span class="hljs-number">7 samples)
Double-Precision Whetstone                    <span class="hljs-number">16614.2 MWIPS (<span class="hljs-number">11.6 s, <span class="hljs-number">7 samples)
Execl Throughput                              <span class="hljs-number">13645.3 lps   (<span class="hljs-number">30.0 s, <span class="hljs-number">2 samples)
File Copy <span class="hljs-number">1024 bufsize <span class="hljs-number">2000 maxblocks        <span class="hljs-number">751698.4 KBps  (<span class="hljs-number">30.0 s, <span class="hljs-number">2 samples)
File Copy <span class="hljs-number">256 bufsize <span class="hljs-number">500 maxblocks          <span class="hljs-number">230211.7 KBps  (<span class="hljs-number">30.0 s, <span class="hljs-number">2 samples)
File Copy <span class="hljs-number">4096 bufsize <span class="hljs-number">8000 maxblocks       <span class="hljs-number">1964420.6 KBps  (<span class="hljs-number">30.0 s, <span class="hljs-number">2 samples)
Pipe Throughput                             <span class="hljs-number">5999380.0 lps   (<span class="hljs-number">10.0 s, <span class="hljs-number">7 samples)
Pipe-based Context Switching                <span class="hljs-number">1095000.2 lps   (<span class="hljs-number">10.0 s, <span class="hljs-number">7 samples)
Process Creation                              <span class="hljs-number">34454.9 lps   (<span class="hljs-number">30.0 s, <span class="hljs-number">2 samples)
Shell Scripts (<span class="hljs-number">1 concurrent)                  <span class="hljs-number">18218.1 lpm   (<span class="hljs-number">60.0 s, <span class="hljs-number">2 samples)
Shell Scripts (<span class="hljs-number">8 concurrent)                   <span class="hljs-number">2493.1 lpm   (<span class="hljs-number">60.0 s, <span class="hljs-number">2 samples)
System Call Overhead                        <span class="hljs-number">5643267.3 lps   (<span class="hljs-number">10.0 s, <span class="hljs-number">7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone <span class="hljs-number">2 using register variables         <span class="hljs-number">116700.0  <span class="hljs-number">114984418.6   <span class="hljs-number">9853.0
Double-Precision Whetstone                       <span class="hljs-number">55.0      <span class="hljs-number">16614.2   <span class="hljs-number">3020.8
Execl Throughput                                 <span class="hljs-number">43.0      <span class="hljs-number">13645.3   <span class="hljs-number">3173.3
File Copy <span class="hljs-number">1024 bufsize <span class="hljs-number">2000 maxblocks          <span class="hljs-number">3960.0     <span class="hljs-number">751698.4   <span class="hljs-number">1898.2
File Copy <span class="hljs-number">256 bufsize <span class="hljs-number">500 maxblocks            <span class="hljs-number">1655.0     <span class="hljs-number">230211.7   <span class="hljs-number">1391.0
File Copy <span class="hljs-number">4096 bufsize <span class="hljs-number">8000 maxblocks          <span class="hljs-number">5800.0    <span class="hljs-number">1964420.6   <span class="hljs-number">3386.9
Pipe Throughput                               <span class="hljs-number">12440.0    <span class="hljs-number">5999380.0   <span class="hljs-number">4822.7
Pipe-based Context Switching                   <span class="hljs-number">4000.0    <span class="hljs-number">1095000.2   <span class="hljs-number">2737.5
Process Creation                                <span class="hljs-number">126.0      <span class="hljs-number">34454.9   <span class="hljs-number">2734.5
Shell Scripts (<span class="hljs-number">1 concurrent)                     <span class="hljs-number">42.4      <span class="hljs-number">18218.1   <span class="hljs-number">4296.7
Shell Scripts (<span class="hljs-number">8 concurrent)                      <span class="hljs-number">6.0       <span class="hljs-number">2493.1   <span class="hljs-number">4155.1
System Call Overhead                          <span class="hljs-number">15000.0    <span class="hljs-number">5643267.3   <span class="hljs-number">3762.2
                                                                   ========
System Benchmarks Index Score                                        <span class="hljs-number">3357.0</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

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

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

    <span class="hljs-string">"dhry2reg", <span class="hljs-string">"whetstone-double", <span class="hljs-string">"execl"&#xFF0C;
    <span class="hljs-string">"fstime", <span class="hljs-string">"fsbuffer", <span class="hljs-string">"fsdisk", <span class="hljs-string">"pipe", <span class="hljs-string">"context1", <span class="hljs-string">"spawn", <span class="hljs-string">"shell1", <span class="hljs-string">"shell8",<span class="hljs-string">"syscall"</span></span></span></span></span></span></span></span></span></span></span></span>

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

  • 模块:有时候你只想测某一个小程序的结果,那你可以修改自己去新增一个模块,修改测试内容,这对于调试是非常方便的,也可以直接指定某个执行程序。
  • 迭代次数:关于迭代次数,不能想当然的就理解成这就是要执行的次数了,默认框架分为两种迭代模式,一种是短迭代次数,默认 3次,一种是 长迭代次数,默认10 次。那输入的迭代次数就是默认的长迭代次数,短迭代次数=(迭代次数+1)/3,如果结果小于就是1. 程序配置好了,该选择哪个迭代次数。
  • 进程并发数:如果你想进程并发数不是系统CPU数,那就可以通过这个调整;
  • 输出方式:是静默还是详细输出方式;

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

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

Process Creation -- <span class="hljs-number">1 copy
==> <span class="hljs-string">"/opt/unixbench/UnixBench/pgms/spawn" <span class="hljs-number">30 <span class="hljs-number">2>&<span class="hljs-number">1 >> <span class="hljs-string">"/opt/unixbench/UnixBench/results/VM_0_13_centos-2018-06-25-05.log"

</span></span></span></span></span></span>

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

COUNT|<span class="hljs-type">x|<span class="hljs-type">y|<span class="hljs-type">x</span></span></span>

经过解析,变成如下:

    COU<span class="hljs-symbol">NT0 = x
    COU<span class="hljs-symbol">NT1 = y
    COU<span class="hljs-symbol">NT2 = z</span></span></span>

算分过程如下:

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

Shell Scripts (<span class="hljs-number">1 concurrent) -- <span class="hljs-number">4 copies
==> <span class="hljs-string">"/opt/unixbench/UnixBench/pgms/looper" <span class="hljs-number">60 <span class="hljs-string">"/opt/unixbench/UnixBench/pgms/multi.sh" <span class="hljs-number">1 <span class="hljs-number">2>&<span class="hljs-number">1 >> <span class="hljs-string">"/opt/unixbench/UnixBench/results/VM_0_13_centos-2018-06-25-05.log"

</span></span></span></span></span></span></span></span></span>

算分过程如下:

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

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

Original: https://www.cnblogs.com/sky-heaven/p/16426894.html
Author: sky-heaven
Title: UnixBench算分介绍【转】

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/546791/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球