blast

先日まで、職場でblastしてたのだが、こんな事もあるのね、というのをいくつか。

1プロセス4Gでは足りない

ある日出勤すると、クラスタのノードが死んでた。クラスタの管理者に聞くと、他のノードを再起動して来たところだと言う。あらあら、やっちまった。原因は、メモリ使うようなクエリ投げてるのに、複数スレッド使ってるせいで、blastがクラッシュ。というか、blastを殺し切れなくて、ノードごと落ちてたみたい。コアがたくさん載るマザーボードもコアがたくさん載るブレードシャーシーも世の中にはあるけど、意外と1プロセス当たりのメモリが少なくて悲しい。ってか、極端な話、メモリ2Gで済むなら、32bitなクラスタでもそれなりの速度、出るんだってば!!

RAIDしてても、DiskIOはやっぱり大問題

blast結果を後処理してたのだけど、この途中で、クラスタのヘッドノードのload averageが時々凄く上がってしまう。そのときヘッドノードでactiveなのは、nfsdぐらいなもの。どぉやら、load averageの中身はIO wait。そぉか、一時圧縮ファイルシステムって言ってたけど、diskの読み書きより圧縮解凍の方が早いんやから、使わんとあかんわ。けど、こんなdiskに全ノードからアクセスする事考えたら、頭が痛くなる。

そしてdisk容量も

クラスタにはraidが3つ付いているのだが、どいつもこいつもとっくにパンパン。速度と容量どちらも欲しい場合は、やっぱりなんか考えんといかんなあ。SQL使う場合はともかく、それ以外の場合はgfarm辺りのファイルシステムでないと今後はアカンか。いや待て、ヒトゲノムの場合は染色体が24+あるから、染色体ごとに各ノードで処理するよう、SQLiteかなんかでやればgfarmとも相性がいい事になるのか?この辺りはもう少し考えんといかん…