<div dir="ltr">Thanks for the response. I have below configuration in nginx.conf<br><br>worker_processes 8;<br>pid /var/run/nginx.pid;<br><br>worker_rlimit_nofile 196886;<br>worker_shutdown_timeout 10s ;<br><br>include /etc/nginx/conf.d/main/*.conf;<br><br>events {<br>    multi_accept        on;<br>    worker_connections  16384;<br>    use                 epoll;<br>}<br><br>stream {<br><br>        upstream tcp-9005-simple_tcp_echo_go {<br>                #zone myzone 5m;<br><br>                server <a href="http://127.0.0.1:9001">127.0.0.1:9001</a>;<br>                server <a href="http://127.0.0.1:9002">127.0.0.1:9002</a>;<br>                server <a href="http://127.0.0.1:9000">127.0.0.1:9000</a>;<br>                server <a href="http://127.0.0.1:9003">127.0.0.1:9003</a>;<br>        }<br><br><br>        server {<br><br>                #listen 9005  ;<br>                listen 9005  reuseport  ;<br><br>                proxy_pass tcp-9005-simple_tcp_echo_go;<br><br>                proxy_timeout 600s;<br>                proxy_next_upstream     on;<br>                proxy_next_upstream_timeout 600s;<br>                proxy_next_upstream_tries   3;<br><br>        }<br>}<br><br>Each of the servers in upstream are the same process which responds after some delay. <br>I am sending 10000 requests in almost parallel using something like below in a loop:<br><div>                 <b>curl <a href="http://127.0.0.1:9005">127.0.0.1:9005</a>  & </b><br></div><div><br></div>My expectation is that the 4 upstream servers should get requests in round-robin fashion like <br><br>req1 - upstream srv 1<br>req2 - upstream srv 2<br>req3 - upstream srv 3<br>req4 - upstream srv 4<br>...<br><br>But I do not see that behaviour, I see something like below where the requests are not being sent in round robin fashion.<br><div>I have tried with the below config and round robin does not happen as mentioned above.</div> reuse-port on/off<br> multi-accept on/off<br><br>Try 1 (with reuse-port and multi-accept on):<br><a href="http://127.0.0.1:9001">127.0.0.1:9001</a>  -- 2503<br><a href="http://127.0.0.1:9002">127.0.0.1:9002</a>  -- 2501<br><a href="http://127.0.0.1:9000">127.0.0.1:9000</a>  -- 2499<br><a href="http://127.0.0.1:9003">127.0.0.1:9003</a>  -- 2497<br><br>Try 2 (without reuse-port and multi-accept on)::<br><a href="http://127.0.0.1:9001">127.0.0.1:9001</a>  -- 2502<br><a href="http://127.0.0.1:9002">127.0.0.1:9002</a>  -- 2501<br><a href="http://127.0.0.1:9000">127.0.0.1:9000</a>  -- 2500<br><a href="http://127.0.0.1:9003">127.0.0.1:9003</a>  -- 2497<br><br>Try 3 (with reuse-port and multi-accept off):<br><a href="http://127.0.0.1:9001">127.0.0.1:9001</a> -- 2502<br><a href="http://127.0.0.1:9002">127.0.0.1:9002</a> -- 2502<br><a href="http://127.0.0.1:9000">127.0.0.1:9000</a> -- 2499<br><a href="http://127.0.0.1:9003">127.0.0.1:9003</a> -- 2497<br><br>Try 4 (without reuse-port and multi-accept off):<br><a href="http://127.0.0.1:9001">127.0.0.1:9001</a> -- 2505<br><a href="http://127.0.0.1:9002">127.0.0.1:9002</a> -- 2499<br><a href="http://127.0.0.1:9000">127.0.0.1:9000</a> -- 2498<br><a href="http://127.0.0.1:9003">127.0.0.1:9003</a> -- 2498<br><br><div><br></div><div>
Looks like round robin is happening wrt to a worker process.

</div>When I add the zone configuration or when I set worker-process to 1, it works and gives the expected result. I am using open source nginx 1.22.0 (<a href="http://nginx.org/download/nginx-1.22.0.tar.gz">http://nginx.org/download/nginx-1.22.0.tar.gz</a>) and have built the source code.<br><br>Is my understanding of round-robin correct ?  I feel something related to the zone is making it work properly.<br><br>I also see this description in max_conns section: <br><div><br></div><div> <a href="http://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#server">http://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#server</a></div><div> max_conns=number</div>    limits the maximum number of simultaneous connections to the proxied server (1.11.5). Default value is zero, meaning there is no limit. If the server group does not reside in the shared memory, the limitation works per each worker process. <div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><font size="1" face="'trebuchet ms', sans-serif" color="#000099"><b><br></b></font></div><div><font size="1" face="'trebuchet ms', sans-serif" color="#000099"><b><br></b></font></div><div><font size="1" face="'trebuchet ms', sans-serif" color="#000099"><b>Thanks & Regards,</b></font><div><font size="1" face="'trebuchet ms', sans-serif" color="#000099"><b>Vishwas <br></b></font></div>




<div><br></div></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Aug 8, 2022 at 8:19 AM Sergey A. Osokin <<a href="mailto:osa@freebsd.org.ru">osa@freebsd.org.ru</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
On Fri, Aug 05, 2022 at 07:40:35PM +0530, Vishwas Bm wrote:<br>
> <br>
> What is the use of zone in stream upstream<br>
> <a href="http://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#zone" rel="noreferrer" target="_blank">http://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#zone</a><br>
<br>
Since this is the part of the commercial subscription, I'd recommend<br>
to contact NGINX Plus premium support team, please visit the following<br>
page to get details, <a href="https://www.nginx.com/support/" rel="noreferrer" target="_blank">https://www.nginx.com/support/</a><br>
<br>
> Does it have any impact on how loadbalancing happens when there are<br>
> multiple worker process?<br>
<br>
No impact.<br>
<br>
> Also how is the size needs to be calculated ?<br>
> Is 5m size sufficient for 10 worker process?<br>
<br>
That depends on the actual NGINX Plus configuration and other factors,<br>
usually 64k is enough, but that number can be revisited with an extensive<br>
testing in a lower environments.<br>
<br>
Thank you.<br>
<br>
-- <br>
Sergey A. Osokin<br>
_______________________________________________<br>
nginx mailing list -- <a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
To unsubscribe send an email to <a href="mailto:nginx-leave@nginx.org" target="_blank">nginx-leave@nginx.org</a><br>
</blockquote></div>