[mapserver-users] MapCache: cache some zoom levels, proxy others?

Paul Madden pmadden at nsidc.org
Wed Oct 28 14:10:01 PDT 2015


Thomas,

Enabling metatiling indeed led to a significant speedup. I can also 
verify that <threaded_fetching> works for me (I can see the additional 
threads running), but it did not lead to a noticeable speedup, perhaps 
due to a bottleneck where my MapServer talks to a remote database. I 
also increased my tile size from 256x256 to 1024x1024, which seems fine 
for my application and which obviously reduces the number of tiles 
helpfully.

If I may ask one more question: Are you aware of any problems running 
mapcache_seed concurrently with users accessing MapCache via the web 
application, if one uses the sqlite3 cache? I saw a thread about 
potential conflicts, but I think that might have been specific to disk 
caches.

Thanks again,
paul

On 10/28/15 9:59 AM, thomas bonfort wrote:
>> Out of curiosity, can I assume that my other idea, about proxying some zoom
>> levels directly to WMS and caching others, is unrealistic?
> not unrealistic, but not implemented
>
> --
> thomas
>
>> paul
>>
>>
>> On 10/28/15 9:36 AM, thomas bonfort wrote:
>>> Paul,
>>>
>>> Are you using metatiling? That would substantially reduce the number
>>> of requests mapcache does to mapserver.
>>>
>>> You also have the
>>> <mapcache>
>>> ...
>>>      <threaded_fetching>true</threaded_fetching>
>>> </mapcache>
>>> option, that lets mapcache launch mapserver requests in parallel
>>> instead of sequentially (YMMV, this option isn't very tested)
>>>
>>> --
>>> thomas
>>>
>>> On 28 October 2015 at 16:20, Paul Madden <pmadden at nsidc.org> wrote:
>>>> I am working with a web application that makes WMS queries to MapCache.
>>>> The application supports zoom levels 0 through 13, and I have used
>>>> mapcache_seed to seed the cache through level 10. The deeper levels take so
>>>> long to seed that I am considering stopping at level 10 and letting MapCache
>>>> / MapServer produce deeper levels on demand, as users visit them. The
>>>> problem I'm facing is that, as far as I can tell, MapCache requests tiles
>>>> from MapServer serially, then stitches together the required image from
>>>> these tiles, when it receives a request for an uncached level. In one test,
>>>> 34 separate tiles were requested from MapServer, one at a time, and it took
>>>> ~30 seconds to render the final image.
>>>>
>>>> I'm wondering whether there is a way to configure MapCache to
>>>> cache/provide a defined set of zoom levels, and to proxy requests at other
>>>> zoom levels directly to MapServer. I tried setting minzoom and maxzoom on my
>>>> <grid> in mapcache.xml to "0 10". I tried adding a proxy for my cached
>>>> layer, hoping that MapCache would redirect requests for unsupported zoom
>>>> levels to MapServer (I have proxies in place for other, completely uncached
>>>> layers, and those work fine). I tried copying/renaming the
>>>> GoogleMapsCompatible grid definition into my mapcache.xml and removing from
>>>> <resolutions> zoom levels I don't want MapCache to cache. So far, these
>>>> attempts apparently just prevent MapCache from serving the deeper layers at
>>>> all.
>>>>
>>>> Any thoughts on how I might address this issue? It might also help if
>>>> MapCache would make concurrent requests for tiles at uncached levels, but I
>>>> have no idea if this is feasible. And it would be nice to be able to let
>>>> MapServer handle some zoom levels directly in any case.
>>>>
>>>> Thanks in advance for any ideas.
>>>>
>>>> Paul Madden
>>>> National Snow and Ice Data Center
>>>> _______________________________________________
>>>> mapserver-users mailing list
>>>> mapserver-users at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>>
>> _______________________________________________
>> mapserver-users mailing list
>> mapserver-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapserver-users



More information about the mapserver-users mailing list