MapServer Performance Tips
Fawcett, David
David.Fawcett at STATE.MN.US
Tue Aug 7 12:16:20 PDT 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