2013年5月23日木曜日

kvmによる仮想マシン"-cpu host"オプションで性能向上する場合がある

kvmのゲストマシンのチューニングをするために、以下のページを眺めていたら、
http://www.linux-kvm.org/page/Tuning_KVM

こんな、記述を発見しました。

Modern processors come with a wide variety of performance enhancing features such as streaming instructions sets (sse) and other performance-enhancing instructions. These features vary from processor to processor. 
QEMU and KVM default to a compatible subset of cpu features, so that if you change your host processor, or perform a live migration, the guest will see its cpu features unchanged. This is great for compatibility but comes at a performance cost. 
To pass all available host processor features to the guest, use the command line switch
 qemu -cpu host
なるほど-cpu hostをつければ、CPUの高速演算機能が使えて、性能が向上するかもしれないのか…

ということで試してみました。

"-cpu host"が無いゲストマシン

# egrep model /proc/cpuinfo
model           : 2
model name      : QEMU Virtual CPU version 1.4.1
model           : 2
model name      : QEMU Virtual CPU version 1.4.1
# egrep flags /proc/cpuinfo
flags           : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm rep_good nopl pni cx16 popcnt hypervisor lahf_lm
flags           : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm rep_good nopl pni cx16 popcnt hypervisor lahf_lm
"-cpu host"があるゲストマシン
# egrep model /proc/cpuinfo
model           : 45
model name      : Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
model           : 45
model name      : Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz 
# egrep flags /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm xsaveopt tsc_adjust
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm xsaveopt tsc_adjust
CPUの認識のされ方、見えてるflagの数が違います。

実際にlinpackベンチマークを採ってみました。

"-cpu host"が無いゲストマシン 13.0GFlops
# cat lin_xeon64.txt
Thu May 23 18:59:36 JST 2013
Intel(R) Optimized LINPACK Benchmark data
Current date/time: Thu May 23 18:59:36 2013
CPU frequency:    1.991 GHz
Number of CPUs: 2
Number of cores: 2
Number of threads: 2
Parameters are set to:
Number of tests: 15
Number of equations to solve (problem size) : 1000  2000  5000  10000 15000 18000 20000 22000 25000 26000 27000 30000 35000 40000 45000
Leading dimension of array                  : 1000  2000  5008  10000 15000 18008 20016 22008 25000 26000 27000 30000 35000 40000 45000
Number of trials to run                     : 4     2     2     2     2     2     2     2     2     2     1     1     1     1     1  
Data alignment value (in Kbytes)            : 4     4     4     4     4     4     4     4     4     4     4     1     1     1     1  
Maximum memory requested that can be used=3873852256, at the size=22000
=================== Timing linear equation system solver ===================
Size   LDA    Align. Time(s)    GFlops   Residual     Residual(norm) Check
1000   1000   4      0.073      9.1585   1.125766e-12 3.839152e-02   pass
1000   1000   4      0.058      11.5232  1.125766e-12 3.839152e-02   pass
1000   1000   4      0.058      11.5443  1.125766e-12 3.839152e-02   pass
1000   1000   4      0.059      11.2817  1.125766e-12 3.839152e-02   pass
2000   2000   4      0.440      12.1283  4.992673e-12 4.343014e-02   pass
2000   2000   4      0.440      12.1421  4.992673e-12 4.343014e-02   pass
5000   5008   4      6.610      12.6155  2.427966e-11 3.385603e-02   pass
5000   5008   4      6.605      12.6248  2.427966e-11 3.385603e-02   pass
10000  10000  4      51.994     12.8258  8.998519e-11 3.172969e-02   pass
10000  10000  4      51.965     12.8330  8.998519e-11 3.172969e-02   pass
15000  15000  4      174.335    12.9087  2.187028e-10 3.444605e-02   pass
15000  15000  4      173.510    12.9702  2.187028e-10 3.444605e-02   pass
18000  18008  4      298.936    13.0083  2.887995e-10 3.162709e-02   pass
18000  18008  4      298.826    13.0131  2.887995e-10 3.162709e-02   pass
20000  20016  4      409.500    13.0260  3.701985e-10 3.277068e-02   pass
20000  20016  4      408.885    13.0456  3.701985e-10 3.277068e-02   pass
22000  22008  4      544.380    13.0417  4.627267e-10 3.389291e-02   pass
22000  22008  4      544.508    13.0386  4.627267e-10 3.389291e-02   pass
Performance Summary (GFlops)
Size   LDA    Align.  Average  Maximal
1000   1000   4       10.8769  11.5443
2000   2000   4       12.1352  12.1421
5000   5008   4       12.6201  12.6248
10000  10000  4       12.8294  12.8330
15000  15000  4       12.9395  12.9702
18000  18008  4       13.0107  13.0131
20000  20016  4       13.0358  13.0456
22000  22008  4       13.0402  13.0417
Residual checks PASSED
End of tests
Done: Thu May 23 19:53:14 JST 2013

"-cpu host"があるゲストマシン 28.1GFlops
# cat lin_xeon64.txt
Thu May 23 18:58:46 JST 2013
Intel(R) Optimized LINPACK Benchmark data
Current date/time: Thu May 23 18:58:46 2013
CPU frequency:    1.991 GHz
Number of CPUs: 2
Number of cores: 2
Number of threads: 2
Parameters are set to:
Number of tests: 15
Number of equations to solve (problem size) : 1000  2000  5000  10000 15000 18000 20000 22000 25000 26000 27000 30000 35000 40000 45000
Leading dimension of array                  : 1000  2000  5008  10000 15000 18008 20016 22008 25000 26000 27000 30000 35000 40000 45000
Number of trials to run                     : 4     2     2     2     2     2     2     2     2     2     1     1     1     1     1  
Data alignment value (in Kbytes)            : 4     4     4     4     4     4     4     4     4     4     4     1     1     1     1  
Maximum memory requested that can be used=3873852256, at the size=22000
=================== Timing linear equation system solver ===================
Size   LDA    Align. Time(s)    GFlops   Residual     Residual(norm) Check
1000   1000   4      0.040      16.7342  1.029343e-12 3.510325e-02   pass
1000   1000   4      0.033      20.1526  1.029343e-12 3.510325e-02   pass
1000   1000   4      0.033      20.1592  1.029343e-12 3.510325e-02   pass
1000   1000   4      0.033      20.1368  1.029343e-12 3.510325e-02   pass
2000   2000   4      0.277      19.2876  4.298950e-12 3.739560e-02   pass
2000   2000   4      0.275      19.4285  4.298950e-12 3.739560e-02   pass
5000   5008   4      3.235      25.7781  2.581643e-11 3.599893e-02   pass
5000   5008   4      3.219      25.9008  2.581643e-11 3.599893e-02   pass
10000  10000  4      24.330     27.4089  9.603002e-11 3.386116e-02   pass
10000  10000  4      24.457     27.2672  9.603002e-11 3.386116e-02   pass
15000  15000  4      80.958     27.7979  2.042799e-10 3.217442e-02   pass
15000  15000  4      80.941     27.8037  2.042799e-10 3.217442e-02   pass
18000  18008  4      139.266    27.9224  2.894987e-10 3.170367e-02   pass
18000  18008  4      139.108    27.9542  2.894987e-10 3.170367e-02   pass
20000  20016  4      191.221    27.8951  4.097986e-10 3.627616e-02   pass
20000  20016  4      191.229    27.8940  4.097986e-10 3.627616e-02   pass
22000  22008  4      252.595    28.1068  4.548092e-10 3.331299e-02   pass
22000  22008  4      252.600    28.1062  4.548092e-10 3.331299e-02   pass
Performance Summary (GFlops)
Size   LDA    Align.  Average  Maximal
1000   1000   4       19.2957  20.1592
2000   2000   4       19.3581  19.4285
5000   5008   4       25.8395  25.9008
10000  10000  4       27.3381  27.4089
15000  15000  4       27.8008  27.8037
18000  18008  4       27.9383  27.9542
20000  20016  4       27.8946  27.8951
22000  22008  4       28.1065  28.1068
Residual checks PASSED
End of tests
Done: Thu May 23 19:25:57 JST 2013

