push_stream_shared_memory_size

Настраивает размер разделяемой памяти, выделяемой для модуля Push Stream в NGINX.

Синтаксисpush_stream_shared_memory_size size | size [optional second argument];
По умолчаниюnone
Контекстhttp
Аргументы1-2

Описание

Директива 'push_stream_shared_memory_size' задаёт объём разделяемой памяти, выделяемой для Push Stream модуля NGINX. Эта разделяемая память используется для хранения состояния и информации, связанной с каналами и подписчиками, что необходимо для эффективной рассылки сообщений. При задании этой директивы можно указать объём от 1 байта до нескольких гигабайт в зависимости от масштаба и потребностей вашего приложения. Размер, задаваемый здесь, прямо влияет на число каналов и подписчиков, которыми сервер может эффективно управлять, оказывая влияние на общую производительность и надёжность push-уведомлений.

Эта директива принимает один или два аргумента: основной аргумент — размер памяти, а необязательный второй аргумент может использоваться для дополнительных настроек в зависимости от реализации. Если указанный объём недостаточен, это может привести к проблемам с производительностью, таким как ограничения на число одновременных подключений или потеря сообщений. Напротив, выделение чрезмерно большого объёма может привести к неэффективному использованию ресурсов, поэтому важно настраивать это значение в соответствии с вашими конкретными шаблонами использования и ожидаемой нагрузкой.

Следует отметить, что эта директива должна находиться в контексте 'http' вашей конфигурации NGINX. Правильная конфигурация позволяет модулю push stream работать оптимально, гарантируя, что ваши сценарии прямой трансляции или передачи данных в реальном времени будут работать плавно и эффективно с учётом ожидаемого трафика и ограничений ресурсов.

Пример конфига

http {
    push_stream_shared_memory_size 32M;

    server {
        location /channels-stats {
            push_stream_channels_statistics;
            push_stream_channels_path $arg_id;
        }

        location /pub {
            push_stream_publisher admin;
            push_stream_channels_path $arg_id;
        }

        location ~ /sub/(.*) {
            push_stream_subscriber;
            push_stream_channels_path $1;
        }
    }
}

Убедитесь, что указанный размер соответствует ожидаемому числу каналов и подписчиков, чтобы избежать ухудшения производительности.

Если размер памяти установлен слишком мал, это может привести к потере сообщений или к тому, что не удастся разместить всех подписчиков.

Эта директива зависит от контекста и должна размещаться в блоке 'http'; в противном случае это приведет к ошибкам конфигурации.

← Ко всем директивам