大量のファイルを同時に処理する必要があります(数千の異なるファイル、ファイルあたりの平均サイズは2MB)。
すべての情報は1台の(1.5TB)ネットワークハードドライブに保存され、約30台の異なるマシンで処理されます。効率を上げるために、各マシンは異なるファイルを読み取り(および処理)します(処理する必要のあるファイルは数千あります)。
すべてのマシンは、1.5TBハードドライブの「incoming」フォルダからファイルを読み取った後、情報を処理し、処理された情報を1.5TBドライブの「processed」フォルダに出力する準備が整います。すべてのファイルで処理される情報は、入力ファイルとほぼ同じ平均サイズです(ファイルあたり約2MB)。
何をするのが良いですか:
(1)すべての処理マシンMについて、 Mによって処理されるすべてのファイルをローカルハードドライブにコピーしてから、マシンMでローカルにファイルを読み取って処理します。
(2)ファイルをすべてのマシンにコピーする代わりに、すべてのマシンが「着信」フォルダーに直接アクセスし(NFSを使用)、そこからファイルを読み取り、ローカルで処理します。
どちらのアイデアが良いですか?そのようなことをしているときに「する」と「しない」はありますか?
30台ほどのマシンが同じネットワークドライブに同時に情報を読み取る(または書き込む)ことが問題になるかどうか、私は主に興味がありますか?
(注:既存のファイルは読み取りのみで、追加/書き込みは行われません。新しいファイルは最初から作成されるため、同じファイルへの複数のアクセスの問題はありません...)。予想すべきボトルネックはありますか?
(私はLinux、Ubuntu 10.04 LTSをすべてのマシンで使用しています)