"-cpu host"無しで 13.0GFlops、有りで 28.1GFlops。


だいぶ違いますね。

使っている便利マークソフトが、Intelで最適化されたLinpackなので、最新のCPUの高速演算機能を使い倒せるようになっているのだと思います。


この他、sysbenchのcpuテストや、Unixbenchで比べてみましたが、"-cpu host"有り無しでの性能差はありませんでした。


そうすると、ものによっては、最適化によってCPUの機能(sse4やavx等)が使い倒せれば、速くなるということなのかもしれません。

MegaRAIDのStorCLIを試してみました。

みなさんこんにちは!

今日も相変わらず良い天気ですね。そろそろ、長袖のシャツでは暑く感じることも多くなってきました。

さて、本日は、LSIのRAIDカードの管理ユーティリティーツール、StorCLIについて、ご紹介したいと思います。
皆さんは、RAIDカードの管理ユーティリティーと言ったら、何を思い浮かべますか?
多くの方は、綺麗なGUIツールでRAIDのアレイ削除を行ったり、Webブラウザーを使って管理することを思い浮かべるかもしれません。

今回ご紹介するのは、そういうものではなくて、sshログインしたサーバ上でコマンドラインでRAIDの設定を行う、ソフトウェアです。
古くは、3wareのtw_cliであったり、Adaptecのarcconf、LSIのmegacliをご存知の方にとっては、お馴染みかもしれません。

私個人的には、tw_cliは使いこなしており、その後、arcconfなども使っておりましたが、LSIのmegacliはあまり使いやすいとは感じておりませんでした。
つい最近、LSIのサイトでドライバなどを探していた時に、たまたま、StorCLIという比較的新しいツールがリリースされていましたので、試しに使ってみました。

