<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="GENERATOR" content="MSHTML 8.00.6001.19154">
</head>
<body>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011">Hi,</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011">Absolutely do
</span></font><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011">not increase RAM, CPU or anything on that line.&nbsp;Instead, install all your data on a small slow laptop and make the system fast on that.</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"></span></font><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011">- Analyze your situaltion and think what you want to give for
 your customers</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"></span></font><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011">- Optimise the data for that purpose</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011">- Final&nbsp;step is to acquire as much&nbsp;computing power as needed</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011">Let's assume that you are going to publish your data through WMS.&nbsp; You said you have 4 000 000 features and it takes a long time to load them. I believe
 it is slow&nbsp;but fortunately you do not need to do it.&nbsp;The computer screen&nbsp;with&nbsp;1152x864 resolution&nbsp;has only&nbsp;955 328 pixels so your full screen view is trying to illustrate&nbsp;on average&nbsp;four features per pixel. If someone orders you to draw a map by hand with
 a pen and paper in that way you would say it is lunatic and that's correct. The key to draw faster is to draw less.</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011">This link shows a course example of speeding vector renderign by making Mapserver to draw&nbsp;less.</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><a href="http://www.paikkatietoikkuna.fi/web/en/map-window?zoomLevel=6&amp;coord=291620_6798042&amp;mapLayers=base_35&#43;100&#43;!default!,34&#43;100&#43;&amp;showMarker=false&amp;forceCache=true">http://www.paikkatietoikkuna.fi/web/en/map-window?zoomLevel=6&amp;coord=291620_6798042&amp;mapLayers=base_35&#43;100&#43;!default!,34&#43;100&#43;&amp;showMarker=false&amp;forceCache=true</a></span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011">There is a scale dependent group layer &quot;Lan Parcel Register 2010&quot;.&nbsp; The group consists or the original data layer and two reduced sets.&nbsp;Original data is&nbsp;shown&nbsp;at
 scale 1:100000 or bigger (big scale - small number in scale denominator) and it comes from a shapefile with 1.2 million polygons.&nbsp; In the application the switch to original data happens between named zoom levels &quot;Town&quot; and &quot;Part of town&quot;. When zoomed out the
 data comes from teh first reduced data set (10% sample) and finally from the second reduced data set (1% sample).
</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011">In this case I made the ten percent sample and one percent sample by selecting parcel IDs ending to one zero or two zeros, respectively.&nbsp;This way I can
 broadcast&nbsp;the selected parcels&nbsp;uniformly on the whole map area for giving a hint about the places having parcels.&nbsp; There is also a maximum limit for the number of parcels which are rendered (MAXFEATURES 10000). I considered that ten thousand parcels per screen
 is always enough.</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011">For other data some other basis could be better for reducing the number of features to render.&nbsp; For example it is usually enough to render at maximum a
 few hundred&nbsp;biggest lakes an a map and that can be done by sorting data to descending order according to area and then applying MAXFEATURES.</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011">Another good way for making&nbsp;Mapserver to draw less and thus draw faster is to generalize the geometries to have&nbsp;less vertises.
 If you have a hundred pixels on a screen for showing a polygon then it will look just the same for the user with 20 or 20 000 vertises.</span></span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011"></span></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011">The mapfile used in the linked example is attached. It is a little bit modified and does not necesarily work straight ahead
 but it should show the idea.</span></span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011"></span></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011">Here is my ordered list about making vector rendering fast. Other people can suggest re-ordering or adding new items.&nbsp;
 I suppose there is something to think about when using classified layers and selecting classes with classitems and expressions.</span></span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011"></span></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011">1. Check the spatial indexes for&nbsp;shapefiles and in the database</span></span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011">2. Check other database indexes. In 98 percent of cases when user says that database is slow it just does not have&nbsp;a proper
 index for the query.</span></span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011">3. Draw less - less features, less vertices</span></span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011">==============================</span></span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011">4. Draw simple - multiple styles and advanced labels have some cost</span></span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011">5. Re-project data beforehand instead of on-the-fly</span></span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011"></span></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011"></span></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011">-Jukka Rahkonen-</span></span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"><span class="737214108-12122011"></span></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"></span></font>&nbsp;</div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span class="737214108-12122011"></span></font>&nbsp;</div>
