2016-01-26 105 views
0

我刚刚从python移植我的应用程序,所以我对Go有点新。看来我有一个内存问题。 getAudioOnlyInfo: fork/exec /usr/local/bin/youtube-dl: cannot allocate memory.无法分配内存错误

这是在ubuntu机器上运行。通过主管。

编辑:

设置sysctl -w vm.swappiness=1解决问题

+0

你可能有内存泄漏,但很难从一个函数来告诉。如果你想对抗症状,也许把交换添加到你的机器。还要分析您的代码是否存在潜在的内存泄漏。你在运行什么硬件? – Riscie

+0

@Riscie交换对于交换号码来说已经足够了。还有什么需要找到内存泄漏? – nadermx

+0

去博客有一篇关于分析应用程序,可以帮助你的文章http://blog.golang.org/profiling-go-programs – Riscie

回答

2

对于其他人谁运行到这个问题,这是一个相关的最近一期in the golang issue

对于所有受影响的人,暂时的解决办法上Linux,直到它被正确地修复为 可以是以下之一:

  1. 能够无条件过载:sysctl -w vm.overcommit_memory=1
  2. 能够无条件过载:sysctl -w vm.overcommit_memory=1添加交换到你的主机,以sysctl -w vm.swappiness=1它几乎 永远不会被使用,但在计算中,其中 Linux内核决定它是否有能力满足参与分配或 不是当default overcommit_memory=0在使用