Maxim Dounin
October 14, 2014 06:02AM
Hello!

On Tue, Oct 14, 2014 at 05:42:54AM -0400, JohnBat26 wrote:

> Привет всем.
> Использую модуль nginx_push_stream_module для реализации push-механизма
> server -> browser.
> В определенный момент, когда очередной клиент пытается встать на канал,
> начинает возвращаться ошибка: unable to allocate shared memory for channel
>
> Вот кусок кода в модуле где он [nginx_push_stream_module] пытается выделить
> канал:
>
> channel = ngx_http_push_stream_find_channel(cur->id,
> r->connection->log, mcf);
> if (channel == NULL) {
> // channel not found
> ngx_shmtx_unlock(&shpool->mutex);
> ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "push stream
> module: unable to allocate shared memory for channel %s", cur->id->data);
> return NGX_HTTP_INTERNAL_SERVER_ERROR;
> }
> Как видим, если ngx_http_push_stream_find_channel вернул NULL то вылетает
> эта ошибка.

Судя по коду, текст ошибки - копипаста из другого места и/или
следствие замысловатого хода мысли автора модуля (что-нибудь вроде
"нет нужного id, зачит мы его удалили, значит у нас кончалась
память и мы его удалили").

Правильная причина указана в комментарии - канал с соответствующим
идентификатором не найден.

[...]

> Вопросы:
> - в каком случае может не хватить памяти для ngx_memcmp?
> - что она точно делает? как я понял, это сравнение памяти.

Да, это сравнение памяти. "Не хватить памяти" для сравнения - не
может, по определению. См. выше.

> - сейчас каждый воркер потребляет 30 мб всего 16 воркеров.
> - как настроить систему, nginx или и то и то, чтобы ошибка больше не
> проявлялалась

Беглый взгляд на код позволяет предположить, что размер
разделяемой памяти, которую использует модуль, настраивается с
помощью директивы push_stream_shared_memory_size. Где-то должна
быть и документация, вероятно.

--
Maxim Dounin
http://nginx.org/

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Re: function ngx memcmp: ограничение по памяти.

Maxim Dounin October 14, 2014 06:02AM

Re: function ngx memcmp: ограничение по памяти.

JohnBat26 October 14, 2014 06:13AM

Re: function ngx memcmp: ограничение по памяти.

Maxim Dounin October 14, 2014 06:50AM

Re: function ngx memcmp: ограничение по памяти.

JohnBat26 October 14, 2014 07:02AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 273
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready