Many thanks for your explanation. Your suspicion was correct. I was
using the default 30sec for that parameter. I tried upping it to 5m
and I was able to receive messages more reliably with 50,000 clients
connected. Sometimes, however, the rate at which messages were sent
from nginx slowed right down. e.g. I could get 9,000/sec for a
sustained minute or so and then when the poster stopped posting, the
rate of messages would slow almost to a stop but not quite until all
messages were successfully sent.
In any case the main question I have is in the case when the hardware
resources can't cope with the messages flow and messages need to be
discarded, shouldn't the pushstreammodule report an error to the
publisher? Surely a 200 response is not reasonable in that case? I'm
not trying to pick small faults with the module - as said previously I
think its great. Its just if publishers can't reliably send messages
to clients, I think its use (certainly for us) is limited.
On 14 Nov, 20:16, Wandenberg Peixoto <
wandenb...@gmail.com> wrote:
> Hi Michael,
>
> thanks for testing the module and share your numbers.
>
> About your problem I have a suspicion. When you do not store messages at
> server (push_stream_store_messages off) the objects are kept on shared
> memory by the value set on push_stream_shared_memory_cleanup_objects_ttl,
> which default is 30 seconds.
> Depending the number of workers you have set, I imagine is not so big in a
> dual core, the time needed to delivery the message to all subscribers
> (50,000) probably will be bigger than 30 seconds under hi load of publish,
> and the messages will be discarded before to be delivered to all
> subscribers.
>
> Try to repeat your tests setting this time to a high value,
> push_stream_shared_memory_cleanup_objects_ttl 5m, for example. May be
> necessary to set more space for shared memory.
>
> When you do this let me know the results.
>
> Thanks,
> Wandenberg
>