<font color="#0000ff" size="2" face="Arial"></font><font color="#0000ff" size="2" face="Arial"></font><font color="#0000ff" size="2" face="Arial"></font><br>
<blockquote style="BORDER-LEFT: #0000ff 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px" dir="ltr">
<div dir="ltr" lang="fi" class="OutlookMessageHeader" align="left">
<hr tabindex="-1">
<font size="2" face="Tahoma">Peter Maes<span class="737214108-12122011"><font color="#0000ff" face="Arial">&nbsp; wrote:</font></span></font><br>
</div>
<div></div>
Hi Steve,
<div><font color="#0000ff" size="2" face="Arial"></font><font color="#0000ff" size="2" face="Arial"></font><br>
</div>
<div>Thanks for your reply. However, most of my datasources are vector data. I've created a spatial index on the shapefiles, but with 4 000 000 features it still takes a long time to load everything.</div>
<div><br>
</div>
<div>Should I increase ram, or cpu? or Both? the machines have 8 GB ram atm. I'm not sure what mapserver needs in heavy configurations.<br>
<br>
Besides the page on <a href="http://mapserver.org">mapserver.org</a> i dont find much on improving performance for load intensive systems.</div>
<div><br>
<br>
<div class="gmail_quote">2011/12/9 Lime, Steve D (DNR) <span dir="ltr">&lt;<a href="mailto:Steve.Lime@state.mn.us">Steve.Lime@state.mn.us</a>&gt;</span><br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div lang="EN-US" vlink="purple" link="blue">
<div>
<p class="MsoNormal"><span style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #1f497d; FONT-SIZE: 11pt">Apache should be plenty quick. Start with using fastcgi and optimizing your data: e.g. create spatial indexes, use optimized raster formats and then optimizing
 your configuration (scale dependent layers w/things like reduced resolution layers where possible). -Steve<u></u><u></u></span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #1f497d; FONT-SIZE: 11pt"><u></u><u></u></span>&nbsp;</p>
<div style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<p class="MsoNormal"><b><span style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt">From:</span></b><span style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt">
<a href="mailto:mapserver-users-bounces@lists.osgeo.org" target="_blank">mapserver-users-bounces@lists.osgeo.org</a> [mailto:<a href="mailto:mapserver-users-bounces@lists.osgeo.org" target="_blank">mapserver-users-bounces@lists.osgeo.org</a>]
<b>On Behalf Of </b>Peter Maes<br>
<b>Sent:</b> Friday, December 09, 2011 6:31 AM<br>
<b>To:</b> <a href="mailto:mapserver-users@lists.osgeo.org" target="_blank">mapserver-users@lists.osgeo.org</a><br>
<b>Subject:</b> [mapserver-users] Mapserver performance on apache - heavy load systems<u></u><u></u></span></p>
</div>
<div>
<div></div>
<div class="h5">
<p class="MsoNormal"><u></u><u></u>&nbsp;</p>
<p class="MsoNormal"><span><span style="FONT-FAMILY: 'Arial','sans-serif'; BACKGROUND: white; FONT-SIZE: 10pt">Hi all,</span></span><u></u><u></u></p>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"><u></u><u></u></span>&nbsp;</p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">We are planning to launch a major mapserver production site where i'm required to launch many mapserver instances in some form of cluster.<u></u><u></u></span></p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"><u></u><u></u></span>&nbsp;</p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">So I basically have some questions related to this:<u></u><u></u></span></p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"><u></u><u></u></span>&nbsp;</p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">- Does anyone have good tips on performance for running mapserver on apache?&nbsp;<u></u><u></u></span></p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">- Any specific build parameters I should pay attention to?&nbsp;<u></u><u></u></span></p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">- Does it run as a native apache module, or is it required to work through cgi? &nbsp;In which case: will i get better performance by using fastcgi? (we
 are not using databases but shapefiles).&nbsp;<u></u><u></u></span></p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">- Should I consider lighttpd or nginx instead?<u></u><u></u></span></p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"><u></u><u></u></span>&nbsp;</p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">- Any other tips related to clustering mapserver instances? :).<u></u><u></u></span></p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"><u></u><u></u></span>&nbsp;</p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Note that we are using live data, so we cannot cache them, except for a minute or so.<u></u><u></u></span></p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"><u></u><u></u></span>&nbsp;</p>
</div>
<div>
<p style="BACKGROUND: white" class="MsoNormal"><span style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Thanks for your time.<u></u><u></u></span></p>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
</body>
</html>