Category Archives: PCクラスタ

NFSの書込み速度 (Ethernet 10GBase)

■テスト環境
NFSサーバおよびNFSクライアント
MB: Supermicro X8DTi
Chipset: INTEL 5520
CPU: Xeon L5530 x2
MEM: 24GB (4GB DDR3-1333 Reg x 6)
インターコネクト
10GBase: NETXEN NXB-10GCX4
OS: CentOS 5.3 x86_64
■環境設定
NFSサーバ
kernelパラメータ ramdisk_size=20971520 で起動し、20GBのramdiskにext3ファイルシステムを構築して /mnt にマウントする。
/etc/exports 設定は以下とする。
/mnt   *(rw,sync,no_root_squash)
NFSクライアント
kernelパラメータ mem=1024m で起動し、OS上のメモリ容量を1GBとする。 (クライアント側のpagecache効果を少なくするため)
■テスト方法
200MBファイルを連続50回書出しをするスクリプトを用意する。
#!/bin/sh
LOOP=50
DIR=/mnt
COUNT=0
while [ $COUNT -lt $LOOP ]
do
dd if=/dev/zero of=$DIR/$COUNT bs=32768 count=6400
let COUNT=COUNT+1
done
このスクリプトをtimeコマンドの引数として実行しreal値から速度を算出する。
■事前テスト
NFSサーバ上でramdiskの書込み速度を計測する。
計測方法は同じスクリプトを使う。

real
速度

23s
434.8MB/s

ディスク側の律速がこの値まではないことを前提とする。
■結果

インターコネクト
MTU
real
速度

10GBase
1500
57.9s
173MB/s


3000
56.8s
176MB/s


6000
53.9s
186MB/s


8000
56.4s
177MB/s

■評価
ネットワーク性能測定ツール iperf では、MTU=1500で6.69Gbps MTU=3000で8.23Gbps MTU=6000で8.48Gbps MTU=8000(設定可能最大値)で8.42Gbps でした。
iperfでの値が高いにもかかわらず、実際の転送速度が175MB/s程度であった。
以前より10GBase EthernetはInfiniband (IPoIB)より実際のデータ転送速度で劣るといった話があったが、今回の検証でそれを裏付ける結果となりました。しかし、これだけで10GBase Ethernetがすべてにおいて劣っているわけではありません。
例えばInfinibandはEthernetではないため、スイッチを使ってEthernet環境と接続することが不可能です。アプリケーションによって10GBase EthernetとInfinibandを使い分けることが重要と思います。
今回はCX4ポートのNICを使ったが、10GBase-CX4のNICはポート単価が低く導入しやすいです。しかし、10GBaseスイッチは未だに高額な商品となっております。
いずれ導入しやすい価格になってくれることを期待したいです。

NFSの書込み速度 (Infiniband SDR/DDR)

■テスト環境
NFSサーバおよびNFSクライアント
MB: Supermicro X8DTi
Chipset: INTEL 5520
CPU: Xeon L5530 x2
MEM: 24GB (4GB DDR3-1333 Reg x 6)
インターコネクト
Infiniband SDR (10GBase): Mellanox MHES18-XTC
Infiniband DDR (20GBase): Mellanox MHGS18-XTC
(IPoIBにてHCAポートにIPアドレスを設定)
OS: CentOS 5.3 x86_64
ホストスタック: Mellanox OFED 1.4
■環境設定
NFSサーバ
kernelパラメータ ramdisk_size=20971520 で起動し、20GBのramdiskにext3ファイルシステムを構築して /mnt にマウントする。
/etc/exports 設定は以下とする。
/mnt   *(rw,sync,no_root_squash)
NFSクライアント
kernelパラメータ mem=1024m で起動し、OS上のメモリ容量を1GBとする。 (クライアント側のpagecache効果を少なくするため)
■テスト方法
200MBファイルを連続50回書出しをするスクリプトを用意する。
#!/bin/sh
LOOP=50
DIR=/mnt
COUNT=0
while [ $COUNT -lt $LOOP ]
do
dd if=/dev/zero of=$DIR/$COUNT bs=32768 count=6400
let COUNT=COUNT+1
done
このスクリプトをtimeコマンドの引数として実行しreal値から速度を算出する。
■事前テスト
NFSサーバ上でramdiskの書込み速度を計測する。
計測方法は同じスクリプトを使う。

real
速度

23s
434.8MB/s

ディスク側の律速がこの値まではないことを前提とする。
■結果

インターコネクト
MTU
real
速度

SDR
65520
36.3s
275MB/s

DDR
65520
35.9s
278MB/s

