Hello! On Thu, Feb 28, 2019 at 01:43:18PM -0500, wkbrad wrote:
> We're running Nginx version 1.15.8 but we've been seeing similar issues with > other versions too and on all of our servers that have a high number of > vhosts. > > The issue is that when you do an nginx reload it ends up using almost 2x the > ram as it was previously. Here is a test I ran. > -------------------------------------------------------------------------------- > 21.3 MiB + 1.4 GiB = 1.4 GiB nginx (3) > 21.3 MiB + 1.4 GiB = 1.4 GiB nginx (3) > 484.2 MiB + 1.4 GiB = 1.9 GiB nginx (3) > 588.1 MiB + 1.4 GiB = 2.0 GiB nginx (3) > 720.3 MiB + 1.4 GiB = 2.1 GiB nginx (3) > 1.4 GiB + 1.4 GiB = 2.8 GiB nginx (3) > 18.0 MiB + 2.7 GiB = 2.7 GiB nginx (3) > 20.8 MiB + 2.7 GiB = 2.7 GiB nginx (3) > 20.8 MiB + 2.7 GiB = 2.7 GiB nginx (3) > -------------------------------------------------------------------------------- > > I expect the ram usage to increase while the reload is happening but after > it's done shouldn't the ram usage go back to about the same level? > > This issue is completely reproducible across all of our servers and if I do > a full restart, ram usage goes back down to normal. > > Any thoughts? Configuration reload implies that master process parses the configuration and creates new configuration structures in memory. That is, memory usage is expected to be 2x compared to a clean startup assuming most of the memory is used for the configuration. Once the configuration is correctly parsed and applied, master process will free the old configuration. At this point memory usage is expected to be the same as after a clean start, but given memory allocation details it is almost never the case. For example, assuming the system allocator simply uses sbrk() without any caching, after the configuration reload the new configuration will use addresses higher than the original one used, so allocator will not be able to release no-longer-needed memory (previously used by the original configuration) to the system. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx