Я сортировал большой файл (101MB
- около 700MB
после распаковки ), используя команду сортировки на сервере, который имеет 48 ГБ памяти. Это была единственная тяжелая работа, которую он делал в то время. Однако я заметил, что этот вид создает много временных файлов. Означает ли это, что не хватает оперативной памяти?
Или это так, что сортировка всегда создает файлы? Можно ли ускорить процесс сортировки, передав файловую систему папок, смонтированную в ОЗУ, с помощью команды -T
? Я попробовал это, но я не заметил значительного ускорения, и мне интересно, правильно ли я построил тест, или я просто не понимаю, что происходит правильно.
Это команда, которую я дал:
zcat file0.nq.gz | sort
Примерно через 20 секунд у меня есть следующие файлы в /tmp
nuoritoveri@nubis:/tmp[127]$ ls
sortecuGwN sorteKeowj sortGn7dCr sortkdk5Ws sortNb9Khh sortPGTQ6b sortQearCg sortvBB5eS sortZW2mWj
sort1UsQla sortEGauDb sortFMn7bW sortiUDJYd sortlaGUgo sortpEmGb5 sortPQUNQx sortqlb7jh sortxcjjuM
sortaVKeEN sortejgptJ sortgAJJ9l sortJRq2GB sortmQf888 sortpFfWdy sortpv9kO8 sortT52TVQ sortxq8r80
Файлы исчезают, когда команды заканчиваются. Я также проверил, что происходит, когда я не передаю данные, а просто сортирую разархивированный файл:
sort file0.nq
Файлы в /tmp
появляются также, но не с такой высокой скоростью (возможно, потому что он должен прочитать файл сам).