SSブログ
エステ

まじめにベンチマーク Mac ⇔ Linux箱=RAID箱 Sambaでね☆ [Benchmark]

というわけで(どんなわけ?)(^^;)

既存のベンチマークソフトに頼らずに、実際にファイル転送をしてみて、
その時間を計ることにします。

まず、計り方。

MacにもLinuxにも便利な、timeコマンドというものがあります。

time (スクリプト?、コマンド?)

と書くことで、スクリプトの実行時間を返してくれます。便利です☆

でもって、

スクリプト部分に、cp (コピー元)(コピー先)なぐあいに、
書いてあげればよいわけです。

コピー元:ファイルサーバー
コピー先:Mac

とすれば、ファイルサーバーからのReadの時間がわかりますし、

コピー元:Mac
コピー先:ファイルサーバー

とすれば、ファイルサーバーへのWriteの時間がわかるはずです。

ここで、Mac側ですが、ここには、Ramディスクをつくります。
でないと、MacのSSDへの書き込み、読み出しがボトルネックに
なる可能性もあるわけで。。

MacでのRAMディスクの作り方はこんなぐあい。

$ hdid -nomount ram://4096000

で、およそ2GBのRAMディスクがつくられます♪
できると、

/dev/disk1                                        

な感じでデバイスファイルをつくったよ〜っと、返してくれるので、
そのデバイスファイルをつかって、

$ diskutil eraseDisk HFS+ ramdisk /dev/disk1

このおまじないで、マウントまでしてくれます。
マウント先は、
/Volume/ramdisk

ということで、Mac側はもっぱら、このramdisk上にファイルを
置くことになります。

あとは、適当なファイルを用意して、そのファイルサイズを
コピーにかかった時間で割れば、時間あたりの転送時間がわかります。

10Mbyteと100Mbyteのファイルを作成して、ベンチマークを
してみました♪

でもいきなり、Linux⇔Macのベンチマークを取るのではなく、
まずは、Linuxローカル、Macローカルでのベンチマークを
とってみます。

ちなみに、Ubuntuはなにもしなくても、標準で512Mbyteの
RAMディスクが作成されておりまして、/dev/shmが自由に使えます。

◆Linux
Read性能

$ time cp /st1/test/10m_1 /dev/shm/10m_1

/st1がベンチマークターゲットのRAIDアレイディレクトリ
10m_1 はおよそ10Mbyteのファイル
これを10コ作成し、10m_1,10m_2,10m_3,・・・10m_9,10m_0
などと名前をつけておきます。
別の名前にするのは、システム側でのキャッシュを防ぐためです。
やってみるとわかりますが、

$ time cp /st1/test/10m_1 /dev/shm/10m_1
これを2回以上繰り返すと、明らかに2回目以降は数字がよくなります。
これはシステム側でのキャッシュが原因かと。

同様に、
$ time cp /st1/test/100m_1 /dev/shm/100m_1

Write性能
$ time cp /dev/shm/10m_1 /st1/test/10m_1
$ time cp /dev/shm/100m_1 /st1/test/100m_1
こちらは、ファイルを10コ分ける必要はありません。


◆Mac
Linuxと同様です。

Read性能
$ time cp /tmp/10m_1 /Volume/ramdisk/10m_1
$ time cp /tmp/100m_1 /Volume/ramdisk/100m_1

Write性能
$ time cp /Volume/ramdisk/10m_1 /tmp/10m_1
$ time cp /Volume/ramdisk/100m_1 /tmp/100m_1


結果発表☆

Linux(Ubuntu サーバー版 9.04)

以下ファイル転送の単位はMB/sec

【Read性能】
No 10MB転送 100MB転送
1 63.4 78.9
2 74.1 83.6
3 74.1 81.2
4 71.5 74.0
5 71.0 66.5
6 71.0 77.4
7 74.1 72.7
8 74.7 80.9
9 72.5 68.0
10 70.5 72.5
平均 71.7 75.6





【Write性能】

No 10MB転送 100MB転送
1 108.8 112.3
2 93.6 102.6
3 111.2 106.7
4 88.6 69.6
5 111.2 105.3
6 88.6 113.2
7 110.0 101.9
8 110.0 105.9
9 115.1 88.0
10 112.5 91.9
平均 104.9 99.8


HDDはSeagate ST31000528AS で一般的に公開されている
ベンチマークの性能では、ReadもWriteも100~130MB/sec
程度ですので、Readが若干低いかな。。(^^;)

もしかすると、計測方法に問題があるか、RAID箱に問題が
あるのかもしれません。。


◆Mac

【Read性能】

