прямой вид GNU для использования большой памяти и многих ядер

Как насчет чистого решения Grep?

df -k | grep var | grep -o '[0-9]*%'

Вы можете присоединиться к этим двум грепсам с помощью небольшой помощи Perl Regexp:

df -k | grep -Po 'var.* \K[0-9]*%'
1
13.04.2017, 15:36
1 ответ

Никто не отвечает, так что вот что я сделал:

sort -T /mnt/tmp --parallel=14 -S 50G myBigFile.txt

Я не использовал -размер партии , так как не был уверен, что будет хорошим значением, и предположительно сорт в любом случае умён в этом.

/mnt смонтирован на большом эфемерном диске (машина - VM в облаке). Если /tmp находится на диске с большим количеством места, вы можете пропустить -T. Если у вас очень быстрый диск с достаточным количеством места, используйте его.

Если я правильно помню, ему снова нужно примерно то же место, что и размер сортируемого файла - в основном он делит файл на два или более кусочка, каждый из которых он может отсортировать в памяти, сохраняет их отсортированными во временном диске, затем делает сортировку по слиянию, чтобы получить конечный результат.

0
28.01.2020, 01:41

Теги

Похожие вопросы