 <?xml-stylesheet type="text/css" href="https://www.esdm.co.uk/Data/style/rss1.css" ?> <?xml-stylesheet type="text/xsl" href="https://www.esdm.co.uk/Data/style/rss1.xsl" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
  <channel>
    <title>The knowledge base blog</title>
    <link>https://www.esdm.co.uk/knowledge</link>
    <description />
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>mojoPortal Blog Module</generator>
    <language>en-GB</language>
    <ttl>120</ttl>
    <atom:link href="https://www.esdm.co.uk/Blog/RSS.aspx?p=138~108~18" rel="self" type="application/rss+xml" />
    <itunes:owner />
    <itunes:explicit>no</itunes:explicit>
    <item>
      <title>Further load testing of GeoServer and MapServer (and tilecache)</title>
      <description><![CDATA[<p>My previous load testing of GeoServer and MapServer involved requesting just one 256x256 pixel map across all the virtual user sessions. In this test, GeoServer performed stunningly well so long as no re-projection was involved, when it performed terribly. This test may not be realistic, because this is not how a real interactive map would load the server when under load from many users. Also, we might have hit a sweetspot where GeoServer always caches in memory the last map (or something).</p> <p>To run a more realistic test I spread the virtual users across 10 different map requests in different parts of the country (i.e. on different underlying map image files).</p>Each test ran for 100 seconds, starting with 10 virtual users, increasing by 10 every 10 seconds. The tilecache image was of course cached and simply being retrieved from disk. All tests were using the same web server, with files on the same drive.  <p><em>Note: the vertical scale differs in each graph to fit the observed values.</em></p> <h3>With re-projection into Spherical Mercator, 100 virtual users</h3> <table border="1" cellspacing="0" cellpadding="2" width="600"> <tbody> <tr> <td valign="top" width="150">&nbsp;</td> <td valign="top" width="150"><strong>GeoServer</strong></td> <td valign="top" width="150"><strong>MapServer</strong></td> <td valign="top" width="150"><strong>Tilecache</strong></td></tr> <tr> <td valign="top" width="150">Transactions</td> <td valign="top" width="150">1283</td> <td valign="top" width="150">770</td> <td valign="top" width="150">2301</td></tr> <tr> <td valign="top" width="150">Errors</td> <td valign="top" width="150">0</td> <td valign="top" width="150">0</td> <td valign="top" width="150">0</td></tr> <tr> <td valign="top" width="150">Average response time (seconds)</td> <td valign="top" width="150">3.5</td> <td valign="top" width="150">6.7</td> <td valign="top" width="150">2.2</td></tr> <tr> <td valign="top" width="150">95% response time (seconds)</td> <td valign="top" width="150">15.9</td> <td valign="top" width="150">23.6</td> <td valign="top" width="150">8.7</td></tr> <tr> <td valign="top" width="150">Response graph</td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_9.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times" border="0" alt="All_Transactions_response_times" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_thumb_9.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_10.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times" border="0" alt="All_Transactions_response_times" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_thumb_10.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_11.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times" border="0" alt="All_Transactions_response_times" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_thumb_11.png" width="244" height="103"></a></td></tr> <tr> <td valign="top" width="150">Transactions per second</td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times_intervals" border="0" alt="All_Transactions_response_times_intervals" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_thumb.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times_intervals" border="0" alt="All_Transactions_response_times_intervals" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_thumb_1.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times_intervals" border="0" alt="All_Transactions_response_times_intervals" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_thumb_2.png" width="244" height="103"></a></td></tr> <tr> <td valign="top" width="150">Sample image</td> <td valign="top" width="150"><img src="http://62.197.41.154:8080/geoserver/ESDM_UK_BaseMaps/wms?LAYERS=ESDM_UK_BaseMaps%3A50KRasterColour&amp;FORMAT=image%2Fpng&amp;SERVICE=WMS&amp;VERSION=1.1.1&amp;REQUEST=GetMap&amp;STYLES=&amp;SRS=EPSG%3A900913&amp;BBOX=-374235.69121719,6787608.1097078,-371789.7063125,6790054.0946125&amp;WIDTH=256&amp;HEIGHT=256"></td> <td valign="top" width="150"><img src="http://www.esdmwms.no-ip.co.uk/scripts/mapserv.exe?map=D:\Websites\UKBaseMap\map\UKBaseMap.map&amp;LAYERS=OSLicensed&amp;FORMAT=image%2Fpng&amp;SERVICE=WMS&amp;VERSION=1.1.1&amp;REQUEST=GetMap&amp;STYLES=&amp;SRS=EPSG%3A900913&amp;BBOX=-374235.69121719,6787608.1097078,-371789.7063125,6790054.0946125&amp;WIDTH=256&amp;HEIGHT=256"></td> <td valign="top" width="150">Same as MapServer (because created with MapServer)</td></tr> <tr> <td valign="top" width="150">Comments</td> <td valign="top" width="150">Horrible image, but blistering performance until 70 users, then major outage for about 20 seconds, then resumed.</td> <td valign="top" width="150">Lovely image, moderate performance; also suffered a pause in service once usage went over 60 sessions.</td> <td valign="top" width="150">Reassuring performance</td></tr></tbody></table> <p>Note: sometimes GeoServer simply fails to re-project rasters correctly:</p> <p><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/image_5.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="GeoServer failing to re-project OS 50K rasters" border="0" alt="GeoServer failing to re-project OS 50K rasters" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/image_thumb_8.png" width="244" height="215"></a></p>         <h3>Without re-projection, 100 virtual users</h3> <table border="1" cellspacing="0" cellpadding="2" width="602"> <tbody> <tr> <td valign="top" width="150">&nbsp;</td> <td valign="top" width="150"><strong>GeoServer</strong></td> <td valign="top" width="150"><strong>MapServer</strong></td> <td valign="top" width="150"><strong>Tilecache</strong></td></tr> <tr> <td valign="top" width="150">Transactions</td> <td valign="top" width="150">2476</td> <td valign="top" width="150">554</td> <td valign="top" width="150">2877</td></tr> <tr> <td valign="top" width="150">Errors</td> <td valign="top" width="150">10</td> <td valign="top" width="150">0</td> <td valign="top" width="150">2</td></tr> <tr> <td valign="top" width="150">Average response time (seconds)</td> <td valign="top" width="150">2.0</td> <td valign="top" width="150">7.1</td> <td valign="top" width="150">1.8</td></tr> <tr> <td valign="top" width="150">95% response time (seconds)</td> <td valign="top" width="150">5.6</td> <td valign="top" width="150">18.9</td> <td valign="top" width="150">5.6</td></tr> <tr> <td valign="top" width="150">Response graph</td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_12.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times" border="0" alt="All_Transactions_response_times" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_thumb_12.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_13.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times" border="0" alt="All_Transactions_response_times" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_thumb_13.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_14.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times" border="0" alt="All_Transactions_response_times" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_thumb_14.png" width="244" height="103"></a></td></tr> <tr> <td valign="top" width="150">Transactions per second</td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times_intervals" border="0" alt="All_Transactions_response_times_intervals" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_thumb_3.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_4.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times_intervals" border="0" alt="All_Transactions_response_times_intervals" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_thumb_4.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_5.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times_intervals" border="0" alt="All_Transactions_response_times_intervals" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_thumb_5.png" width="244" height="103"></a></td></tr> <tr> <td valign="top" width="150">Sample image</td> <td valign="top" width="150"><img src="http://62.197.41.154:8080/geoserver/ESDM_UK_BaseMaps/wms?LAYERS=ESDM_UK_BaseMaps%3A50KRasterColour&amp;FORMAT=image%2Fpng&amp;SERVICE=WMS&amp;VERSION=1.1.1&amp;REQUEST=GetMap&amp;STYLES=&amp;SRS=EPSG%3A27700&amp;BBOX=330240,524800,331520,526080&amp;WIDTH=256&amp;HEIGHT=256"></td> <td valign="top" width="150"><img src="http://www.esdmwms.no-ip.co.uk/scripts/mapserv.exe?map=D:\Websites\UKBaseMap\map\UKBaseMap.map&amp;LAYERS=OSLicensed&amp;FORMAT=image%2Fpng&amp;SERVICE=WMS&amp;VERSION=1.1.1&amp;REQUEST=GetMap&amp;STYLES=&amp;SRS=EPSG%3A27700&amp;BBOX=330240,524800,331520,526080&amp;WIDTH=256&amp;HEIGHT=256"></td> <td valign="top" width="150">Same as MapServer (because created with MapServer)</td></tr> <tr> <td valign="top" width="150">Comments</td> <td valign="top" width="150">Image quality the same as MapServer. A few errors crept in when the number of virtual sessions hit 100. Apart from this, remarkable performance.</td> <td valign="top" width="150">Stuttering performance once loading goes beyond about 30 virtual users. No errors, but slow.</td> <td valign="top" width="150">Reassuring performance, but only a whisker faster than GeoServer.<br>Interesting that the tilecache is faster in 27700 than in 900913 – I think this is simply because the images on disk are larger (presumably because rotated and re-sampled from the originals).</td></tr></tbody></table>          <p>I then ran the tests again with less extreme loading, this time only 50 virtual users ramping up over 50 seconds.</p> <h3>With re-projection into Spherical Mercator, 50 virtual users</h3> <table border="1" cellspacing="0" cellpadding="2" width="600"> <tbody> <tr> <td valign="top" width="150">&nbsp;</td> <td valign="top" width="150"><strong>GeoServer</strong></td> <td valign="top" width="150"><strong>MapServer</strong></td> <td valign="top" width="150"><strong>Tilecache</strong></td></tr> <tr> <td valign="top" width="150">Transactions</td> <td valign="top" width="150">1033</td> <td valign="top" width="150">491</td> <td valign="top" width="150">1138</td></tr> <tr> <td valign="top" width="150">Errors</td> <td valign="top" width="150">0</td> <td valign="top" width="150">0</td> <td valign="top" width="150">0</td></tr> <tr> <td valign="top" width="150">Average response time (seconds)</td> <td valign="top" width="150">1.3</td> <td valign="top" width="150">2.8</td> <td valign="top" width="150">1.1</td></tr> <tr> <td valign="top" width="150">95% response time (seconds)</td> <td valign="top" width="150">2.7</td> <td valign="top" width="150">10.7</td> <td valign="top" width="150">3.5</td></tr> <tr> <td valign="top" width="150">Response graph</td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_15.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times" border="0" alt="All_Transactions_response_times" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_thumb_15.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_16.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times" border="0" alt="All_Transactions_response_times" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_thumb_16.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_17.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times" border="0" alt="All_Transactions_response_times" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_thumb_17.png" width="244" height="103"></a></td></tr> <tr> <td valign="top" width="150">Transactions per second</td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_6.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times_intervals" border="0" alt="All_Transactions_response_times_intervals" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_thumb_6.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_7.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times_intervals" border="0" alt="All_Transactions_response_times_intervals" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_thumb_7.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_8.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times_intervals" border="0" alt="All_Transactions_response_times_intervals" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_thumb_8.png" width="244" height="103"></a></td></tr> <tr> <td valign="top" width="150">Comments</td> <td valign="top" width="150">Impressive performance – but we need to find a way of making the image look less horrible</td> <td valign="top" width="150">Lovely image, moderate performance.</td> <td valign="top" width="150">Reassuring performance, though some very slow responses for a few tiles, and the 95% figure is worse than GeoServer.</td></tr></tbody></table> <p>&nbsp;</p>         <h3>Without re-projection, 50 virtual users</h3> <table border="1" cellspacing="0" cellpadding="2" width="602"> <tbody> <tr> <td valign="top" width="150">&nbsp;</td> <td valign="top" width="150"><strong>GeoServer</strong></td> <td valign="top" width="150"><strong>MapServer</strong></td> <td valign="top" width="150"><strong>Tilecache</strong></td></tr> <tr> <td valign="top" width="150">Transactions</td> <td valign="top" width="150">1152</td> <td valign="top" width="150">319</td> <td valign="top" width="150">1364</td></tr> <tr> <td valign="top" width="150">Errors</td> <td valign="top" width="150">0</td> <td valign="top" width="150">0</td> <td valign="top" width="150">&nbsp;</td></tr> <tr> <td valign="top" width="150">Average response time (seconds)</td> <td valign="top" width="150">1.2</td> <td valign="top" width="150">4.3</td> <td valign="top" width="150">1.0</td></tr> <tr> <td valign="top" width="150">95% response time (seconds)</td> <td valign="top" width="150">2.2</td> <td valign="top" width="150">15.2</td> <td valign="top" width="150">2.7</td></tr> <tr> <td valign="top" width="150">Response graph</td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_18.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times" border="0" alt="All_Transactions_response_times" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_thumb_18.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_19.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times" border="0" alt="All_Transactions_response_times" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_thumb_19.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_20.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times" border="0" alt="All_Transactions_response_times" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_thumb_20.png" width="244" height="103"></a></td></tr> <tr> <td valign="top" width="150">Transactions per second</td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_9.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times_intervals" border="0" alt="All_Transactions_response_times_intervals" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_thumb_9.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_10.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times_intervals" border="0" alt="All_Transactions_response_times_intervals" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_thumb_10.png" width="244" height="103"></a></td> <td valign="top" width="150"><a href="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_11.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="All_Transactions_response_times_intervals" border="0" alt="All_Transactions_response_times_intervals" src="https://www.esdm.co.uk/Data/Sites/1/media/wlw/all_transactions_response_times_intervals_thumb_11.png" width="244" height="103"></a></td></tr> <tr> <td valign="top" width="150">Comments</td> <td valign="top" width="150">Very impressive</td> <td valign="top" width="150">Very unimpressive. I don’t really understand how MapServer can be slower when not re-projecting than when it is, but this is a consistent pattern.</td> <td valign="top" width="150">Although the average response is faster than GeoServer, there were enough slow ones to make the overall 95% figure worse. i.e. for overall reliably fast performance, GeoServer beats a tilecache in this test.</td></tr></tbody></table>             <h3>Conclusions</h3> <p>These tests were a far more realistic simulation of real-world loading than the previous single-tile test. </p> <p>MapServer wins on image quality when re-projecting, but as before this probably means we have not found the way to make GeoServer re-sample nicely. </p> <p>Also MapServer was the only service to sail through all tests without any errors. Unfortunately previous tests showed that it can fail on some OS raster tiles though, regardless of load.</p> <p>For speed, GeoServer wins by a mile in these tests. In fact it is almost as fast as a tilecache when hit with up to around 70 concurrent virtual users. After that it start throwing errors and collapsing (so presumably needs more server power than we are giving it). But this does beg the question whether we really need to build a tilecache for rasters that are being served in their native projection – perhaps a GeoServer service would be adequate where the service is not expecting much usage.</p> <p>When I have time, I’ll repeat similar tests working against various vector data sources.</p><br /><a href='https://www.esdm.co.uk/further-load-testing-of-geoserver-and-mapserver-and-tilecache'>Crispin Flower</a>&nbsp;&nbsp;<a href='https://www.esdm.co.uk/further-load-testing-of-geoserver-and-mapserver-and-tilecache'>...</a>]]></description>
      <link>https://www.esdm.co.uk/further-load-testing-of-geoserver-and-mapserver-and-tilecache</link>
      <author>crispin.flower@idoxgroup.com (Crispin Flower)</author>
      <comments>https://www.esdm.co.uk/further-load-testing-of-geoserver-and-mapserver-and-tilecache</comments>
      <guid isPermaLink="true">https://www.esdm.co.uk/further-load-testing-of-geoserver-and-mapserver-and-tilecache</guid>
      <pubDate>Sun, 29 Jan 2012 15:50:33 GMT</pubDate>
    </item>
    <item>
      <title>Getting MapServer to work on IIS7.5 Server 2008</title>
      <description><![CDATA[<p>Text below is reproduced from:&nbsp;<a href="http://mas-kono-tes.blogspot.com/2011/03/getting-mapserver-to-work-on-iis75.html">http://mas-kono-tes.blogspot.com/2011/03/getting-mapserver-to-work-on-iis75.html</a>&nbsp;and gives a reasonable overview of how to install mapserver - especially how to navigate IIS 7 menu options.</p>

<p>and CGI install:&nbsp;<a href="http://blogs.iis.net/thomad/archive/2010/04/04/how-to-run-a-cgi-program-under-iis-7-0-or-iis-7-5.aspx">http://blogs.iis.net/thomad/archive/2010/04/04/how-to-run-a-cgi-program-under-iis-7-0-or-iis-7-5.aspx</a></p>

<p>Note: &nbsp;setting paths and env variables is not normally necessary and in fact can be dangerous on systems hosting multiple versions of mapserver&nbsp; or related applications.</p>

<h3>Getting MapServer to work on IIS7.5 Server 2008</h3>

<p>For some reason there doesn't seem to be a lot of documentation on how to install MapServer on IIS7 +. This entry will only cover installation on Windows Server 2008 R2 SP1 (x64) with IIS 7.5.</p>

<p><br />
1. First install&nbsp;<a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&amp;displaylang=en">Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)</a>.Even though the machine is running Server 2008 (x64) the MapServer binaries that I am using is from MS4W which is for x86. (I have not tried to get the 64 bit version working yet).<br />
<br />
2. From Server Manager select Roles and add the web server role with the following Role services:&nbsp;<br />
&nbsp;</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application Development</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .NET Extensibility</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CGI</p>

<p>·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ISAPI Extensions</p>

<p>3. Get the MS4W zip file (<a href="http://maptools.org/ms4w/index.phtml?page=downloads.html">ms4w_3.0.1.zip</a>)and extract it to the root directory, (i used C:\ms4w)<br />
<br />
4. Following the instructions&nbsp;<a href="http://www.osgeo.org/pipermail/mapserver-users/2007-November/026549.html">here</a>, I created a separate folder (c:\MapServer) and copied the follow folders into this directory: c:\ms4w\Apache\cgi-bin, C:\ms4w\gdaldata, C:\ms4w\gdalplugins, C:\ms4w\proj and C:\ms4w\tools.</p>

<p><br />
5. Copy the C:\ms4w\setenv.bat file into c:\MapServer and modify it as follows and then run it.</p>

<p>@ECHO OFF<br />
&nbsp;</p>

<p>set PATH=c:\MapServer\\cgi-bin; C:\MapServer\tools\gdal-ogr; C:\MapServer\\tools\mapserv; C:\MapServer\tools\shapelib; C:\MapServer\proj\bin; C:\MapServer\tools\shp2tile; C:\MapServer\tools\shpdiff; C:\MapServer\tools\avce00;<br />
echo GDAL, mapserv, PROJ, and shapelib dll paths set<br />
<br />
set GDAL_DATA=C:\MapServer\gdaldata<br />
echo GDAL_DATA path set<br />
<br />
set GDAL_DRIVER_PATH=C:\MapServer\gdalplugins<br />
echo GDAL_DRIVER_PATH set<br />
<br />
set PROJ_LIB=C:\MapServer\proj\nad<br />
echo PROJ_LIB set<br />
<br />
:ALL_DONE<br />
<br />
6. Right click the C:\MapServer folder, go to the security tab and add the IIS_IUSRS account with Read &amp; execute permissions.<br />
<br />
7. In IIS create a new Website. I called mine Mapping and turned off the default Website. To get CGI working I used the instructions from&nbsp;<a href="http://blogs.iis.net/thomad/archive/2010/04/04/how-to-run-a-cgi-program-under-iis-7-0-or-iis-7-5.aspx">here</a>.</p>

<p align="center">&nbsp;</p>

<p>8. In IIS click on the machine node and select the "ISAPI/CGI restrictions" icon from the Feature view. Select Add and choose C:\MapServer\cgi-bin\MapServ.exe as the "ISAPI or CGI path" and tick the check box for "Allow extension path to execute".<br />
<br />
9. In the Mapping website add a virtual directory (I called mine "cgi") and set the physical path to C:\MapServer\cgi-bin.<br />
&nbsp;&nbsp;<br />
10. Select the newly created cgi virtual directory and select the "Handler Mappings" icon in the Feature view. Click the Edit Feature Permissions link in the action menu and check the box "Execute".<br />
<br />
11. If you now navigate to http://localhost/cgi/mapserv.exe you should see the message:<br />
<br />
No query information to decode. QUERY_STRING is set, but empty<br />
<br />
which means you map server is up and running.<br />
<br />
12. To try out a demo, I created C:\MapServer\apps\Sample directories and then added the example1-1.map file from "<a href="http://maptools.org/dl/ms4w/mapserv_demo_ms4w.zip">MapServer Itasca Demo Application</a>". I also added a Data directory inside sample and added states_ugl.dbf, states_ugl.shp and states_ugl.shx into it. The paths in example1-1.map file needed to be updated to point to the right locations and then you can browse to it using&nbsp;<br />
http://localhost/cgi/mapserv.exe?map=C:/MapServer/apps/sample/example1-1.map&amp;layer=states&amp;mode=map<br />
<br />
Hopefully these instructions may help somebody out. There maybe security issues with this setup so its up to you to figure it out and fix them.</p>
<br /><a href='https://www.esdm.co.uk/getting-mapserver-to-work-on-iis75-server-2008'></a>&nbsp;&nbsp;<a href='https://www.esdm.co.uk/getting-mapserver-to-work-on-iis75-server-2008'>...</a>]]></description>
      <link>https://www.esdm.co.uk/getting-mapserver-to-work-on-iis75-server-2008</link>
      <author>()</author>
      <comments>https://www.esdm.co.uk/getting-mapserver-to-work-on-iis75-server-2008</comments>
      <guid isPermaLink="true">https://www.esdm.co.uk/getting-mapserver-to-work-on-iis75-server-2008</guid>
      <pubDate>Sat, 12 Nov 2011 10:18:00 GMT</pubDate>
    </item>
  </channel>
</rss>