MapServer Performance Tips

Fawcett, David David.Fawcett at STATE.MN.US
Tue Aug 7 15:16:20 EDT 2007


Like Steve says, if the performance is bad when fully zoomed out,
tileindexes won't help at all.  

If at full zoom-out, the smaller features are not recognizable or
relevant (e.g. drawing 6 million points on a 100x100 image), think about
using scale dependency to show a more generalized data layer(s) when
zoomed out, and your original data when zoomed in beyond a certain
scale.  

Of course, pre-generating these data layers (as opposed to
filtering/expression your original data) will lead to the performance
gain.

You would use MINSCALE and MAXSCALE in the LAYER.

David.

-----Original Message-----
From: UMN MapServer Users List [mailto:MAPSERVER-USERS at LISTS.UMN.EDU] On
Behalf Of Stephen Woodbridge
Sent: Tuesday, August 07, 2007 1:39 PM
To: MAPSERVER-USERS at LISTS.UMN.EDU
Subject: Re: [UMN_MAPSERVER-USERS] MapServer Performance Tips


Timothy,

Splitting the data into five layers would definitely help, but first try

remove the CLASS EXPRESSION (...) and
replace it with a LAYER FILTER (...)

That should be a little faster. Also if you are always displaying all 
the data, then there is not much you can do to make it faster except to 
split the data into separate layers. Tileindexes improve performance 
when you zoom in. also organizing you data spatially will help a lot 
when you are zoomed in. you can use shp2tile to split the data up into 
small spatially organized areas. But again nothing will help when you 
are zoomed out other them faster CPUs and more RAM. Put all you files 
into a RAM disk.

-Steve


Timothy J Nolte wrote:
> On Tue, 7 Aug 2007 11:33:10 -0600, Gregor Mosheh <gregor at HOSTGIS.COM> 
> wrote:
> 
>> Did you shptree all of the shapefiles, including the tileindex? That 
>> can help a lot. There's also "sortshp" which physically sorts the 
>> file so that seeks aren't as random. (I should add that to the page.)
> 
> I have run shptree and all the shapefiles and the tileindex. I saw 
> sortshp but I might need to visit that and see about how I can perhaps

> sort the shapefiles. Would that be usable on the tileindex or just the

> individual shapes.
> 
>> Beyond that, it's hard to give any specific advice without any 
>> specific details. Are you experiencing a problem with speed, or just 
>> looking to make fast even faster? Is a specific layer being 
>> problematic? Could you perhaps make the expressions more efficient, 
>> maybe merge some layers together using expressions? (you had said 
>> that you broke it into layers by expression, thought I'd ask)
> 
> I don't think the current performance is even close to fast. I'm 
> trying to make what seems to be slow at least acceptable. The biggest 
> performance hit seems to come from the tileindex'd shapefile layer I 
> was talking about. Here's the layer setup that I have.
> 
>   # ==============================================
>   # Layer: Propagations
>   # ==============================================
>   LAYER
>     GROUP "Propagations"
>     NAME "-98db to -104db"
>     STATUS DEFAULT
>     TILEINDEX "propagations/tileindex"
>     TILEITEM "location"
>     TYPE POLYGON
>     # --------------------------------------------------
>     # Class: -98db to -104db
>     # --------------------------------------------------
>     CLASS
>       NAME "-98db to -104db"
>       EXPRESSION ([LOWER] >= -104 AND [UPPER] <= -98)
>       MINSCALE 0
>       MAXSCALE 1200000
>       STYLE
>         COLOR 255 128 0
>         OUTLINECOLOR 255 128 0
>       END
>     END
>   END
> 
>   LAYER
>     GROUP "Propagations"
>     NAME "-94db to -98db"
>     STATUS DEFAULT
>     TILEINDEX "propagations/tileindex"
>     TILEITEM "location"
>     TYPE POLYGON
>     # --------------------------------------------------
>     # Class: -94db to -98db
>     # --------------------------------------------------
>     CLASS
>       NAME "-94db to -98db"
>       EXPRESSION ([LOWER] >= -98 AND [UPPER] <= -94)
>       MINSCALE 0
>       MAXSCALE 1200000
>       STYLE
>         COLOR 0 0 255
>         OUTLINECOLOR 0 0 255
>       END
>     END
>   END
> 
>   LAYER
>     GROUP "Propagations"
>     NAME "-89db to -94db"
>     STATUS DEFAULT
>     TILEINDEX "propagations/tileindex"
>     TILEITEM "location"
>     TYPE POLYGON
>     # --------------------------------------------------
>     # Class: -89db to -94db
>     # --------------------------------------------------
>     CLASS
>       NAME "-89db to -94db"
>       EXPRESSION ([LOWER] >= -94 AND [UPPER] <= -89)
>       MINSCALE 0
>       MAXSCALE 1200000
>       STYLE
>         COLOR 255 0 0
>         OUTLINECOLOR 255 0 0
>       END
>     END
>   END
> 
>   LAYER
>     GROUP "Propagations"
>     NAME "-84db to -89db"
>     STATUS DEFAULT
>     TILEINDEX "propagations/tileindex"
>     TILEITEM "location"
>     TYPE POLYGON
>     # --------------------------------------------------
>     # Class: -84db to -89db
>     # --------------------------------------------------
>     CLASS
>       NAME "-84db to -89db"
>       EXPRESSION ([LOWER] >= -89 AND [UPPER] <= -84)
>       MINSCALE 0
>       MAXSCALE 1200000
>       STYLE
>         COLOR 255 255 0
>         OUTLINECOLOR 255 255 0
>       END
>     END
>   END
> 
>   LAYER
>     GROUP "Propagations"
>     NAME "-84db to 0db"
>     STATUS DEFAULT
>     TILEINDEX "propagations/tileindex"
>     TILEITEM "location"
>     TYPE POLYGON
>     # --------------------------------------------------
>     # Class: -84db to 0db
>     # --------------------------------------------------
>     CLASS
>       NAME "-84db to 0db"
>       EXPRESSION ([LOWER] >= -84 AND [UPPER] <= 0)
>       MINSCALE 0
>       MAXSCALE 1200000
>       STYLE
>         COLOR 128 255 0
>         OUTLINECOLOR 128 255 0
>       END
>     END
>   END
> 
> 
> Let me know if anything looks bad. Perhaps you can give me a 
> suggestion on how I might need to sortshp to give me the best 
> performance with this.



More information about the mapserver-users mailing list