GNU/Linux >> Linux の 問題 >  >> Linux

Sort --parallel は並列化されていません

sort は、必要でない限りスレッドを作成しません。小さなファイルの場合、オーバーヘッドが大きすぎます。残念ながら、sort はパイプを小さなファイルのように扱います。 24 個のスレッドに十分なデータを供給したい場合は、大きな内部バッファーを使用するように並べ替えを指定する必要があります (大きなファイルが表示されると、並べ替えは自動的に行われます)。これは、アップストリームで改善する必要があるものです (少なくともドキュメントでは)。したがって、次のようなものが必要になります:

(export LC_ALL=C; grep -E  <files> | sort -S1G --parallel=24 -u | wc -m)

すべてのプロセスに LC_ALL=C を設定したことに注意してください。これは、すべてのプロセスがこのデータの恩恵を受けるためです)。

ところで、次のような方法でソートスレッドを監視できます:

watch -n.1 ps -C sort -L -o pcpu

Linux
  1. .o ファイルと .a ファイル

  2. wc gzipファイル?

  3. ファイルを再帰的にリストし、変更時間でソートする方法は?

  1. findおよびduコマンドを使用してLinuxで大きなファイルを検索する方法

  2. 最大のファイルまたはディレクトリを見つけますか?

  3. 複数行が連続するテキストファイルを並べ替える

  1. Lsを使用してアクセス許可でファイルを並べ替える方法は?

  2. レンジャーで特定のフォルダ内のファイルを並べ替えますか?

  3. Readynas Duo V1でファイルをアルファベット順のフォルダに並べ替えるBashスクリプト?