IPoIBでのMTUは65520がDefault値
■評価
ネットワーク性能測定ツール iperf では、SDRで7.86Gbps程度 DDRで9.54Gbps程度となっている。
いずれもリモートからのNFS書込みが270MB/s程度となっていることから、CentOS 5.3標準設定での律速の可能性がある。
今回はCentOS 5.3の標準パラメータで比較しているが、さらに調整することで速度向上するかもしれない。

iSCSI Remote Bootによるディスクレスサーバの構築と書込み速度の検証

SAN (Storage Area Network)を簡単に構築できるiSCSIストレージは、仮想化分野の発展とともに注目度が高まってきています。
今回は、iSCSIストレージを使ったディスクレスサーバの構築と簡単な書込み速度の検証を行いました。
構築上で要点となるのは、iSCSI Initiator側のiSCSI HBAとなるNICです。
Intel NICは、ファームウェアを書き換えることでiSCSI HBAとして動作可能となる Intel iSCSI Remote Bootに対応しています。
以下がIntel iSCSI Remote Boot対応NICの一部です。
Intel Gigabit CT Desktop Adapter
Intel PRO/1000 PT Server Adapter
Intel 10 Gigabit CX4 Dual Port Server Adapter
その他の対応NICはこちらを参照してください。
そして、このNICをIntel iSCSI Remote Boot Setup Utilityにてファームウェア書き換えを行います。
以下がファームウェアの設定画面です。

ここでInitiator nameやIP AddressやTarget nameを登録
正常にiSCSI Targetに接続ができるとリモートディスクを認識して、以下のようにマザーボードBIOS上にディスクとして表示されます。

Network: Intel iSCSI Remote B…. が認識している
つまりiSCSI Target側に接続されたリモートディスクをマザーボードBIOS上ではローカルディスクとして認識していることになります。
iSCSI Initiator側の対応OSは以下です。
Microsoft Windows Server 2003 SP1, SP2, R2 x86
Microsoft Windows Server [...]

Xeon (Nehalem EP) PCクラスタ 性能評価(姫野ベンチ)

計算サーバ 10台
CPU: Xeon L5530 (低電圧版/4 Core/2.40GHz/8MB/QPI5.86GT) x2
MB: Supermicro X8DTi
MEM: DDR3-1333 4GB ECC Reg x 6  Total 24GB
VGA: ELSA GLADIAC GT240 LP (1GB GDDR3/PCIe2.0)
NIC: Mellanox MHGS18-XTC (Infiniband 20Gbps DDR)
OS: CentOS 5.3 x86_64
MPI: Intel MPI 4.0
Compiler: Intel Compiler 11.1
Benchmark: himenoBMTxp
Size: XL
20CPU 80core: 129328MFLOPS

NFSの書込み速度 (Ethernet 1000Base)

NFSは、Linuxでは標準的な共有ファイルシステムとなっています。
今回から数回に渡り、インターコネクトがNFSのパフォーマンスにどう影響が出るのか検証することにします。
■テスト環境
NFSサーバおよびNFSクライアント
MB: Supermicro X8DTi
Chipset: INTEL 5520
CPU: Xeon L5530 x2
MEM: 24GB (4GB DDR3-1333 Reg x 6)
インターコネクト
1000Base: オンボード (Intel 82576)
OS: CentOS 5.3 x86_64
■環境設定
NFSサーバ
kernelパラメータ ramdisk_size=20971520 で起動し、20GBのramdiskにext3ファイルシステムを構築して /mnt にマウントする。
/etc/exports 設定は以下とする。
/mnt   *(rw,sync,no_root_squash)
NFSクライアント
kernelパラメータ mem=1024m で起動し、OS上のメモリ容量を1GBとする。 (クライアント側のpagecache効果を少なくするため)
■テスト方法
200MBファイルを連続50回書出しをするスクリプトを用意する。
#!/bin/sh
LOOP=50
DIR=/mnt
COUNT=0
while [ $COUNT -lt $LOOP ]
do
dd if=/dev/zero of=$DIR/$COUNT bs=32768 count=6400
let COUNT=COUNT+1
done
このスクリプトをtimeコマンドの引数として実行しreal値から速度を算出する。
■事前テスト
NFSサーバ上でramdiskの書込み速度を計測する。
計測方法は同じスクリプトを使う。

real
速度

23s
434.8MB/s

ディスク側の律速がこの値まではないことを前提とする。
■結果

インターコネクト
MTU
real
速度

1000Base
1500
106s
94.3MB/s


9000
101s
99.0MB/s

■評価
1000Base Ethernetは、ネットワーク性能測定ツール iperf では940Mbps程度となりbyteでは117.5MB/sとなる。
1000Base Ethernetでは、今回の結果は妥当と思われます。
次回は、IPoIB (infiniband) でテストをする予定です。