広域ファイル共有の性能評価と事例
JLDGによるGfarmファイルシステムの性能(1)
Gfarm広域ファイルシステムのソフトウエアディストリビューションに含まれるファイル入出力性能を計測するベンチマークthput-fsysで性能を測定します(図2-1)。
筑波大学のクライアントからの書き込み性能は55MB/sec、読み込み性能は65MB/secでした。このベンチマークプログラムではtest.file1というファイルを作成します。ファイルは自動的に近くのファイルシステムノードに格納されているはずです。このファイルのファイルサイズと、実際に格納されているファイルシステムノードを調べてみましょう。格納先を調べるためにはgfwhereコマンドを利用します(図2-2)。
これより、ベンチマークプログラムで作成したファイルサイズは1GBであり、同じつくば市にあるKEKのファイルシステムノードに格納されていることが分かります。KEKのファイルシステムノードとは1Gbps(=125MB/sec)のネットワーク帯域で接続されており、ネットワーク往復遅延は0.8msecです。lsコマンドの所要時間は0.01秒にも満たない位、gfwhereコマンドの所要時間は0.1秒でした。
JLDGによるGfarmファイルシステムの性能(2)
次に、このファイルを地理的に遠い広島で参照してみましょう(図2-3)。つくばと広島のノード間のネットワークはSINET3で1Gbpsで接続されており、往復遅延は26msecです。
gfarm2fsコマンドによるマウント時間、gfdfコマンドによるファイルシステム利用量詳細情報表示は0.7秒になりました。これくらいであれば遅いと感じる程ではありません。ここで、先ほど筑波大学のクライアントでマウントしていたファイルシステムと同じファイルシステムをマウントしていることに注意してください。次に先ほど筑波大学のクライアントで作成したファイルの情報の表示と読み込み性能を測定してみます。
lsコマンドによるファイル情報の表示は0.02秒でほとんど変わりませんが、thput-fsysによるファイルの読み込み性能は19MB/secに落ちてしまいました(図2-4)。遠隔のファイル読み込みはブロック単位で読み込むため、26msecのネットワーク遅延が性能に影響を与えています。
次は、このファイルの複製を広島に作成して、読み込みを行ってみます(図2-5)。gfrepコマンドによるファイル複製作成の性能は78MB/sec、thput-fsysコマンドによるファイル読み込みの性能は355MB/secにまで跳ね上がりました。ファイル複製作成が先ほどのファイル読み込みより性能が高いのは、ファイルをバルクで転送し、ネットワーク遅延の影響を少なくすることができるからです。複製作成後のファイル読み込み性能で355MB/secという高い性能が得られたのはファイルシステムノードでファイル参照を行っているためです。このとき、ファイルはローカルディスクに格納されているため、ファイル読み込みはローカルディスクからの読み込みとなります。
このように特にネットワーク遅延の大きい場所からファイルサイズの大きなファイルを読み込む場合は、まず複製を作成してから読み込むことにより高い性能を得ることができます。また、そもそもファイル複製はファイルシステムノードの障害時におけるファイルアクセスの手段となりますので、ファイルシステムに余裕があれば作成しておいた方がよいです。