【问题标题】:sort runs out of memory排序内存不足
【发布时间】:2015-06-12 16:17:11
【问题描述】:

我正在使用包括排序在内的管道来合并多个大型文本文件并删除重复项。
我没有 root 权限,但没有以任何方式配置该框以将非 root 权限比默认的 debian jessie 进一步降低。
盒子有 32GB 内存,16GB 正在使用中。
无论我如何调用排序(GNU 排序 8.13),它都会填满所有剩余的 RAM,并因“内存不足”而崩溃。
它确实在崩溃之前填满了所有内存。我按照顶部的过程进行操作。
我尝试使用 -S 参数显式设置最大内存使用量,范围从 80% 到 10% 以及从 8G 到 500M。
整个管道看起来类似于:

    cat * | tr -cd '[:print:]' |sort {various params tested here} -T /other/tmp/path/ | uniq > ../output.txt

总是相同的行为。
有谁知道什么可能导致这样的问题?
当然还有如何解决呢?

【问题讨论】:

    标签: linux sorting memory ram


    【解决方案1】:

    我自己发现了问题。这很容易。
    “tr -cd '[:print:]'” 删除换行符并逐行排序读取。
    所以它试图将所有文件作为一行读取,而 -S 参数无法完成它的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-15
      相关资源
      最近更新 更多