<div dir="ltr"><div dir="ltr"><div dir="ltr">Nginx does use more ram for the number of vhosts than Apache does <div><br></div><div><a href="http://nginx.org/en/docs/control.html">http://nginx.org/en/docs/control.html</a><br></div><div><br></div><div>The USR2 is for binary in-place upgrades and normally you should just send a SIGHUP, I have seen sometimes the USR2 leading multiple master process and showing some weird behaviour </div><div><br></div><div>You can probably use worker_shutdown_timeout 10s; or something to get the workers to shut down in a more timebound manner</div><div><br></div><div> </div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 8, 2019 at 12:03 AM wkbrad <<a href="mailto:nginx-forum@forum.nginx.org">nginx-forum@forum.nginx.org</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 all,<br>
<br>
I just wanted to share the details of what I've found about this issue. <br>
Also thanks to Maxim Dounin and Reinis Rozitis who gave some really great<br>
answers!<br>
<br>
The more I look into this the more I'm convinced this is an issue with Nginx<br>
itself.  I've tested this with 3 different builds now and all have the exact<br>
same issue.<br>
<br>
The first 2 types of servers I tested were both running Nginx 1.15.8 on<br>
Centos 7 ( with 1 of them being on 6 ).  I tested about 10 of our over 100<br>
servers.  This time I tested in a default install of Debian 9 with Nginix<br>
version 1.10.3 and the issue exists there too.  I just wanted to test on<br>
something completely different.<br>
<br>
For the test, I created 50k very simple vhosts which used about 1G of RAM. <br>
Here is the ps_mem output.<br>
 94.3 MiB +   1.0 GiB =   1.1 GiB       nginx (3)<br>
<br>
After a normal reload it then uses 2x the ram:<br>
186.3 MiB +   1.9 GiB =   2.1 GiB       nginx (3)<br>
<br>
And if I reload it again it briefly jumps up to about 4G during the reload<br>
and then goes back down to 2G.<br>
<br>
If I instead use the "upgrade" option.  In the case of Debian, service nginx<br>
upgrade, then it reloads gracefully and goes back to using 1G again.<br>
100.8 MiB +   1.0 GiB =   1.1 GiB       nginx (3)<br>
<br>
The difference between the "reload" and "upgrade" process is basically only<br>
that reload sends a HUP signal to Nginx and upgrade sends a USR2 and then<br>
QUIT signal.  What happens with all of those signals is entirely up to<br>
Nginx.  It could even ignore them if chose too.<br>
<br>
Additionally, I ran the same test with Apache.  Not because I want to<br>
compare Nginx to Apache, they are different for a reason.  I just wanted to<br>
test if this was a system issue.  So I did the same thing on Debian 9,<br>
installed Apache and created 50k simple vhosts.  It used about 800M of ram<br>
and reloading did not cause that to increase at all.<br>
<br>
All of that leads me to these questions.<br>
<br>
Why would anyone want to use the normal reload process to reload the Nginx<br>
configuration?<br>
Shouldn't we always be using the upgrade process instead?<br>
Are there any downsides to doing that?<br>
Has anyone else noticed these issues and have you found another fix?<br>
<br>
Look forward to hearing back and thanks in advance!<br>
<br>
Posted at Nginx Forum: <a href="https://forum.nginx.org/read.php?2,283216,283309#msg-283309" rel="noreferrer" target="_blank">https://forum.nginx.org/read.php?2,283216,283309#msg-283309</a><br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><b>Anoop P Alias</b> <div><br></div></div></div></div>