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=131072 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) でテストをする予定です。



