GNU Radio与Python脚本:“shmget (2):设备上没有剩余空间”
我在运行一个使用gnuradio 3.7模块的Python脚本时遇到了以下错误:
> gr::vmcircbuf_sysv_shm: shmget (2): No space left on device
> gr::vmcircbuf_sysv_shm: shmget (2): No space left on device
> gr::vmcircbuf_sysv_shm: shmget (2): No space left on device
> gr::buffer::allocate_buffer: failed to allocate buffer of size 64 KB
> gr::vmcircbuf_sysv_shm: shmget (2): No space left on device
> gr::vmcircbuf_sysv_shm: shmget (2): No space left on device
> gr::vmcircbuf_sysv_shm: shmget (2): No space left on device
> gr::buffer::allocate_buffer: failed to allocate buffer of size 64 KB
> terminate called after throwing an instance of 'std::bad_alloc'
> what(): std::bad_alloc Aborted (core dumped)
我按照这里的建议进行了操作:http://osdir.com/ml/discuss-gnuradio-gnu/2013-06/msg00521.html,并且修改了kernel.shmall和kernel.shmmax的值。
但是,什么样的值是合适的呢?我把它们增加了8倍,但还是没有成功。
更多信息:我在一个循环中启动和停止gnuradio的Python链。每次我停止一个图表时,内存使用情况都很好。我有6个CPU和24GB的内存。
最好的祝愿,Chris
1 个回答
2
我们在邮件列表上解决了这个问题,请查看下面的讨论串。简单来说:GNU Radio使用共享内存来处理它的循环缓冲区,在某些情况下,你可能会用完这些缓冲区的句柄,这就会导致你看到这个错误。
运行
sudo sysctl kernel.shmmni=32000
能解决你的问题吗?
http://lists.gnu.org/archive/html/discuss-gnuradio/2014-11/msg00292.html
问候,
Marcus