Скрипт GNU Radio и Python: «shmget (2): на устройстве не осталось свободного места»

#python #linux #gnuradio

#python #linux #gnuradio

Вопрос:

В настоящее время у меня возникает следующая ошибка при запуске скрипта Python с блоками gnuradio 3.7:

 > 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 pythons в цикле. Каждый раз, когда я останавливаю диаграмму, с памятью все в порядке. У меня 6 процессоров и 24 ГБ оперативной памяти.

С наилучшими пожеланиями, Крис

Ответ №1:

Мы решили эту проблему в списке рассылки, пожалуйста, прочитайте тему ниже. Короче говоря: GNU Radio использует общую память для своих циклических буферов, и при определенных обстоятельствах у вас могут закончиться дескрипторы для них, что приводит к этой ошибке. Выполняет ли

sudo sysctl kernel.shmmni=32000

решить вашу проблему?

http://lists.gnu.org/archive/html/discuss-gnuradio/2014-11/msg00292.html

Приветствую, Маркус

Комментарии:

1. Решение подтверждено.