[mapserver-dev] Memory leak in mapcache

Stephen Woodbridge stephenwoodbridge37 at gmail.com
Mon Apr 15 07:54:23 PDT 2019


Is it possible that this is related to using the cache type="memcache"
I have not seen this behavior using cache type="disk"
I'm not saying the the memory usage is memcache, but might be a leak in 
the apache code talking to memcache, versus that talking to disk cache.

Do you have a setup where you could switch your cache from memcache to 
disk for a test.

-Steve W

On 4/15/2019 4:36 AM, Patrick Valsecchi wrote:
> Hi Thomas, Long time no see!
>
> 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 //.
>
> 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.
>
> Thanks
>
> On Fri, Apr 12, 2019 at 7:12 PM thomas bonfort 
> <thomas.bonfort at gmail.com <mailto:thomas.bonfort at gmail.com>> wrote:
>
>     Hi Patrick,
>     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.
>
>     --
>     thomas
>
>     On Fri, Apr 12, 2019 at 12:42 AM Patrick Valsecchi
>     <patrick.valsecchi at camptocamp.com
>     <mailto:patrick.valsecchi at camptocamp.com>> wrote:
>
>         Hi,
>
>         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:
>
>             <mapcache>
>                <cache name="default" type="memcache">
>                   <server>
>                      <host>prod-2-4-c2cgeoportal-memcached</host>
>                      <port>11211</port>
>                   </server>
>                </cache>
>
>                ...
>
>                <tileset name="map">
>                  <source>map</source>
>                  <cache>default</cache>
>                  <grid>swissgrid_005</grid>
>                  <metatile>5 5</metatile>
>                  <metabuffer>128</metabuffer>
>                  <format>image/png</format>
>                  <expires>3600</expires> <!-- 1 hour -->
>                  <auto_expire>13800</auto_expire> <!-- 4 hours -->
>               </tileset>
>
>
>         I can see that memcached is used in it's stats and only
>         mapcache uses it.
>
>         But the the memory usage of the whole mapcache container looks
>         like that:
>         image.png
>
>         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.
>         Nothing shows up in the apache logs.
>
>         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...
>
>         Thanks for your help.
>         _______________________________________________
>         mapserver-dev mailing list
>         mapserver-dev at lists.osgeo.org
>         <mailto:mapserver-dev at lists.osgeo.org>
>         https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>
>
> _______________________________________________
> mapserver-dev mailing list
> mapserver-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-dev


---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus



More information about the mapserver-dev mailing list