我正在使用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 --all | grep shm outputs
kernel.shm_next_id = -1
kernel.shm_rmid_forced = 0
kernel.shmall = 32147483648
kernel.shmmax = 32147483648
kernel.shmmni = 16777216
这意味着我应该在共享内存中有32 GB,对吗?我通过
设置了kernel.shmall和shmmaxsudo sysctl kernel.shmall=32147483648
sudo sysctl kernel.shmmax=32147483648
我唯一关心的是cat / proc / meminfo | grep shmem返回
Shmem: 42556 kB
有没有更好的方法来增加共享内存?