[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gfarm-discuss-ja:00091] Re: gfarm 速度調査
- From: Takuya Ishibashi <takuya@xxxxxxxxxx>
- Date: Mon, 19 Sep 2005 20:29:12 +0900 (JST)
松尾さま、
創夢の石橋です。
ワークショップの懇親会では 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 以下の
ファイルが更新されているようです。
> 以上、
>
> 明日からは自作ツールを使いファイル読み込みにかかる時間と
> クライアント台数を増やした場合の性能劣化を測定予定
--
石橋拓也 @ 株式会社 創夢 第一開発部