No 10MB転送 100MB転送
1 158.9 193.6
2 161.5 193.6
3 166.8 195.1
4 164.1 120.6
5 154.0 183.3
6 169.7 192.1
7 166.8 197.4
8 164.1 174.1
9 166.8 191.0
10 161.5 187.1
平均 163.4 182.8




【Wite性能】

No 10MB転送 100MB転送
1 107.6 72.1
2 126.7 156.2
3 125.1 66.5
4 115.1 113.0
5 119.2 86.4
6 101.1 102.9
7 135.3 102.2
8 125.1 97.4
9 123.6 53.7
10 131.7 77.4
平均 121.0 92.8


MacはHDDをOCZ summitのSSDに換装して、
カタログスペックでは、
Read 220MB/sec
Write 200MB/sec
なので、こんなものでしょうか。

けっこーつかれました(^^;)

さてさて、Linux⇔Mac でもベンチマークしてみます♪

つづく

ところで、今のMacBook Proはこんなぐあいです。。☆ [Mac]

ちょっと、整理。
買ってちょうど2ヶ月ほどですが、この2ヶ月で、こんな具合に
変わっています♪

型番はMB990J/A

  初期状態  今
OS  :Leopard → Snow Leopard
HDD:Fujitsu M250S 160GB → OCZ summit 120GB
メモリ:2GB → 4GB

Xbenchすると、、、

Results 161.89
System Info
Xbench Version 1.3
System Version 10.6.1 (10B504)
Physical RAM 4096 MB
Model MacBookPro5,5
Drive Type OCZ SUMMIT
CPU Test 160.77
GCD Loop 264.06 13.92 Mops/sec
Floating Point Basic 129.24 3.07 Gflop/sec
vecLib FFT 106.46 3.51 Gflop/sec
Floating Point Library 252.35 43.94 Mops/sec
Thread Test 247.12
Computation 412.32 8.35 Mops/sec, 4 threads
Lock Contention 176.43 7.59 Mlocks/sec, 4 threads
Memory Test 189.32
System 226.71
Allocate 364.19 1.34 Malloc/sec
Fill 175.29 8523.11 MB/sec
Copy 209.12 4319.34 MB/sec
Stream 162.51
Copy 155.97 3221.59 MB/sec
Scale 152.98 3160.52 MB/sec
Add 172.02 3664.41 MB/sec
Triad 170.88 3655.50 MB/sec
Quartz Graphics Test 180.25
Line 156.42 10.41 Klines/sec [50% alpha]
Rectangle 203.72 60.82 Krects/sec [50% alpha]
Circle 175.04 14.27 Kcircles/sec [50% alpha]
Bezier 180.83 4.56 Kbeziers/sec [50% alpha]
Text 192.54 12.04 Kchars/sec
OpenGL Graphics Test 77.96
Spinning Squares 77.96 98.89 frames/sec
User Interface Test 234.90
Elements 234.90 1.08 Krefresh/sec
Disk Test 197.74
Sequential 145.96
Uncached Write 134.84 82.79 MB/sec [4K blocks]
Uncached Write 98.78 55.89 MB/sec [256K blocks]
Uncached Read 135.41 39.63 MB/sec [4K blocks]
Uncached Read 403.25 202.67 MB/sec [256K blocks]
Random 306.44
Uncached Write 125.27 13.26 MB/sec [4K blocks]
Uncached Write 347.54 111.26 MB/sec [256K blocks]
Uncached Read 2523.33 17.88 MB/sec [4K blocks]
Uncached Read 556.60 103.28 MB/sec [256K blocks]

ちなみに、ディスクをRamディスクにすると、これくらいディスクの数字が
跳ね上がります!

Disk Test 1108.12
Sequential 715.27
Uncached Write 496.58 304.90 MB/sec [4K blocks]
Uncached Write 1835.19 1038.35 MB/sec [256K blocks]
Uncached Read 380.44 111.34 MB/sec [4K blocks]
Uncached Read 2468.84 1240.82 MB/sec [256K blocks]
Random 2458.31
Uncached Write 899.45 95.22 MB/sec [4K blocks]
Uncached Write 3422.63 1095.71 MB/sec [256K blocks]
Uncached Read 14296.53 101.31 MB/sec [4K blocks]
Uncached Read 6526.70 1211.08 MB/sec [256K blocks]

Ramディスク恐るべし。。
Ramディスクの作り方は、次回。


ベンチマーク考 Mac ⇔ Linux箱=RAID箱 [Benchmark]

Windows時代は楽でした、いろんなベンチマークソフトが
そろっていますし、その結果も皆さん公開されていて、
簡単に比較できたものです。

ところが、MacとLinuxでファイル共有のベンチマークと
なると、これがどうして、なかなか楽にはいきませんでした(^^;)

