fork cannot allocate memory

场景:fork失败==> Cannot allocate memory解决方案

fork失败==> Cannot allocate memory
实际上,是popen失败
然后跟到popen里面,发现是fork失败了。
按提示,是内存不足
可free,还剩30多M的内存

还可能是咋回事呢?
ulimit中挨着改了一通,也不管用
无奈了。。。
求高手指导

------解决方案--------------------
ENOMEM fork() failed to allocate the necessary kernel structures because memory is tight.

只能阿门了.