複数のファイルを並列に読み取るシェルスクリプト

複数のファイルを並列に読み取るシェルスクリプト

並列に実行され、複数のファイルから文字列を検索するスクリプトを作成する必要があります。
さまざまなオプションを試しましたが、プロセッサが遅くなりました。

ベストアンサー1

ファイルが別のディスクにある場合は、grep各ディスクでコマンドを実行します。

同じディスク上のファイルの場合、ボトルネックはディスクから読み取られています。複数のファイルを並列に読み込むと、速度が悪くなります。

ファイルがRAID-0アレイにある場合は、grep両方のコマンドを同時に実行して速度を上げることができます。実際に時間を取得していることを確認するには、ベンチマークテストを実行してください。低技術アプローチ:

grep file1 file2 file3 &
grep file4 file5 file6

そしてGNUパラレル:

parallel -j 2 grep ::: file1 file2 file3 file4 file5 file6

以下からファイルを取得する場合find

find … -print0 | parallel -0 -j 2

grep覚えておいてください:ファイルが同じディスクにある場合は、単一のコマンドが最も高速です。

おすすめ記事