Linux箱がeSATAでRAID箱とつながっており、
Linux箱とMacbook Proは1Gbpsのイーサネットで
つながっています。(過去のエントリー参照)

さて、さて、、なにが楽にいかないって
まず、ベンチマーク用のソフトが見あたらない。

代表的なXbenchは、Xbench自体が途中でエラーで止まってしまいますし、
他のベンチマークソフトも用いてみましたが、安定して動きません(;;)

Linuxでは一般的なbonnie++も試してみました。
まず、Ubuntuのapp-getで得られるbonnie++は古いので、
最新のbonnie++をダウンロードして、コンパイルです。
その前に、開発環境が入っていないので、そちらをまず。。

# apt-get install make
# apt-get install gcc
# apt-get install g++

それから、

$ ./configure

このままmakeすると、正しく表示されない不具合があるので、
ヘッダーファイルを修正します。

$ vi bonnie.h

#define MinTime (0.5)
#define MinTime (0.01)

へ書き換えて保存。

そして、

# make

Mac版も同様です。
当初、Mac portsにbonnieが用意されていたので、

Mac portsの環境を整えて、そちらからインストールしてしまいました。
が、Linux版とバージョンも異なりますし、
#define MinTime (0.01)
の修正もなされていませんので、正しい数値が得られません。
ですので、ソースを落としてきて、こちらもコンパイルです。

ちなみに、Macの開発環境は、Snow LeopardのDVDから追加インストール
するだけです☆

コンパイルも、Linux版と全く同じです。
GCCのバージョンがLinuxは4.3系で、Macが4.2系なのが気になりますが。。。
bonnie++のバージョンは両方とも1.96で一応そろっています。

まぁ、bonnie++を使ってみます。

bonnie++ -d /tmp -s 512 -r 256

/tmp はベンチマークを取りたいディレクトリを指定します。
-s は測定時に作成する一時ファイルの最大サイズの指定
-r はメモリサイズの指定

結果。

◆Mac
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
naomac.local  512M   315  98 127691  30 98803  20   646  99 1454566  99 26641 187
Latency             61417us     230ms     220ms   14614us     258us    6127us
Version  1.96       ------Sequential Create------ --------Random Create--------
naomac.local       -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 14084  79 238095  99 12274  84  1583  18 307212  99   642  11
Latency             63789us     149us   35416us   92571us      34us     271ms
1.96,1.96,naomac.local,1,1255016964,512M,,315,98,127691,30,98803,20,646,99,1454566,99,26641,187,16,,,,,14084,79,238095,99,12274,84,1583,18,307212,99,642,11,61417us,230ms,220ms,14614us,258us,6127us,63789us,149us,35416us,92571us,34us,271ms


◆Linux
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
fs             512M    95  99 57544  45 59491  30   686  99 759567  99  2609  33
Latency             92293us    1132ms    1218ms   28167us      36us     345ms
Version  1.96       ------Sequential Create------ --------Random Create--------
fs                  -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 13751  70 +++++ +++ 23685  83 17281  87 +++++ +++ 24293  81
Latency               824us     398us     453us     396us      33us     232us
1.96,1.96,fs,1,1255037106,512M,,95,99,57544,45,59491,30,686,99,759567,99,2609,33,16,,,,,13751,70,+++++,+++,23685,83,17281,87,+++++,+++,24293,81,92293us,1132ms,1218ms,28167us,36us,345ms,824us,398us,453us,396us,33us,232us

はい、なんだかよくわからない結果が帰ってきました(^^;)

MacでLinuxのボリュームのディスクをマウントして、またbonnie++

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
naomac.local  512M     1   9 11713  10  6656  10     1   9 11910   9  3397  88
Latency              8987ms    2012ms    2002ms    6996ms    2001ms    8893us
Version  1.96       ------Sequential Create------ --------Random Create--------
naomac.local       -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16     7   0 21696  18    18   1     8   0  1558  10    18   1
Latency              2231ms    4826us     149ms    2216ms    2545us     180ms
1.96,1.96,naomac.local,1,1255017747,512M,,1,9,11713,10,6656,10,1,9,11910,9,3397,88,16,,,,,7,0,21696,18,18,1,8,0,1558,10,18,1,8987ms,2012ms,2002ms,6996ms,2001ms,8893us,2231ms,4826us,149ms,2216ms,2545us,180ms

ながーらく、結果が帰ってきませんでした(^^;)

で?
って、感じの結果で。。。
bonnie++のソースを読む気力もなく。。

まぁ、なんです、よそ様のベンチマークソフトが何をやっているのか
よくわからないのと、その表示結果もよくわからないので、気持ち悪い
わけです(^^;)

ファイル転送のスピードが知りたいわけですから、実際にファイル転送
してみればいいわけですよね。。。

つづく



この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。