Самый быстрый способ сортировки очень больших файлов, желательно с прогрессом - PullRequest
0 голосов
/ 01 июня 2018

У меня есть плоский файл объемом 200 ГБ (одно слово в строке), и я хочу отсортировать файл, затем удалить дубликаты и создать из него один чистый конечный файл TXT.

Я попытался sort с--parallel но он работал в течение 3 дней, и я был разочарован и убил процесс, так как не увидел никаких изменений в чанке файлов, созданных в / tmp.

Мне нужно как-то увидеть прогресс и убедиться, что он не завис и работает.Какой лучший способ сделать это?Существуют ли какие-либо инструменты для Linux или проекты с открытым исходным кодом, предназначенные для чего-то подобного?

1 Ответ

0 голосов
/ 01 июня 2018

Я не использую Linux, но если это сортировка по Gnu, вы сможете увидеть временные файлы, которые она создает, из другого окна, чтобы отслеживать прогресс.Параллельная функция помогает только во время начального прохода, который сортирует и создает начальный список временных файлов.После этого по умолчанию используется слияние в 16 направлений.

Скажем, например, при первом проходе создаются временные файлы размером около 1 ГБ.В этом случае сортировка Gnu в конечном итоге создаст 200 из этих временных файлов объемом 1 ГБ до начала фазы слияния.Слияние 16 способов означает, что 16 из этих временных файлов будут объединены одновременно, создавая временные файлы размером 16 ГБ и т. Д.

Таким образом, один из способов отслеживания прогресса - это мониторинг создания этих временных файлов..

...