だから私は100GBのテキストファイルを持っていますそしてそれを10000ファイルに分割したいと思います。私は以前、次のようなタスクを実行していました。
split -l <number of lines> -d --additional-suffix=.txt bigfile small_files_prefix
しかし、これを使ってそれを試みたところ、システムを監視して、メモリやCPUをあまり使用していないことに気づき、ファイルを最初から最後まで1つのスレッドで読み取っているだけであることに気付きました。
複数のスレッドでそのようなタスクを実行できる低レベル(または非常に高性能)のツールはありますか?.
必要に応じてファイルをコピーし、可能であれば複数のコアを利用したいと思います(そうは思いません!)。
SSDを使用しても、ファイル分割のボトルネックはI/Oです。そのための複数のプロセス/スレッドがあると、パフォーマンスが向上せず、多くの場合、はるかに遅くなります。
さらに、改行のみで分割したい場合は、各スレッドをどこからどこにコピーする必要があるかが事前に明確ではありません。あなたはおそらくそのための特別なツールを書かなければならないでしょう。
たとえば、別のアクションが必要な場合は、状況が異なる可能性があります。分割と圧縮。その場合、複数のコアを使用すると役立つ場合がありますが、I/Oはボトルネックではありません(ドライブとCPU速度によって異なります)。