SV: [MapProxy] SV: Response time question

Johan Sandberg johs at kth.se
Mon Apr 11 07:29:42 EDT 2011


Hey!

I am performing tests with the software LoadUI. I have pregenerated URLS from a listw which the programe reads.
The backend WMS are a geoserver which is pretty fast. MapProxy is installed on a linux computer running on apache2 with the WGSImode.

The test scenario are: 400*300, 800*600,1200*900 and 1600*1200 for 10 concurrent users.
Then test the 800*600 for 20,50 and 100 concurrent users.

I test two different cases when the cache is seeded and when its dynamically filled.

The results (avarage time milliseconds) on  directly to WMS and to seeded cache are as follows

WMS 400*300 10 request/sec	1157,276546
WMS 800*600 10 request/sec	2027,072179
WMS 1200*900 10 request/sec	3463,510585
WMS 1600*1200 10 request/sec	5571,929988
WMS 800*600 20 request/sec	4045,260605
WMS 800*600 50 request/sec	10349,9973
WMS 800*600 100 requst/sec	20279,21129


MapProxy 400*300 10 request/sec	229,7247875
MapProxy 800*600 10 request/sec	1322,603837
MapProxy 1200*900 10 request/sec	2753,405889
MapProxy 1600*1200 10 request/sec	6793,848616
MapProxy 800*600 20 request/sec	2678,599481
MapProxy 800*600 50 request/sec	6545,8422
MapProxy 800*600 100 request/sec	19226,09422

For the fourth test (1600*1200) the WMS the avarage time is better for WMS than for MapProxy. 
The tests are fetching the same data which are severall vector layers compose as one Map layer.

/ johan

________________________________________
Från: Rahkonen Jukka [Jukka.Rahkonen at mmmtike.fi]
Skickat: den 11 april 2011 13:12
Till: Johan Sandberg
Kopia: mapproxy at lists.osgeo.org
Ämne: Re: [MapProxy] SV: Response time question

Hi,

In my tests MapProxy has been either much or very much faster than my backend WMS but that depends on many things.  With extremely simple vector layers with simple styles and with just a few concurrent users my WMS can be almost as fast. Biggest speedup (at least ten times faster)is when rendering complicated vector layers like OpenStreetMap data at small scales . Speedup with raster maps or aerial images is something in between, let's say 5 to times faster.

What is your use case like? What data you have on WMS (vectors/rasters)? I suppose you are testing with WMS calls. Do you use the same projection than your Mapproxy tiles are, or does Mapproxy do reprojection for you? How do you test, are you running the same script with reasonably many requests with jmeter or something?

WMS can be a bit slow to start, especially Mapserver in CGI mode is such. Therefore it is normal that throughput as bits per second with big WMS requests is higher than with small requests but this depends on the WMS software and also on the data. Mapproxy, on the other hand, is using prerendered tiles of fixed size as a raw material and therefore it is showing a very stable throughput with varying image sizes. With the backend data it is naturally totally ignorant (when serving from the cache), heavy OSM tiles are rendered just as fast as a simple point layer. This is also making it easier to manage the WMS server. It is not so important to use all the tricks I know for making the heavy WMS bulk layers 10 per cent faster because WMS is used just once after each update and thereafter Mapproxy is taking the load.

Can you give any exact numbers about your tests? How many 400x300 sized images per second you can get out from your WMS and how many through Mapproxy?

Johan Sandberg wrote:

> Hej!
> Yes that's offcourse true. This leads to not so greate
> performance on bigger image sizes with Map Proxy.
> Measuring directly to the WMS I see that the scaling is only
> twice the time.
> To a certain image size there is no use of using M.P for
> better perfromance according to the tests I perform.
>
> / Johan
> ________________________________________
> Från: Rahkonen Jukka [Jukka.Rahkonen at mmmtike.fi]
> Skickat: den 11 april 2011 11:07
> Till: Johan Sandberg
> Kopia: mapproxy at lists.osgeo.org
> Ämne: Re: [MapProxy] SV: Response time question
>
> Hi,
>
> He means that if you'll take four times more pixels
> (800x600=480000 vs 400x300=120000)
> then you'll need approximately four times longer time.
> Rather logical and to my experience pretty accurate approximation.
>
> -Jukka Rahkonen-
>
>
>
> Johan Sandberg wrote:
> >
> > Hej!
> >
> > "MapProxy should scale linear with the number of pixels. So
> > you should expect 1/4 requests when changing from 400x300 to
> > 800x600. You should measure the times with one concurrent
> > requests at first and then you should look how you can scale
> > that with increased concurrency, see below."
> >
> > So do you mean that I could expect four times the time to
> > fetch an image that comes from seeded tiles when the
> > requested image size double?
> >
> > Is there any good documenations on this? Would be pretty helpful!
> >
> > / Johan
> >
> >
> > ________________________________________
> > Från: Oliver Tonnhofer [olt at omniscale.de]
> > Skickat: den 31 mars 2011 17:34
> > Till: Johan Sandberg
> > Kopia: mapproxy at lists.osgeo.org
> > Ämne: Re: Response time question
> >
> > Hej Johan,
> >
> > On 31.03.2011, at 15:07, Johan Sandberg wrote:
> >
> > > hey!
> > >
> > > I'm measuring responses to Map Proxy when its seeded.
> > > I dont get that satisfying response time as a wish. When I
> > perform requests of a image size of 400*300, 10 request at
> > the time I get low response time(around 50, 60ms).
> > >
> > > When I do image size of 800*600 the response time is up
> to 1-2 sec.
> > > And even bigger image size give response time up to 5-6 sec.
> > > Is this normal response time when requesting seeded tiles?
> >
> > MapProxy should scale linear with the number of pixels. So
> > you should expect 1/4 requests when changing from 400x300 to
> > 800x600. You should measure the times with one concurrent
> > requests at first and then you should look how you can scale
> > that with increased concurrency, see below.
> >
> > > The request should be alligned with the resolution that is
> > seeded so they don't have to re scaled.
> > > How much is the normal cost in time of rescaling an image?
> > Do the request have to be perfectly alligned with the cached
> > resolution to achieve the low response time that I wish?
> >
> > Depends on the resampling method, you have to check for your
> > self. The performance can degrade dramatically when you
> > request a lower resolution than your first/upper level,
> > because it then needs to merge lots of tiles. So make sure
> > you don't run into that.
> >
> > > I have installed map proxy on a Linux computer with httpd
> > apache server. I followed the wgsi example.
> >
> > You should run mod_wsgi with multiple daemon processes when
> > you have more than one CPU:
> > http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives
> >
> > Regards,
> > Oliver
> >
> > --
> > Oliver Tonnhofer    | Omniscale GmbH & Co KG    |
> http://omniscale.de
> > http://mapproxy.org | https://bitbucket.org/olt | @oltonn
> >
> >
> >
> >
> > _______________________________________________
> > MapProxy mailing list
> > MapProxy at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/mapproxy
> >
> _______________________________________________
> MapProxy mailing list
> MapProxy at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapproxy
>


More information about the MapProxy mailing list