[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gfarm-discuss-ja:00091] Re: gfarm 速度調査



松尾さま、

創夢の石橋です。
ワークショップの懇親会では Gfarm のことで盛り上がれて楽しかったです。

# ちょうど建部さんからも返信がありましたが、

> 0.準備
> 昨日までのファイルは全部削除し、
> メタサーバ1台、ファイルノード1台、クライアント1台で実験
> 
> 参考までに昨日のファイル
> filenode01   3447
> filenode02  25552
> filenode03  13868
> 合計 42867 ファイルを以下のコマンドで削除
> 
> # time -p gfrm -R *
> 
> 削除にかかった時間 real 18930.62 秒 (約6時間)

最近、石橋も 10万個ファイルをつくってしまい、とても遅くなってしまいました。
増やしていくと、突然遅くなるような気がしていますが、きちんと調べてはいません。

> 1.gfarm-1.2-4 へのアップグレード
> 
> http://datafarm.apgrid.org/software/1.2/fc3/1.2-4/
> FedoraCore3 用の RPM でアップデートしようとしたが、
> rpm でアップデートしようとすると
> FedoraCore3 には無いライブラリを要求されインストールできない
> -------------------------------------------------------------------
> # rpm -Uvh gfarm-gsi-client-1.2-4.i386.rpm gfarm-gsi-fsnode-1.2-4.i386.rpm gfarm-gsi-libs-1.2-4.i386.rpm
> error: Failed dependencies:
>         libcrypto_gcc32.so.0 is needed by gfarm-gsi-client-1.2-4.i386
>  libglobus_common_gcc32.so.0 is needed by gfarm-gsi-client-1.2-4.i386
>         libcrypto_gcc32.so.0 is needed by gfarm-gsi-fsnode-1.2-4.i386
> ・・・
> 以下 *gcc32.so のライブラリを大量に求められるが
> FedoraCore3 には存在しない
> -------------------------------------------------------------------

これはすみません。石橋が FC3 用の RPM を作ったのですが、失敗しています。
公開してある 1.2-4 はサイズ的にも明らかに --with-globus-static をつけて忘れて
います。

PL3 公開時においた 1.2-5 の RPM は大丈夫かと思いますが、いかがでしょうか。

> 2.gfarm 1.2-5
> 実はこっそり 1.2-5 が用意されていたので、
> source RPM から rpmbuild してアップデートを行った
> 
> 問題なく最新版にバージョンアップ完了
> 
すみません、お手数をおかけしました。

> 3.fuse 上のファイルが自作の負荷ツールから読めない
> 
> 自作で、あるディレクトリ以下の
> ・ファイルリストを作るツール
> ・ファイルリストを元にファイルを読み出すツール
> を作り、負荷試験用に用いていますが、
> 
> ファイルリストを作るツールは問題ないが、
> ファイルリストを元に読み出すツールから gfarm 上のファイルが読めない
> あれこれチェックしてもらったが、原因が分からずじまい
> 
> 調査した結果から分かった事は
> ---
> client サーバからだと fuse 上のファイルをツールから読めない
> meta サーバからだと fuse 上のファイルをツールから読める
> ---
> fuse 上のファイルはツールから読めないが (/tmp/fuse/)
> システムコールフックライブラリを使えばツールから読める (/gfarm)
> ---
> ということが、分かったので、
> gfarm パッケージの追加インストールや、
> 環境設定(おまじない)を見直してみたが症状が改善されない為、
> システムコールを使ってのテストに切り替え。

meta サーバからでは読めるというのが、謎です。
最初のメールの環境ということで、メタサーバはファイルシステムノード
ではないということで、よろしいでしょうか?
Gfarm で挙動が変わるとしたら、ファイルシステムノードか、それ以外かなので、
メタサーバが、ファイルシステムノードではないとしたら、他の負荷クライアント
と同等なはずです。

client サーバから、FUSE 領域を、そのツールから読めないだけで、cat など
は大丈夫ということなのでしょうか?
そうだとすると、ちょっと謎です。FUSE でできないことがあったのかということで
そのツールがなにをしているのかが気になります。

そうでなく、cat もできないのであれば、実行フラグがついてるファイルで、
クライアントノードとメタサーバのアーキテクチャが違うくらいしか、思いつ
かないのですが、フックだとうまくいくようなので、関係なさそうです。。

# うーん、石橋にはこれが限界です。

> 4.ファイルコピー速度比較 「fuse」 vs 「system call hook」
> 
> シェル上で普通にローカルディスクにある元ファイルを
> gfarm 上に cp -a した場合にかかった時間
> 
> -- fuse
>  100 ファイル  143秒 157秒 148秒
> 1000 ファイル 1431秒
> 
> -- システムコールフック
>  100 ファイル   74秒  78秒  79秒秒
> 1000 ファイル  815秒
> 
> 
> 100 ファイルコピーは3回連続テスト
> コピー時のメモリキャッシュを考慮したがあまり影響は無い模様、
> 1ファイルは約 1KB 前後

GfarmFS-FUSE で、ファイルの create に時間がかかっているようですが、
Gfarm 1.2 では対応されていて、それとあわせた修正を gfarmfs.c にすると
改善されるかもしれません。
まだ公開していません。しばらくお待ちください。

修正内容は、gfarmfs.c で使われている gfs_pio_create すべてに GFARM_FILE_TRUNC
フラグを追加しています。

> 5.ls が表示されるまでの時間
> gfarm 上の登録ファイル数 1100
> 
> --- ls 速度比較
> -- fuse
> time -p ls /tmp/fuse/root/testfile (結果2件)
>  6.69秒 0.02秒 0.03秒 
> 
> time -p ls /tmp/fuse/root/testfile/test100/ (結果100件)
> 14.72秒 7.67秒 8.53秒
> 
> -- system call hook
> time -p ls /gfarm/root/testfile/ (結果2件)
>  7.02秒 7.25秒 5.61秒
> 
> time -p ls /gfarm/root/testfile/test100 (結果100件)
>  14.86秒 13.97秒 14.26秒
> 
> 
> ※fuse の方が2回目以降はキャッシュが効くので速い
> 
> ls の表示速度から見る結果 (fuse の場合)
> 総ファイル数
>  1100ファイル      8秒
> 31500ファイル    230秒  (昨日のテスト結果)
> 
> 8秒 x 28.6 = 229秒 なので、
> 総ファイル数が増えると、ほぼリニアに応答時間が増える
> 
フックでは gfarm_agent 使うとどうでしょうか。

> 最後に気になる点
> meta サーバがひたすら io write していること。
> SWAP は発生していない
> client から ls すると、結果が返ってくるまでひたすら
> meta サーバ上で io write が発生している理由が判らない
> 
書き込みですか。それは気づきませんでした。
どういうことなのかわかりませんが、石橋の作った環境も ls だけで db 以下の
ファイルが更新されているようです。

> 以上、
> 
> 明日からは自作ツールを使いファイル読み込みにかかる時間と
> クライアント台数を増やした場合の性能劣化を測定予定

--
石橋拓也 @ 株式会社 創夢 第一開発部