
bzip
たとえば、アーカイブ、の並列バージョンですbzip
。パフォーマンスを向上させる並列化ツールはありますかsort
?
答え1
coreutils 8.6(2010-10-15)以降、GNUはsort
利用可能な複数のプロセッサを利用するために並べ替えを並列化しました。したがって、この点で改善pigz
やpbzip2
改善gzip
などの追加の改善はできませんbzip2
。
並列でない場合は、最新バージョンのGNUをインストールしsort
てみてください。sort
GNUコアツール。
GNUソートでは、オプションを使用してスレッド数を制限できます--parallel
。
答え2
ソートに関して最も有用なものの1つは、スワッピングを減らすためにできるだけ多くのメモリを提供することです。たとえば、次のようになります。
sort -S 20G
答え3
ファイルが十分に大きいと、割り当てられた仮想メモリが大きすぎるか、プログラムsort
自体がブロックをディスクにスワップしているため、ソートによってディスクスワップが発生します。以前sort
の実装では、これらの「ディスクバッファによるソート」の動作は、過去に大容量ファイルをソートする唯一の方法であったために発生する可能性が高くなります。
sort
あなたを助けるためのオプションがあります-m
。ファイルを塊に分割する方が速いかもしれません。つまり、split -l
独立してソートしてから一緒にマージすることです。
もしそうなら、これは「ディスクバッファによるソート」が行うことです。役に立つことを確認する唯一の方法は、特定のテスト負荷に対してベンチマークすることです。主なパラメータは、ユーザーが提供する行数ですsplit -l
。
答え4
sort -n
科学的表記法を必要とせずに、選択したすべての列に数値(浮動小数点または整数)を必要とすることを使用して、非常に大きな利得を得ました。
プロセスを大幅に改善するもう1つの方法は、/dev/shm
中間ファイルにメモリマッピングフォルダを使用することです。