2010/11/05

ローカルI/Oの罠

Gfarmの最大の特徴は、ローカルにデータがある場合に台数に応じたファイルI/O性能をスケーラブルにすることにある。
一方で、特定のファイルシステムノードでファイルを書き出した場合、基本的に常にローカルノードが選択されてしまい、ファイル実体がそのノードに集中してしまうという問題がある。これによって、例えばある観測日のデータが特定のノードに集中していてそれを並列処理しようとすると、readアクセスがそのノードに集中するため、そのノードのロードアベレージが軽く10とかいってしまう。
これを明示的に回避するためには、ファイルシステムノードでは無いノードからデータを書き出すようにするか、ローカルディスクを優先しないという設定を入れる必要がある。

Gafrm v1の場合、
export GFARM_WRITE_LOCAL_PRIORITY=disable
とすると出来る。v2はまだ分からない。

アクセスが集中すると,こうなる.