インストールは以下の通り
# wget http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/1.03.11_StorCLI.zip
# unzip 1.03.11_StorCLI.zip
# cd StorCli_All_OS/Linux/
# alien  -t storcli-1.03.11-1.noarch.rpm
# tar tvf storcli-1.03.11.tgz
drwxr-xr-x root/root         0 2013-05-23 01:57 ./
drwxr-xr-x root/root         0 2013-05-23 01:57 ./opt/
drwxr-xr-x root/root         0 2013-05-23 01:57 ./opt/MegaRAID/
drwxr-xr-x root/root         0 2013-05-23 01:57 ./opt/MegaRAID/storcli/
-rwxr-xr-x root/root   4956856 2013-01-30 19:25 ./opt/MegaRAID/storcli/storcli64
-rwxr-xr-x root/root   4907676 2013-01-30 19:25 ./opt/MegaRAID/storcli/storcli
# tar  xf storcli-1.03.11.tgz  -C /
# tree /opt/      
/opt/
`-- MegaRAID
    `-- storcli
        |-- storcli
        `-- storcli64
2 directories, 2 files

storcli64が64bit Linux用のバイナリです。早速、コマンドを叩いてみると、
# /opt/MegaRAID/storcli/storcli64
     Storage Command Line Tool  Ver 1.03.11 Jan 30, 2013
     (c)Copyright 2012, LSI Corporation, All Rights Reserved.

help - lists all the commands with their usage. E.g. storcli help
help - gives details about a particular command. E.g. storcli add help
List of commands:
Commands   Description
-------------------------------------------------------------------
add        Adds/creates a new element to controller like VD,Spare..etc
delete     Deletes an element like VD,Spare
show       Displays information about an element
set        Set a particular value to a property
start      Start background operation
stop       Stop background operation
pause      Pause background operation
resume     Resume background operation
download   Downloads file to given device
expand     expands size of given drive
insert     inserts new drive for missing
transform  downgrades the controller
/cx        Controller specific commands
/ex        Enclosure specific commands
/sx        Slot/PD specific commands
/vx        Virtual drive specific commands
/dx        Disk group specific commands
/fx        Foreign configuration specific commands
/px        Phy specific commands
/bbu       Battery Backup Unit related commands
Other aliases : cachecade, freespace, sysinfo
Use a combination of commands to filter the output of help further.
E.g. 'storcli cx show help' displays all the show operations on cx.
Use verbose for detailed description E.g. 'storcli add  verbose help'
Use 'page=[x]' as the last option in all the commands to set the page break.
X=lines per page. E.g. 'storcli help page=10'

Command options must be entered in the same order as displayed in the help of
the respective commands.
新しいCLIツールと聞いて薄々感づいていましたが、どうやら、tw_cliと構文がそっくりです。
3wareは、2009年にLSIに買収されたのですが、使い易いと評判だった3wareのCLIの良い部分を、既存のMegaraidのプロダクトラインでも使えるようにしたのでしょう。

コントローラの情報を表示してみます。
# /opt/MegaRAID/storcli/storcli64 show
Status Code = 0
Status = Success
Description = None
Number of Controllers = 1
Host Name = 151
Operating System  = Linux3.8.8-64kvmh01
System Overview :
===============
----------------------------------------------------------------
Ctl Model   Ports PDs DGs DNOpt VDs VNOpt BBU  sPR DS  EHS ASOs
----------------------------------------------------------------
  0 9266-8i     8   6   0     0   0     0 Msng On  1&2 Y      2
----------------------------------------------------------------
Ctl=Controller Index|DGs=Drive groups|VDs=Virtual drives|Fld=Failed
PDs=Physical drives|DNOpt=DG NotOptimal|VNOpt=VD NotOptimal|Opt=Optimal
Msng=Missing|Dgd=Degraded|NdAtn=Need Attention|Unkwn=Unknown
sPR=Scheduled Patrol Read|DS=DimmerSwitch|EHS=Emergency Hot Spare
Y=Yes|N=No|ASOs=Advanced Software Options|BBU=Battery backup unit
コントローラ0番が9266-8i であることがわかりますね。ポート数は8で、現在接続されているドライブは6本、BBUはMissing … あってます。
下の方に書いてある、説明が地味に便利ですね。

コントローラ0番の情報を、さらに詳しく見てみましょう。
# /opt/MegaRAID/storcli/storcli64 /c0 show
Controller = 0
Status = Success
Description = None
Product Name = LSI MegaRAID SAS 9266-8i
Serial Number = SV22625074
SAS Address =  500605b0050719c0
Mfg. Date = 07/03/12
System Time = 05/23/2013 02:16:39
Controller Time = 05/22/2013 17:16:38
FW Package Build = 23.9.0-0018
BIOS Version = 5.38.00_4.12.05.00_0x05180000
FW Version = 3.220.35-1998
Driver Name = megaraid_sas
Driver Version = 06.504.01.00-rc1
Controller Bus Type = N/A
PCI Slot = N/A
PCI Bus Number = 6
PCI Device Number = 0
PCI Function Number = 0
Physical Drives = 6
PD LIST :
=======
----------------------------------------------------------------------------
EID:Slt DID State DG       Size Intf Med SED PI SeSz Model               Sp
----------------------------------------------------------------------------
252:0    39 JBOD  -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:1     8 JBOD  -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:2    38 UGood -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:3     9 UGood -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:4    37 UGood -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:5    11 UGood -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
----------------------------------------------------------------------------
EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down|T-Transition|F-Foreign

ああ、良いですね、いろんな情報とれてます。文法は、tw_cliそのまんまですね。
せっかくですので、RAIDのアレイを作ってみましょう…まずは、ヘルプを…
# /opt/MegaRAID/storcli/storcli64 add help      
     Storage Command Line Tool  Ver 1.03.11 Jan 30, 2013

     (c)Copyright 2012, LSI Corporation, All Rights Reserved.


storcli /cx add vd type=raid[0|1|5|6|00|10|50|60]
 [Size=,,..|all] [name=,..] 
 drives=e:s|e:s-x|e:s-x,y,e:s-x,y,z [PDperArray=x][SED]
 [pdcache=on|off|default][pi][DimmerSwitch(ds)=default|automatic(auto)|
 none|maximum(max)|MaximumWithoutCaching(maxnocache)][wt|wb][nora|ra]
 [direct|cached] [CachedBadBBU|NoCachedBadBBU] [cachevd]
 [Strip=<8>] [AfterVd=X] 
 [Spares = [e:]s|[e:]s-x|[e:]s-x,y] [force]
storcli /cx add vd each type=raid0 [name=,..] [drives=e:s|e:s-x|e:s-x,y]
 [SED] [pdcache=on|off|default][pi] [DimmerSwitch(ds)=default|automatic(auto)|
 none|maximum(max)|MaximumWithoutCaching(maxnocache)] [wt|wb] [nora|ra]
 [direct|cached] [CachedBadBBU|NoCachedBadBBU]
 [Strip=<8>] 
storcli /cx add vd cachecade Type = raid[0,1,10] drives = [e:]s|[e:]s-x|
 [e:]s-x,y [WT| WB] [assignvds = 0,1,2]
storcli /cx[/ex]/sx add hotsparedrive [DGs=] [enclaffinity] [nonrevertible]
なるほど… スロット2,3,4のドライブを使って、RAID5のアレイ=バーチャルドライブを作ってみます。

# /opt/MegaRAID/storcli/storcli64 /c0 add vd type=raid5  drives=252:2,252:3,252:4
Controller = 0
Status = Success
Description = Add VD Succeeded
うまくいったみたいなので、確認します。

# /opt/MegaRAID/storcli/storcli64 /c0 show
Controller = 0
Status = Success
Description = None
Product Name = LSI MegaRAID SAS 9266-8i
Serial Number = SV22625074
SAS Address =  500605b0050719c0
Mfg. Date = 07/03/12
System Time = 05/23/2013 02:36:32
Controller Time = 05/22/2013 17:36:30
FW Package Build = 23.9.0-0018
BIOS Version = 5.38.00_4.12.05.00_0x05180000
FW Version = 3.220.35-1998
Driver Name = megaraid_sas
Driver Version = 06.504.01.00-rc1
Controller Bus Type = N/A
PCI Slot = N/A
PCI Bus Number = 6
PCI Device Number = 0
PCI Function Number = 0
Drive Groups = 1
TOPOLOGY :
========
--------------------------------------------------------------------------
DG Arr Row EID:Slot DID Type  State BT       Size PDC  PI SED DS3  FSpace
--------------------------------------------------------------------------
 0 -   -   -        -   RAID5 Optl  N  446.125 GB enbl N  N   none N    
 0 0   -   -        -   RAID5 Optl  N  446.125 GB enbl N  N   none N    
 0 0   0   252:2    38  DRIVE Onln  N  223.062 GB enbl N  N   none -    
 0 0   1   252:3    9   DRIVE Onln  N  223.062 GB enbl N  N   none -    
 0 0   2   252:4    37  DRIVE Onln  N  223.062 GB enbl N  N   none -    
--------------------------------------------------------------------------
DG=Disk Group Index|Arr=Array Index|Row=Row Index|EID=Enclosure Device ID
DID=Device ID|Type=Drive Type|Onln=Online|Rbld=Rebuild|Dgrd=Degraded
Pdgd=Partially degraded|Offln=Offline|BT=Background Task Active
PDC=PD Cache|PI=Protection Info|SED=Self Encrypting Drive|Frgn=Foreign
DS3=Dimmer Switch 3|dflt=Default|Msng=Missing|FSpace=Free Space Present
Virtual Drives = 1
VD LIST :
=======
-----------------------------------------------------------
DG/VD TYPE  State Access Consist Cache sCC       Size Name
-----------------------------------------------------------
0/0   RAID5 Optl  RW     No      RaWTD -   446.125 GB    
-----------------------------------------------------------
Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded
Optl=Optimal|RO=Read Only|RW=Read Write|B=Blocked|Consist=Consistent|
Ra=Read Ahead Adaptive|R=Read Ahead Always|NR=No Read Ahead|WB=WriteBack|
AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled
Check Consistency
Physical Drives = 6
PD LIST :
=======
----------------------------------------------------------------------------
EID:Slt DID State DG       Size Intf Med SED PI SeSz Model               Sp
----------------------------------------------------------------------------
252:0    39 JBOD  -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:1     8 JBOD  -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:2    38 Onln  0  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U

252:3     9 Onln  0  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:4    37 Onln  0  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U

252:5    11 UGood -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
----------------------------------------------------------------------------
EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down|T-Transition|F-Foreign

ドライブグループ0番と、バーチャルドライブ0番が、今作成したRAID5のアレイ=VDです。DG=0の情報だけを見るには、次のようにします。

# /opt/MegaRAID/storcli/storcli64 /c0/d0 show
Controller = 0
Status = Success
Description = Show Diskgroup Succeeded

TOPOLOGY :
========
--------------------------------------------------------------------------
DG Arr Row EID:Slot DID Type  State BT       Size PDC  PI SED DS3  FSpace
--------------------------------------------------------------------------
 0 -   -   -        -   RAID5 Optl  N  446.125 GB enbl N  N   none N    
 0 0   -   -        -   RAID5 Optl  N  446.125 GB enbl N  N   none N    
 0 0   0   252:2    38  DRIVE Onln  N  223.062 GB enbl N  N   none -    
 0 0   1   252:3    9   DRIVE Onln  N  223.062 GB enbl N  N   none -    
 0 0   2   252:4    37  DRIVE Onln  N  223.062 GB enbl N  N   none -    
--------------------------------------------------------------------------
DG=Disk Group Index|Arr=Array Index|Row=Row Index|EID=Enclosure Device ID
DID=Device ID|Type=Drive Type|Onln=Online|Rbld=Rebuild|Dgrd=Degraded
Pdgd=Partially degraded|Offln=Offline|BT=Background Task Active
PDC=PD Cache|PI=Protection Info|SED=Self Encrypting Drive|Frgn=Foreign
DS3=Dimmer Switch 3|dflt=Default|Msng=Missing|FSpace=Free Space Present
VD=0の情報だけを見るには、以下のようにします。

# /opt/MegaRAID/storcli/storcli64 /c0/v0 show
Controller = 0
Status = Success
Description = None

Virtual Drives :
==============
-----------------------------------------------------------
DG/VD TYPE  State Access Consist Cache sCC       Size Name
-----------------------------------------------------------
0/0   RAID5 Optl  RW     No      RaWTD -   446.125 GB    
-----------------------------------------------------------
Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded
Optl=Optimal|RO=Read Only|RW=Read Write|B=Blocked|Consist=Consistent|
Ra=Read Ahead Adaptive|R=Read Ahead Always|NR=No Read Ahead|WB=WriteBack|
AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled
Check Consistency
ライトキャッシュの設定がWTになっているので、AWBに変えてみます。
root@151:~# /opt/MegaRAID/storcli/storcli64 /c0/v0 set wrcache=AWB
Controller = 0
Status = Success
Description = None
Detailed Status :
===============
---------------------------------------
VD Property Value Status  ErrCd ErrMsg
---------------------------------------
 0 wrCache  AWB   Success     0 -    
---------------------------------------
確認は次のようにします。
root@151:~# /opt/MegaRAID/storcli/storcli64 /c0/v0 show
Controller = 0
Status = Success
Description = None

Virtual Drives :
==============
------------------------------------------------------------
DG/VD TYPE  State Access Consist Cache  sCC       Size Name
------------------------------------------------------------
0/0   RAID5 Optl  RW     No      RaAWBD -   446.125 GB    
------------------------------------------------------------
Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded
Optl=Optimal|RO=Read Only|RW=Read Write|B=Blocked|Consist=Consistent|
Ra=Read Ahead Adaptive|R=Read Ahead Always|NR=No Read Ahead|WB=WriteBack|
AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled
Check Consistency
AWB Always WriteBackに変わりました。

次に、ホットスペアドライブを設定してみます。まずはヘルプで、コマンドシンタックスを確認します。
# /opt/MegaRAID/storcli/storcli64 /c0/e252/s5 add help
     Storage Command Line Tool  Ver 1.03.11 Jan 30, 2013
     (c)Copyright 2012, LSI Corporation, All Rights Reserved.

NAME: Add Hot Spare Drive
SYNTAX: storcli /cx[/ex]/sx add hotsparedrive [DGs=]
        [enclaffinity] [nonrevertible]
DESCRIPTION: This command creates a hotspare drive.
OPTIONS:
DGs          - Specifies the drive group to which the hotspare drive is
               dedicated.
enclaffinity - Specifies the enclosure to which the hotspare is associated
               with. If this option is specified, affinity is set; if it is
               not specified, there is no affinity.NOTE Affinity cannot be
               removed once it is set for a hotspare drive.
nonrevertible- Sets the drive as a nonrevertible hotspare.
CONVENTION:
/cx - specifies a controller where X is the controller index.
/ex - specifies a enclosure where X is the enclosure device ID.
/sx - specifies a physical drive where X is the slot number.

そしてスロット5番のドライブをホットスペアに設定します。
# /opt/MegaRAID/storcli/storcli64 /c0/e252/s5 add hotsparedrive
Controller = 0
Status = Success
Description = Add Hot Spare Succeeded.
確認してみます。
root@151:~# /opt/MegaRAID/storcli/storcli64 /c0/e252/s5 show
Controller = 0
Status = Success
Description = Show Drive Information Succeeded.

Drive Information :
=================
----------------------------------------------------------------------------
EID:Slt DID State DG       Size Intf Med SED PI SeSz Model               Sp
----------------------------------------------------------------------------
252:5    11 GHS   -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
----------------------------------------------------------------------------
EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down|T-Transition|F-Foreign
スロット5番のドライブがグローバルホットスペアになったようです。

グローバルホットスペアの機能を確認するために、今RAID5のアレイの作成に用いたドライブの内、スロット2番のドライブをオフラインにしてみます。
# /opt/MegaRAID/storcli/storcli64 /c0/e252/s2 set offline
Controller = 0
Status = Success
Description = Set Drive Offline Succeeded.
バーチャルドライブの状態を見てみます。


# /opt/MegaRAID/storcli/storcli64 /c0/v0 show all
Controller = 0
Status = Success
Description = None

/c0/v0 :
======
------------------------------------------------------------
DG/VD TYPE  State Access Consist Cache  sCC       Size Name
------------------------------------------------------------
0/0   RAID5 Dgrd  RW     Yes     RaAWBD -   446.125 GB    
------------------------------------------------------------
Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded
Optl=Optimal|RO=Read Only|RW=Read Write|B=Blocked|Consist=Consistent|
Ra=Read Ahead Adaptive|R=Read Ahead Always|NR=No Read Ahead|WB=WriteBack|
AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled
Check Consistency

PDs for VD 0 :
============
----------------------------------------------------------------------------
EID:Slt DID State DG       Size Intf Med SED PI SeSz Model               Sp
----------------------------------------------------------------------------
252:5    11 Rbld   0 223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:3     9 Onln   0 223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:4    37 Onln   0 223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U

----------------------------------------------------------------------------
EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down|T-Transition|F-Foreign

VD0 Properties :
==============
Strip Size = 256 KB
Span Depth = 1
Number of Drives Per Span = 3
Disk Cache Policy = Enabled
Encryption = None
Data Protection = Disabled
Active Operations = None
Exposed to OS = Yes
Creation Date = 22-05-2013
Creation Time = 05:28:54 PM
Emulation type = None
vd0はDegradedとなり、ホットスペアにしてあったスロット5番のドライブがvd0に加わり、Rebuild状態になっていることがわかります。


最後にvd0を削除してみます。
root@151:~#  /opt/MegaRAID/storcli/storcli64 /c0/v0 del        
Controller = 0
Status = Success
Description = Delete VD succeeded


#  /opt/MegaRAID/storcli/storcli64 /c0/e252/s2-5 show
Controller = 0
Status = Success
Description = Show Drive Information Succeeded.

Drive Information :
=================
----------------------------------------------------------------------------
EID:Slt DID State DG       Size Intf Med SED PI SeSz Model               Sp
----------------------------------------------------------------------------
252:2    38 UGood -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:3     9 UGood -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:4    37 UGood -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
252:5    11 UGood -  223.062 GB SATA SSD N   N  512B INTEL SSDSC2CW240A3 U
----------------------------------------------------------------------------
EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down|T-Transition|F-Foreign
スロット2,3,4,5のドライブが、最初の状態Unconfigured Goodに戻りました。

以上、見てきたように、StorCLIの使い方について試してみました。
3wareのtw_cliに慣れた管理者の方には、直感的で大変使い易いのではないかと思います。


参考までにStorCLIのダウンロードリンクと、リファレンスマニュアルへの直リンクを貼っておきます。
StorCLI
http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/1.03.11_StorCLI.zip
リファレンスマニュアル
http://www.lsi.com/downloads/Public/MegaRAID%20Common%20Files/StorCLI_RefMan_revf_.pdf



2013年5月22日水曜日

もろもろLinpack Benchmarkしてみました

こんにちは!

今日は、引きこもって仕事をするには、もったいないくらいの良いお天気でしたね♪
なかなか良い季節になってきたので、週末が楽しみです。

前回に引き続き、いくつかのサーバでベンチマークを採る機会があったので、ここに晒します。


Linpack ベンチマークは「一番じゃなきゃダメですか」で有名なスパコンのランキングを決定するためにも使われる、有名なベンチマークソフトです。
LINPACK ベンチマークは LINPACK に基づいたベンチマークプログラムで、システムの浮動小数点演算性能を評価する。ジャック・ドンガラが考案したもので、理学・工学で一般的な n×n の線型方程式系 Ax = b を解く速度を測定する。このベンチマークの最新版はTOP500で世界の高速なコンピュータの性能値としてランキングに使用されている。 http://ja.wikipedia.org/wiki/LINPACK より
 スパコンの評価のためには、並列計算用のMPIライブラリや、行列計算ライブラリ、LINPACK本体等、いろいろセットアップが必要です。

クラスター構成ではない普通のSMPマシンを評価するには、IntelのOptimized LINPACK Benchmarkというのを使えば、お手軽にベンチマークができそうです。


まず、以下のページから、tarボールをダウンロードし、展開します。

http://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download/
wget http://registrationcenter.intel.com/irc_nas/3058/l_lpk_p_11.0.3.008.tgz
tar xvf  l_lpk_p_11.0.3.008.tgz
以下のディレクトリにベンチマーク本体、スクリプト、入力ファイルなどが用意されているので、そのディレクトリで標準的なrunme_xeon64などのスクリプトを実行すれば良さそうです。
cd  linpack_11.0.3/benchmarks/linpack/
 試しに実行してみます。
./runme_xeon64
This is a SAMPLE run script for SMP LINPACK. Change it to reflect
the correct number of CPUs/threads, problem input files, etc..
Tue May 14 18:47:46 JST 2013
Intel(R) Optimized LINPACK Benchmark data
Current date/time: Tue May 14 18:47:46 2013
CPU frequency:    2.932 GHz
Number of CPUs: 1
Number of cores: 4
Number of threads: 8
Parameters are set to:
Number of tests: 15
Number of equations to solve (problem size) : 1000  2000  5000  10000 15000 18000 20000 22000 25000 26000 27000 30000 35000 40000 45000
Leading dimension of array                  : 1000  2000  5008  10000 15000 18008 20016 22008 25000 26000 27000 30000 35000 40000 45000
Number of trials to run                     : 4     2     2     2     2     2     2     2     2     2     1     1     1     1     1  
Data alignment value (in Kbytes)            : 4     4     4     4     4     4     4     4     4     4     4     1     1     1     1  
Maximum memory requested that can be used=3202964416, at the size=20000
=================== Timing linear equation system solver ===================
Size   LDA    Align. Time(s)    GFlops   Residual     Residual(norm) Check
1000   1000   4      0.038      17.4850  1.236872e-12 4.218050e-02   pass
1000   1000   4      0.037      17.9669  1.236872e-12 4.218050e-02   pass
1000   1000   4      0.037      17.9904  1.236872e-12 4.218050e-02   pass
1000   1000   4      0.037      18.0328  1.236872e-12 4.218050e-02   pass
2000   2000   4      0.271      19.7349  4.570122e-12 3.975446e-02   pass
2000   2000   4      0.270      19.7479  4.570122e-12 3.975446e-02   pass
5000   5008   4      2.512      33.1981  2.113014e-11 2.946428e-02   pass
5000   5008   4      2.492      33.4647  2.113014e-11 2.946428e-02   pass
10000  10000  4      17.385     38.3576  9.365270e-11 3.302289e-02   pass
10000  10000  4      17.431     38.2572  9.365270e-11 3.302289e-02   pass
15000  15000  4      59.425     37.8704  2.005595e-10 3.158845e-02   pass
15000  15000  4      60.409     37.2536  2.005595e-10 3.158845e-02   pass
18000  18008  4      103.157    37.6964  2.980711e-10 3.264245e-02   pass
18000  18008  4      102.891    37.7938  2.980711e-10 3.264245e-02   pass
20000  20016  4      142.172    37.5190  3.917629e-10 3.467960e-02   pass
20000  20016  4      142.003    37.5634  3.917629e-10 3.467960e-02   pass
Performance Summary (GFlops)
Size   LDA    Align.  Average  Maximal
1000   1000   4       17.8687  18.0328
2000   2000   4       19.7414  19.7479
5000   5008   4       33.3314  33.4647
10000  10000  4       38.3074  38.3576
15000  15000  4       37.5620  37.8704
18000  18008  4       37.7451  37.7938
20000  20016  4       37.5412  37.5634
Residual checks PASSED
End of tests
Done: Tue May 14 19:01:30 JST 2013
上記は、4コア、8スレッドのCPUを搭載したサーバーですが、自動的にCPUの数を認識して、適切なThread数を設定してくれているようです。
runme_xeon64スクリプトの中で、"export OMP_NUM_THREADS=4"のように明示的にスレッド数を指定することも可能です。

入力ファイルでいくつかproblem sizeが指定されていますが、搭載しているメモリの容量から判断して、大きすぎるものは実行されないようです。

swapを含む、メモリ容量で実行可否を判断しているようなので、可能ならswapoff -aするか、あるいは、入力ファイルから大きすぎるものを削除した方が良いかもしれません。

上記の結果からは、最大で、38.4GFlopsの性能であると、判断できます。

さて、このLinpackベンチマークを、弊社にあるいくつかの物理マシン、仮想マシン上で実行してみました。

物理マシン

マシン名 CPU スペック HT メモリ
GByte
総クロック
GHz

スコア
GFlops
スコア/総クロック
1 Xeon E5-2650 2.00GHz 8 core x 2cpu on 96 32229.87.18
2Xeon E5-2650 2.00GHz 8 core x 2cpu off 96 32231.07.22
3Xeon E5-2650 2.00GHz 4 core x 2cpu on 96 16117.17.32
4Xeon E5-2603 1.80GHz 4 core x 2cpu na96 14.4103.87.21
5Xeon X5650 2.67GHz 6 core x 2cpu on 16 32.04114.13.56
6Xeon X3440 2.53GHz 4 core x 1cpu on 4 10.1238.03.75
7Xeon X3440 2.53GHz 4 core x 1cpu on 4 10.1238.43.79



マシンスペック

1,2,3は同一マシンで、Supermicro 1027R-WRF/Xeon E5-2650 x 2/メモリ 96MByte/Intel 520 SSD 240GB。2ではBIOSでHyperThreadingを無効化、3ではBIOSでアクティブコア数を4個に制限しています。

4 はSupermicro 1027R-WR/Xeon E5-2603 x 2/メモリ 96MByte/Intel 520 SSD 240GB
5 はIntel S5520SC/Xeon X5650 x 2/メモリ 16MByte/Adaptec ASR-5405/HGST SATA 2TB HDD
6,7 Intel S3420GP /Xeon X3440 x 1/メモリ 4MByte/Seagate SATA 320GB HDD

表中の総クロックGHzはクロックxコア数で計算してあります。

1と2を比べるとHyperThreadingをOFFにしても、スコアが変わらないことがわかります。また、1と3を比べると、コア数が半分になり総クロックが半分になると、スコアが約半分になっています。

また、3と4からは、総クロックにだいたい比例しているようです。

したがって、Linpack性能は、同じ世代のCPUであればHTの有無には依存せず、総クロックに比例すると考えられます。



CPUの世代の異なる1と5を比べると、最新のXeon E5-2650(Sandybridge)のスコアは約230GFlopsで、一世代前のXeon X5650(Westmere)のスコア約114GFlops比べて、倍以上の性能があることがわかります。

Xeon X5650(Westmere)とXeon X3440(Lynnfield)は同じ世代のプロセッサですが、 5と6を比べてみると、だいたい総クロックに比例した性能になっていることがわかります。

一番右の行にスコア/総クロックを示してみましたが、このページによると理論性能は、Nehalem/Westmere/Lynnfield世代で4、Sandybridge世代で8であるので、だいたいこれに近い値になっていることがわかります。


次の上記のマシン上に作成した仮想マシンの性能を調べてみました。

仮想マシン

マシン名 仮想マシン種類CPU スペック メモリGByte総クロックGHz スコアGFlopsスコア/総クロック
kvm1kvm2.0GHz x 2 (Xeon E5-2650)  44 28.27.05
kvm2kvm2.0GHz x 16 (Xeon E5-2650)432 187.35.85
kvm3kvm2.67GHz x 2 (Xeon X5650)25.34 21.94.10
kvm4kvm2.53GHz x 2 (Xeon X3440)25.0620.133.98
sak1Sakura VPS2.4GHz x 2 (Core 2 DuoT7700)14.8 11.72.43
xen1xenserver 6.11.8GHz x 8 (Xeon E5-2603) 414.4 6.80.47
xen2xenserver 6.11.8GHz x 1 (Xeon E5-2603) 41.8 6.83.78

kvm1のスコア/総クロックは7.05で理論値の8に近く、上の物理マシン表と比べても遜色なく、なかなか優秀と言えます。しかしながらkvm2の場合には、5.85と若干下がった値になっています。kvmのゲストカーネルはNUMA対応カーネルにしていないので、それが原因かもしれません。

kvm3、kvm4のスコア/総クロックを見ると優秀ではありますが、理論値の4に非常に近いか、又は超えてしまっており、ちょっと不自然です。ターボブースト機能により、実際のコアのクロックが上がっているのかもしれません。

sak1のスコア/総クロックは2.43は、Core 2 Duoの理論値4よりもだいぶ小さく、あまり優秀ではありません。

xen1、xen2も、Sandybridge世代の理論値8よりもかなり小さく、全く優秀ではありません。xen1は8CPUにも関わらず、1CPUのxen2とスコアが変わらず、仮想の8CPUのスレッドが、一個の物理コア上で実行されているように見受けられます。


以上、まとめると、
Linpackの性能はCPUの世代間で進歩があり、同じ世代のCPUであれば、おおよそクロックxコア数に比例しています。
また、kvmの仮想マシンは総じて優秀であるが、NUMAアーキテクチャのホストでホストのCPUと同じくらいのCPUをゲストに割り当てようとすると、性能は総クロックで期待されるよりも落ちてしまう。

xenserverはあまり、優秀ではありません。
SakuraのVPSもあまり優秀ではありません。

性能を求めるなら、最新の物理サーバを用いるのがおすすめで、仮想マシンを使いたいなら、VPSサービスではなく、自前でkvmによる仮想環境作るのが良いと言えるでしょう。

2013年5月9日木曜日

KVMのゲストマシンとさくらのVPSでUnixBench採ってみました

みなさん、こんにちは(^^)/
楽しかったゴールデンウィークも終わってしましたが、いかがお過ごしでしょうか?

私はというと、行楽日和の晴天を横目に、薄暗い事務所の中でコンピューターに向かって黙々と仕事をこなす毎日ですw

さて、仕事でUnixBenchを採る機会がありましたので、個人的な備忘録の意味も含め、ここに記録して(晒して)おきたいと思います。

UnixBenchは以下のページから取ってきます。

https://code.google.com/p/byte-unixbench/
wget http://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz
tar xvf UnixBench5.1.3.tgz
cd UnixBench
USAGEをざっと眺めると、makeして./Runスクリプトを実行すれば用意されたすべてのテストが実行されるらしいです。

バージョン5.1から新しく用意されたGRAPHICテストを実行したい場合には、Makefileを編集し"GRAPHIC_TESTS = defined"の行を有効にしてmakeする必要がありますが、今回は不要です。 

CPUが二つ以上のシステムの場合、テストは二回実行されます。一回目は一セットのテストが同時実行され、二回目はCPUの数をNとすると、Nセットのテストが並列に同時実行されます。 

テストの実行時間は一セットおよそ29分で、マルチCPUマシン上で、GRAPHICテストを行わない場合、およそ、58分程度かかるということです。

今回UnixBenchを実行したのは以下のマシンです。

(1)さくらのVPS512@980円 
CPU Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz x 2
メモリー 1GByte
OS Debian 6.0.7 Kernel 2.6.32 SMP x86_64

(2)内製KVMゲストマシン1 (ホストCPU Xeon X5650 @ 2.67GHz)
CPU QEMU Virtual CPU version 1.0 2.67GHz x 2
メモリー 512MByte
OS Debian 7.0 Kernel 3.9.1 SMP x86_64

(3)内製KVMゲストマシン2 (ホストCPU Xeon X3440 @ 2.53GHz)
CPU QEMU Virtual CPU version 1.0 2.52GHz x 2
メモリー 512MByte
OS Debian 7.0 Kernel 3.8.8 SMP x86_64

(4)(3)のホストマシン 
CPU Intel(R) Xeon(R) CPU X3440 @ 2.53GHz 4core 8thread
メモリー 4GByte
OS Debian 6.0.7 Kernel 3.4.0 SMP x86_64

(1)さくらのVPS512の結果
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: sak1: GNU/Linux
   OS: GNU/Linux -- 2.6.32-5-amd64 -- #1 SMP Mon Jan 9 20:49:59 UTC 2012
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz (5320.2 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   CPU 1: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz (5320.2 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   13:48:04 up 146 days, 11:37,  1 user,  load average: 0.22, 0.12, 0.04; runlevel 

------------------------------------------------------------------------
Benchmark Run: Wed May 08 2013 13:48:04 - 14:16:18
2 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       24085942.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3098.5 MWIPS (9.9 s, 7 samples)
Execl Throughput                               2249.6 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        671875.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          196527.3 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1413265.2 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1897140.7 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 287952.8 lps   (10.0 s, 7 samples)
Process Creation                               5839.1 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5899.8 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1365.4 lpm   (60.0 s, 2 samples)
System Call Overhead                        3301152.6 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   24085942.4   2063.9
Double-Precision Whetstone                       55.0       3098.5    563.4
Execl Throughput                                 43.0       2249.6    523.2
File Copy 1024 bufsize 2000 maxblocks          3960.0     671875.9   1696.7
File Copy 256 bufsize 500 maxblocks            1655.0     196527.3   1187.5
File Copy 4096 bufsize 8000 maxblocks          5800.0    1413265.2   2436.7
Pipe Throughput                               12440.0    1897140.7   1525.0
Pipe-based Context Switching                   4000.0     287952.8    719.9
Process Creation                                126.0       5839.1    463.4
Shell Scripts (1 concurrent)                     42.4       5899.8   1391.5
Shell Scripts (8 concurrent)                      6.0       1365.4   2275.7
System Call Overhead                          15000.0    3301152.6   2200.8
                                                                   ========
System Benchmarks Index Score                                        1217.3

------------------------------------------------------------------------
Benchmark Run: Wed May 08 2013 14:16:18 - 14:44:33
2 CPUs in system; running 2 parallel copies of tests

Dhrystone 2 using register variables       48543864.7 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     6093.3 MWIPS (10.0 s, 7 samples)
Execl Throughput                               6641.9 lps   (29.6 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        775102.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          214100.7 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2170934.3 KBps  (30.0 s, 2 samples)
Pipe Throughput                             3701877.8 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 603992.9 lps   (10.0 s, 7 samples)
Process Creation                              21862.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  10135.8 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1410.2 lpm   (60.0 s, 2 samples)
System Call Overhead                        5432476.9 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   48543864.7   4159.7
Double-Precision Whetstone                       55.0       6093.3   1107.9
Execl Throughput                                 43.0       6641.9   1544.6
File Copy 1024 bufsize 2000 maxblocks          3960.0     775102.5   1957.3
File Copy 256 bufsize 500 maxblocks            1655.0     214100.7   1293.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    2170934.3   3743.0
Pipe Throughput                               12440.0    3701877.8   2975.8
Pipe-based Context Switching                   4000.0     603992.9   1510.0
Process Creation                                126.0      21862.8   1735.1
Shell Scripts (1 concurrent)                     42.4      10135.8   2390.5
Shell Scripts (8 concurrent)                      6.0       1410.2   2350.3
System Call Overhead                          15000.0    5432476.9   3621.7
                                                                   ========
System Benchmarks Index Score                                        2166.7


(2)内製KVMゲストマシン1 (ホストCPU Xeon X5650 @ 2.67GHz)
BYTE UNIX Benchmarks (Version 5.1.3)
   System: v147: GNU/Linux
   OS: GNU/Linux -- 3.9.1-64kvmg01 -- #1 SMP Wed May 8 22:00:45 JST 2013
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: QEMU Virtual CPU version 1.0 (5333.3 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   CPU 1: QEMU Virtual CPU version 1.0 (5333.3 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   15:34:32 up 0 min,  1 user,  load average: 0.16, 0.03, 0.01; runlevel 2
------------------------------------------------------------------------
Benchmark Run: Thu May 09 2013 15:34:32 - 16:02:31
2 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables       30879094.2 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3749.0 MWIPS (9.1 s, 7 samples)
Execl Throughput                               4534.2 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1097888.6 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          301066.2 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2055234.3 KBps  (30.0 s, 2 samples)
Pipe Throughput                             2216106.5 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 381391.5 lps   (10.0 s, 7 samples)
Process Creation                               5417.9 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   9541.0 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2040.2 lpm   (60.0 s, 2 samples)
System Call Overhead                        4035159.8 lps   (10.0 s, 7 samples)
System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   30879094.2   2646.0
Double-Precision Whetstone                       55.0       3749.0    681.6
Execl Throughput                                 43.0       4534.2   1054.5
File Copy 1024 bufsize 2000 maxblocks          3960.0    1097888.6   2772.4
File Copy 256 bufsize 500 maxblocks            1655.0     301066.2   1819.1
File Copy 4096 bufsize 8000 maxblocks          5800.0    2055234.3   3543.5
Pipe Throughput                               12440.0    2216106.5   1781.4
Pipe-based Context Switching                   4000.0     381391.5    953.5
Process Creation                                126.0       5417.9    430.0
Shell Scripts (1 concurrent)                     42.4       9541.0   2250.2
Shell Scripts (8 concurrent)                      6.0       2040.2   3400.3
System Call Overhead                          15000.0    4035159.8   2690.1
                                                                   ========
System Benchmarks Index Score                                        1681.5
------------------------------------------------------------------------
Benchmark Run: Thu May 09 2013 16:02:31 - 16:30:31
2 CPUs in system; running 2 parallel copies of tests
Dhrystone 2 using register variables       61886737.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     7438.8 MWIPS (9.1 s, 7 samples)
Execl Throughput                               8960.8 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1356632.6 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          228901.8 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       3404779.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                             4411432.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 792350.4 lps   (10.0 s, 7 samples)
Process Creation                              29506.4 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  16737.4 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2339.6 lpm   (60.0 s, 2 samples)
System Call Overhead                        6544409.1 lps   (10.0 s, 7 samples)
System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   61886737.4   5303.1
Double-Precision Whetstone                       55.0       7438.8   1352.5
Execl Throughput                                 43.0       8960.8   2083.9
File Copy 1024 bufsize 2000 maxblocks          3960.0    1356632.6   3425.8
File Copy 256 bufsize 500 maxblocks            1655.0     228901.8   1383.1
File Copy 4096 bufsize 8000 maxblocks          5800.0    3404779.9   5870.3
Pipe Throughput                               12440.0    4411432.3   3546.2
Pipe-based Context Switching                   4000.0     792350.4   1980.9
Process Creation                                126.0      29506.4   2341.8
Shell Scripts (1 concurrent)                     42.4      16737.4   3947.5
Shell Scripts (8 concurrent)                      6.0       2339.6   3899.4
System Call Overhead                          15000.0    6544409.1   4362.9
                                                                   ========
System Benchmarks Index Score                                        2963.7
(3)内製KVMゲストマシン2 (ホストCPU Xeon X3440 @ 2.53GHz)
BYTE UNIX Benchmarks (Version 5.1.3)
   System: v153: GNU/Linux
   OS: GNU/Linux -- 3.8.8-64kvmg01 -- #1 SMP Mon Apr 22 23:44:25 JST 2013
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: QEMU Virtual CPU version 1.4.1 (5066.6 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   CPU 1: QEMU Virtual CPU version 1.4.1 (5066.6 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   04:21:48 up 2 min,  2 users,  load average: 0.06, 0.02, 0.01; runlevel 2
------------------------------------------------------------------------
Benchmark Run: Fri May 10 2013 04:21:48 - 04:49:56
2 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables       28700468.1 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3603.2 MWIPS (10.0 s, 7 samples)
Execl Throughput                               4820.8 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1136729.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          313902.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2329713.1 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1937085.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 416442.2 lps   (10.0 s, 7 samples)
Process Creation                               4905.0 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5206.7 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2342.7 lpm   (60.0 s, 2 samples)
System Call Overhead                        3696866.5 lps   (10.0 s, 7 samples)
System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   28700468.1   2459.3
Double-Precision Whetstone                       55.0       3603.2    655.1
Execl Throughput                                 43.0       4820.8   1121.1
File Copy 1024 bufsize 2000 maxblocks          3960.0    1136729.9   2870.5
File Copy 256 bufsize 500 maxblocks            1655.0     313902.4   1896.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    2329713.1   4016.7
Pipe Throughput                               12440.0    1937085.6   1557.1
Pipe-based Context Switching                   4000.0     416442.2   1041.1
Process Creation                                126.0       4905.0    389.3
Shell Scripts (1 concurrent)                     42.4       5206.7   1228.0
Shell Scripts (8 concurrent)                      6.0       2342.7   3904.5
System Call Overhead                          15000.0    3696866.5   2464.6
                                                                   ========
System Benchmarks Index Score                                        1606.1
------------------------------------------------------------------------
Benchmark Run: Fri May 10 2013 04:49:56 - 05:18:04
2 CPUs in system; running 2 parallel copies of tests
Dhrystone 2 using register variables       54903785.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     6894.6 MWIPS (10.0 s, 7 samples)
Execl Throughput                               9306.8 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1347898.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          354944.7 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       3256880.8 KBps  (30.0 s, 2 samples)
Pipe Throughput                             3680672.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 740043.1 lps   (10.0 s, 7 samples)
Process Creation                              34071.7 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  17647.1 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2415.1 lpm   (60.0 s, 2 samples)
System Call Overhead                        5929544.7 lps   (10.0 s, 7 samples)
System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   54903785.4   4704.7
Double-Precision Whetstone                       55.0       6894.6   1253.6
Execl Throughput                                 43.0       9306.8   2164.4
File Copy 1024 bufsize 2000 maxblocks          3960.0    1347898.4   3403.8
File Copy 256 bufsize 500 maxblocks            1655.0     354944.7   2144.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    3256880.8   5615.3
Pipe Throughput                               12440.0    3680672.6   2958.7
Pipe-based Context Switching                   4000.0     740043.1   1850.1
Process Creation                                126.0      34071.7   2704.1
Shell Scripts (1 concurrent)                     42.4      17647.1   4162.0
Shell Scripts (8 concurrent)                      6.0       2415.1   4025.1
System Call Overhead                          15000.0    5929544.7   3953.0
                                                                   ========
System Benchmarks Index Score                                        2991.1
(4)(3)のホストマシン 
BYTE UNIX Benchmarks (Version 5.1.3)
   System: kvm: GNU/Linux
   OS: GNU/Linux -- 3.4.0-64kvmh01 -- #1 SMP Fri May 25 14:59:18 JST 2012
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: Intel(R) Xeon(R) CPU X3440 @ 2.53GHz (5066.2 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 1: Intel(R) Xeon(R) CPU X3440 @ 2.53GHz (5066.2 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 2: Intel(R) Xeon(R) CPU X3440 @ 2.53GHz (5066.2 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 3: Intel(R) Xeon(R) CPU X3440 @ 2.53GHz (5066.2 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 4: Intel(R) Xeon(R) CPU X3440 @ 2.53GHz (5066.2 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 5: Intel(R) Xeon(R) CPU X3440 @ 2.53GHz (5066.2 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 6: Intel(R) Xeon(R) CPU X3440 @ 2.53GHz (5066.2 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 7: Intel(R) Xeon(R) CPU X3440 @ 2.53GHz (5066.2 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   20:37:04 up 113 days,  7:51,  2 users,  load average: 0.50, 0.22, 0.52; runlevel 2
------------------------------------------------------------------------
Benchmark Run: Thu May 09 2013 20:37:04 - 21:05:17
8 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables       28301315.7 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3470.1 MWIPS (10.0 s, 7 samples)
Execl Throughput                               1569.0 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        841958.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          235274.3 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1938405.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1827474.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  54481.2 lps   (10.0 s, 7 samples)
Process Creation                               3844.0 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   3859.0 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2910.4 lpm   (60.0 s, 2 samples)
System Call Overhead                        3240538.1 lps   (10.0 s, 7 samples)
System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   28301315.7   2425.1
Double-Precision Whetstone                       55.0       3470.1    630.9
Execl Throughput                                 43.0       1569.0    364.9
File Copy 1024 bufsize 2000 maxblocks          3960.0     841958.4   2126.2
File Copy 256 bufsize 500 maxblocks            1655.0     235274.3   1421.6
File Copy 4096 bufsize 8000 maxblocks          5800.0    1938405.5   3342.1
Pipe Throughput                               12440.0    1827474.3   1469.0
Pipe-based Context Switching                   4000.0      54481.2    136.2
Process Creation                                126.0       3844.0    305.1
Shell Scripts (1 concurrent)                     42.4       3859.0    910.1
Shell Scripts (8 concurrent)                      6.0       2910.4   4850.6
System Call Overhead                          15000.0    3240538.1   2160.4
                                                                   ========
System Benchmarks Index Score                                        1104.1
------------------------------------------------------------------------
Benchmark Run: Thu May 09 2013 21:05:17 - 21:33:41
8 CPUs in system; running 8 parallel copies of tests
Dhrystone 2 using register variables      110467624.7 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    21211.4 MWIPS (9.9 s, 7 samples)
Execl Throughput                              12952.9 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        495833.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          134897.1 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1547822.4 KBps  (30.0 s, 2 samples)
Pipe Throughput                             2276741.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 455844.3 lps   (10.0 s, 7 samples)
Process Creation                              30000.0 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  28230.5 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   3724.5 lpm   (60.0 s, 2 samples)
System Call Overhead                        3454619.9 lps   (10.0 s, 7 samples)
System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  110467624.7   9465.9
Double-Precision Whetstone                       55.0      21211.4   3856.6
Execl Throughput                                 43.0      12952.9   3012.3
File Copy 1024 bufsize 2000 maxblocks          3960.0     495833.5   1252.1
File Copy 256 bufsize 500 maxblocks            1655.0     134897.1    815.1
File Copy 4096 bufsize 8000 maxblocks          5800.0    1547822.4   2668.7
Pipe Throughput                               12440.0    2276741.3   1830.2
Pipe-based Context Switching                   4000.0     455844.3   1139.6
Process Creation                                126.0      30000.0   2381.0
Shell Scripts (1 concurrent)                     42.4      28230.5   6658.1
Shell Scripts (8 concurrent)                      6.0       3724.5   6207.5
System Call Overhead                          15000.0    3454619.9   2303.1
                                                                   ========
System Benchmarks Index Score                                        2686.9

以上の結果を見ると、CPU8個のサーバより、2CPUの仮想マシンゲストの方が最終スコアが高かったり、FileCopy関連のインデックスが仮想マシンの方が軒並み高かったり、理解に苦しむ結果が出ています。

今後、別のベンチマークツールで試してみたいと思います。

追記 System Benchmarks Index Scoreではなく、個別のテストごとに比較すべきか。