MapServer Performance Tips

Stephen Woodbridge woodbri at SWOODBRIDGE.COM
Tue Aug 7 14:38:51 EDT 2007


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