perl内存不足错误

时间:2012-12-05 03:14:57

标签: linux perl solaris

我有一个perl脚本,可以生成60个子进程。我得到一个“内存不足错误”,没有其他额外的错误消息,以了解它的原因。它表示什么?是因为我有60个子进程同时在系统中运行我得到一个内存不足的错误。我在这个过程中没有大数组或哈希映射,所以不应该有内存问题。子进程只是greps文件。 Solaris 10是操作系统。

  1. 我可以分叉的子进程的最大限制是多少 Solaris 10?
  2. 内存不足表示什么?

3 个答案:

答案 0 :(得分:3)

某些系统有64个子限制。我想你找到了一个。收获那些已经完成产生更多的东西。

答案 1 :(得分:0)

我相信60个过程叉对于任何系统来说都太过分了。 你绝对确定你需要所有这些吗?尽管fork()经常被用作 parallelization 的同义词,但应谨慎使用。 例如,大多数“慢速任务”都受I / O限制,可以通过非阻塞异步调用进行并行化(请参阅AnyEventCoro)。 即使是CPU绑定任务也很棘手:除非你有64核SMP机器,否则不要指望60个子进程的速度提高60倍。 此外,这是Perl并发编程的一个很好的比较图表:http://blog.64p.org/entries/2009/06/30

答案 2 :(得分:0)

您可以使用Parallel::ForkManager这样的库来保持同时进程的数量达到某种限制。