sort
Linuxで巨大なリスト(130GB)を作成しようとしています。そのうちのいくつかは次のとおりです。
@K00188:14:H2LMFBBXX:6:1101:27440:1668 1:N:0:0_I_CGATGT
@K00188:14:H2LMFBBXX:6:1101:30262:1668 1:N:0:0_I_CGATGT
@K00188:14:H2LMFBBXX:6:1101:6501:1686 1:N:0:0_I_CGATGT
@K00188:14:H2LMFBBXX:6:1101:18133:1686 1:N:0:0_I_CGATGT
@K00188:14:H2LMFBBXX:6:1101:21827:1686 1:N:0:0_I_CGATGT
問題は、その期間にRAMが不足していることですsort
。
以前の質問にはいくつかの解決策(sort --parallel
Pythonスクリプトなど)がありましたが、私の手には機能しませんでした。
続行したいが、sort
オプションを使用すると、次のエラーメッセージが表示されます。--parallel
sort: unrecognized option '--parallel=2'
Try `sort --help' for more information.
大きなリストをソートするために書かれたPythonスクリプトがある場合は、試してみたいと思います。
おすすめメニューとは何ですか?
ベストアンサー1
sort
(たとえば、一部の削除された実装を除くbusybox
)は、制限された量だけを使用し、その制限に達すると一時ファイルに依存するため、メモリによって制限されません。
ディスク容量が不足する可能性が高いです。使用している準備領域に約130 GBの空きディスク容量が必要ですsort
(書き込みファイル自体を使用しない限り、結果を保存するために使用されるディスク容量に追加sort -o mybigfile mybigfile
)。
ファイルシステムに十分な空き容量がない場合は、空きディスク容量をより多くの場所/tmp
に設定します(いくつかの実装されたオプションも参照)。$TMPDIR
-T
sort
TMPDIR=~/tmp sort my-big-file > sorted
必要な一時ディスク容量を減らすために、一部のsort
実装では一時ファイルを圧縮するように指示することがあります。 CPUで使いやすいコンプレッサー(lzop
回転ディスクのファイルシステムなど)を選択すると、パフォーマンスが向上する可能性があります。
TMPDIR=~/tmp sort --compress-program=lzop my-big-file > sorted