現在のスクリプトは、NFSを介して複数のファイルを生成して削除します。これが問題だからといって、スクリプトが実行されたディレクトリがNFS用の単一ファイルのように見えれば問題を緩和できるのではないかと思いました。
何百ものスクリプトが独自の実行ディレクトリで動作しますが、NFSではいつでも実行され、各実行ディレクトリに対して何十ものファイルが作成および削除されるため、ボトルネックが発生します。
私はそれ以来発見したhttp://code.google.com/p/fuse-zip/調べてみます。誰でも自分の経験を共有できますか?
ベストアンサー1
さて、コメントを見ると、次のいずれかの提案に該当するようです。
比較的少ないディスク容量を占める一時ファイルの束を作成および削除しています。
推奨事項:ローカルコンピュータのどこかにtmpfsをインストールして使用してください。 (とにかくすでに/tmpの下に1つがあるでしょう)
ほとんどは一時ファイルですが、アーカイブする必要があるファイルもいくつかあります。
推奨事項:tmpfsを再利用してください。ただし、最終的にtmpfsをアンマウントする前に(したがって内容が失われる)、必要なファイルをいくつかコピーしてください。
一時的だが些細ではない。
推奨事項:ローカルストレージ。
同時に、複数のコンピュータでこれらの小さなファイルにアクセスする必要があります。
推奨事項:より強力なNFSサーバーおよび/またはネットワーク。このロード専用のNFSサーバー。分散ファイルシステム
あなたの質問へのアプローチが最善のアイデアであるシナリオを考えるのが困難です。しかし、本当にしたい場合...
推奨事項:NFSサーバーに単一のファイルを生成します。 losstupを使用してループデバイスにマッピングし、mkfsを使用してマウントします。 (使用しているファイルシステムに応じてファイルを直接mkfsすることができます。たとえば、mke2fsで動作します。)おそらくasyncフラグ(または同様のフラグ)を使用してインストールします。これはzipファイルよりはるかに優れたパフォーマンスを発揮します。
私が注目すべきもう一つのことは、これらすべての一時ファイルを作成して削除する目的に応じて、ファイルが最善のアプローチではない可能性があることです。たとえば、ある種のデータベースの行である必要があります。