<div dir="ltr">Hi Thomas, Long time no see!<div><br></div><div>Every kind of request leaks. Even a WMS GetCapabilities (done by the health-check) leaks, but at a lesser rate than a GetMap. The web UI does requests in //, but the ingress limits at 10 connection in //.</div><div><br></div><div>And it's not just that it allocates a big chunk of memory and stays there. It leaks continuously until the OOM wakes up and kills one of apache's worker. I had to set a limit of 100 requests (every 100 requests the worker process is killed and a new one is forked) per worker to keep memory usage at bay.</div><div><br></div><div>Thanks</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Apr 12, 2019 at 7:12 PM thomas bonfort <<a href="mailto:thomas.bonfort@gmail.com">thomas.bonfort@gmail.com</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"><div dir="ltr"><div>Hi Patrick,</div><div>What kind of requests is mapcache responding to, and at what concurrency? Serving multiple large wms requests is typically an example where large chunks of memory will be allocated.</div><div><br></div><div>--</div><div>thomas<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Apr 12, 2019 at 12:42 AM Patrick Valsecchi <<a href="mailto:patrick.valsecchi@camptocamp.com" target="_blank">patrick.valsecchi@camptocamp.com</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"><div dir="ltr"><div dir="ltr">Hi,<div><br></div><div>I'm using mapcache v1.6.1 (tested as well with a master build) in docker and I can see huge memory increases in the apache process memory usage when mapcache is used (it's the only thing this apache instance is serving). The thing is configured like that:</div><div><br></div><div><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><div><span style="font-family:monospace"><span style="color:rgb(0,0,0)"><mapcache>
</span><br>    <cache name="default" type="memcache">
<br>       <server>
<br>          <host>prod-2-4-c2cgeoportal-memcached</host>
<br>          <port>11211</port>
<br>       </server>
<br>    </cache></span></div><div><span style="font-family:monospace"><br></span></div><div><span style="font-family:monospace">   ...</span></div><div><span style="font-family:monospace"><br>
</span><span style="font-family:monospace"><span style="color:rgb(0,0,0)">   <tileset name="map">
</span><br>      <source>map</source>
<br>      <cache>default</cache>
<br>      <grid>swissgrid_005</grid>
<br>      <metatile>5 5</metatile>
<br>      <metabuffer>128</metabuffer>
<br>      <format>image/png</format>
<br>      <expires>3600</expires> <!-- 1 hour -->
<br>      <auto_expire>13800</auto_expire> <!-- 4 hours -->
<br>   </tileset><br></span></div></blockquote></div><div><br></div><div>I can see that memcached is used in it's stats and only mapcache uses it.</div><div><br></div><div>But the the memory usage of the whole mapcache container looks like that:<br><div><img src="cid:ii_judr9byn0" alt="image.png" width="562" height="257"><br></div></div><div><br></div><div>Each dip in usage is when the OOM kills one of the apache workers (out of a maximum of 3 workers). I have configured a memory limit in docker at 512MB.</div><div>Nothing shows up in the apache logs.</div><div><br></div><div>Are there any known memory leaks? Do I have a bad configuration? I could have the apache workers restarted every 10 queries, but that would be utterly ugly and inefficient...</div><div><br></div><div>Thanks for your help.</div></div></div>
_______________________________________________<br>
mapserver-dev mailing list<br>
<a href="mailto:mapserver-dev@lists.osgeo.org" target="_blank">mapserver-dev@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/mapserver-dev" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/mapserver-dev</a></blockquote></div>
</blockquote></div>