大文件排序的sort命令优化

大文件sort排序优化2

场景:有一个大文件ip.all ,大小16G,内容是ip地址,需要排序。首先遇到了一个报错
sort: write failed: /tmp/sort0f16gU: No space left on device
在解决问题过程中,又有速度问题,所以总共优化了3个参数:

1、利用 -T 选项,指定临时目录
2、利用 -S 选项,告诉sort用大内存,不用磁盘。
Amount of memory to use -S N% ( N% of all memory to use, the more the better but avoid over subscription that causes swapping to disk. You can use it like "-S 80%"" to use 80% of available RAM, or "-S 2G" for 2 GB RAM.)
3、利用 --parallel 选项,多开线程,利用多核cpu

大文件排序的sort命令优化
大文件sort排序优化

所以,如果你的机器很牛逼,可以用优化后的sort命令,例如以下例子用6个cpu,80%的内存,启用自定义临时目录:
sort ip.all -S 80% --parallel=6 -T /data/ipv6/tmp