Memory 我是否正确地增加了GNURadio的共享内存?

Memory 我是否正确地增加了GNURadio的共享内存?,memory,shared-memory,gnuradio,Memory,Shared Memory,Gnuradio,我正在使用GNURadio和流标签(使用流标签创建突发发送器),但我的流程图不会使用大约200个流标签,下面引用了错误 gr::vmcircbuf_sysv_shm: shmget (1): Invalid argument gr::vmcircbuf_sysv_shm: shmget (1): Invalid argument gr::vmcircbuf_sysv_shm: shmget (1): Invalid argument gr::buffer::allocate_buffer: fa

我正在使用GNURadio和流标签(使用流标签创建突发发送器),但我的流程图不会使用大约200个流标签,下面引用了错误

gr::vmcircbuf_sysv_shm: shmget (1): Invalid argument
gr::vmcircbuf_sysv_shm: shmget (1): Invalid argument
gr::vmcircbuf_sysv_shm: shmget (1): Invalid argument
gr::buffer::allocate_buffer: failed to allocate buffer of size 1250000 KB
gr::vmcircbuf_sysv_shm: shmget (1): Invalid argument
gr::vmcircbuf_sysv_shm: shmget (1): Invalid argument
gr::vmcircbuf_sysv_shm: shmget (1): Invalid argument
gr::buffer::allocate_buffer: failed to allocate buffer of size 1250000 KB
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted (core dumped)
但是,sysctl--所有| grep shm输出

kernel.shm_next_id = -1
kernel.shm_rmid_forced = 0
kernel.shmall = 32147483648
kernel.shmmax = 32147483648
kernel.shmmni = 16777216
这意味着我应该有32 GB的共享内存,对吗?我通过设置kernel.shmall和shmmax

sudo sysctl kernel.shmall=32147483648
sudo sysctl kernel.shmmax=32147483648
我唯一关心的是cat/proc/meminfo | grep shmem返回

Shmem:             42556 kB

是否有更好的方法来增加共享内存?

流标记与此问题无关。有趣的是,您有一个缓冲区,其中的项目大小非常奇怪,最小的缓冲区大小可能是1.25 GB。@Marcus我使用的是freq_hopping.py示例的一个改编版本,我将n_突发设为100,并具有特定的占空比(其中length_突发=int(占空比/100.0*采样率))。占空比在10%和50%时工作,但当我将占空比更改为80%时,我得到了上述错误。我创建了巨大的缓冲区大小,作为解决问题的最后一个办法。谢谢你调查这件事。编辑:我应该说:@100次脉冲:10%和50%占空比工作,80%不工作。@1000次爆发:以上都没有。@MarcusMüller不确定我是否正确标记了你。