<div dir="ltr">Hi,<div><br></div><div>I ran into something unexpected with VSI_CACHE while trying to understand Memory consumption with MapServer <a href="https://lists.osgeo.org/pipermail/mapserver-users/2017-October/080315.html">https://lists.osgeo.org/pipermail/mapserver-users/2017-October/080315.html</a></div><div><br></div><div>When MapServer layers have the setting <span style="color:rgb(0,0,0);white-space:pre-wrap">CLOSE_CONNECTION=DEFER (this setting keeps open file handles open indefinitely), images accessed with /vsis3/, GDAL config variables GDAL_CACHEMAX=1 and VSI_CACHE=FALSE, my 8 MapServer processes, Supervisord and Nginx consumes a fixed amount of memory which I cannot grow (~ 470 mb, as reported by `docker stats`) after I have been streaming WMS tiles for a while.</span></div><div><span style="color:rgb(0,0,0);white-space:pre-wrap"><br></span></div><div><span style="color:rgb(0,0,0);white-space:pre-wrap">When I set VSI_CACHE=TRUE, my 8 MapServer processes grows more than I think it should.  The default VSI_CACHE_SIZE is 25 MB </span><span style="color:rgb(0,0,0);white-space:pre-wrap"><a href="https://trac.osgeo.org/gdal/wiki/ConfigOptions#VSI_CACHE">https://trac.osgeo.org/gdal/wiki/ConfigOptions#VSI_CACHE</a> </span><span style="color:rgb(0,0,0);white-space:pre-wrap">yet I can get my 8 MapServer processes to consume > 1.4 GB and climbing. I'm not sure how high it will go as the way I am reproducing this is a bit tedious. I would expect the memory to level out around 470 + 25 * 8 = 670 MB</span></div><div><span style="color:rgb(0,0,0);white-space:pre-wrap"><br></span></div><div><span style="color:rgb(0,0,0);white-space:pre-wrap">Regardless of VSI_CACHE and GDAL_CACHEMAX settings, I get a small memory footprint when MapServer is configured to close file handles after every request (CLOSE_CONNECTION=ALWAYS).  I've never noticed this issue with VSI_CACHE and MapServer before because I typically cnopfigure MapServer to utilize a Tile Index, which defaults to behavior similar to CLOSE_CONNECTION=ALWAYS. That is, file handles are closed after each request.</span></div><div><br></div><div><div>I'm using MapServer-7.0.6 built with GDAL-2.2.2.  Is VSI_CACHE_SIZE the cache size per process? per file handle?</div><div><br></div><div>Thanks, </div><div class="gmail_signature">Pete</div>
</div></div>