how to speed up MapServer performance?
Doyon, Jean-Francois
Jean-Francois.Doyon at CCRS.NRCAN.GC.CA
Tue May 16 06:53:04 PDT 2006
Zhonghai,
You have the one big data set in there, which is the roads. If you're
trying to display ALL the data in the one map, all at once, then 3 secs
isn't all that bad, considering you have 60 megs of data to work through.
You may want to consider generalizing the data for viewing at different
scales.
The fileformat itself will create a tiny bit of an impact, since it all goes
through OGR, for "raw" speed, use shapefiles , indexed with .qix ...
The MapServer CGI is about the fastest mapping engine you'll find out there,
open source or commercial!
Also, what's the hardware like? Notably disk IO?
Also, I'm sorry, but I must ask :) Does it have to be windows? On Windows,
processes are quite expensive, which includes CGI ... this isn't the case on
Linux, where processes are cheap, and threads are expensive. Also, Linux
tends to cache things better in my experience.
If you're using WMS, I think there's a FastCGI interface you could try
using, though I'm not sure how mature it is.
J.F.
_____
From: UMN MapServer Users List [mailto:MAPSERVER-USERS at lists.umn.edu] On
Behalf Of Zhonghai Wang
Sent: May 16, 2006 4:09 AM
To: MAPSERVER-USERS at lists.umn.edu
Subject: Re: [UMN_MAPSERVER-USERS] how to speed up MapServer performance?
Hi my friends,
I am really very thankful for all your information, I am a newbie in
MapServer.
here is the data amount that I am using for the application:
(all the source data is MapInfo format, and what I calculated is the ".MAP"
file)
1. boundaries -- 388 KB
2. forests -- 9163 KB
3. lakes -- 26 KB
4. city parks -- 25 KB
5. settlement -- 2279 KB
6. rivers -- 1653 KB
7. road networks -- 56370 KB
8. railway -- 1343 KB
9. train station -- 27 KB
10 bus station -- 2 KB
11. tourist centers -- 9 KB
12. theaters -- 6 KB
13. shopping center -- 7 KB
14. city location -- 9 KB
*****
and here is how I am symbolizing the layers, mapfile for all these layers:
***
LAYER
NAME "Country"
STATUS DEFAULT
TYPE POLYGON
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_COUNTRY.TAB"
TRANSPARENCY 40
DEBUG ON
PROJECTION
"init=epsg:4326"
END
CLASS
#NAME "Boundaries"
STYLE
SYMBOL 0
COLOR 155 155 155
OUTLINECOLOR 155 155 155
BACKGROUNDCOLOR 255 255 255
END
END
END
LAYER
NAME "lakes"
STATUS DEFAULT
TYPE POLYGON
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_LAKE.TAB"
DEBUG ON
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "Lake"
STYLE
COLOR 102 153 255
END
END
END
LAYER
NAME "woodland"
STATUS DEFAULT
TYPE POLYGON
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_WOODLAND_G.TAB"
DEBUG ON
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "woodland"
STYLE
COLOR 0 185 92
END
END
END
LAYER
NAME "woodland"
STATUS DEFAULT
TYPE POLYGON
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_WOODLAND.TAB"
MAXSCALE 100000
#LABELITEM "Street_Label"
#SYMBOLSCALE 50000
#LABELMAXSCALE 80000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "woodland"
STYLE
COLOR 0 185 92
END
END
END
LAYER
NAME "city parks"
STATUS DEFAULT
TYPE POLYGON
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_CITY_PARK.TAB"
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "Park"
STYLE
SYMBOL 0
COLOR 233 254 205
END
END
END
LAYER
NAME "settlement"
STATUS DEFAULT
TYPE POLYGON
#CLASSITEM "Area"
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_BUILT_UP_AREA.TAB"
MAXSCALE 800000
#LABELITEM "Street_Label"
#SYMBOLSCALE 80000
#LABELMAXSCALE 120000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "settlement"
#EXPRESSION ([Area]>20000)
STYLE
COLOR 207 207 158
END
END
END
LAYER
NAME "rivers"
STATUS DEFAULT
TYPE POLYGON
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_WATERWYS.TAB"
MAXSCALE 800000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "river"
STYLE
COLOR 102 153 255
END
END
END
LAYER
NAME "street50"
STATUS DEFAULT
TYPE LINE
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_S50.TAB"
MAXSCALE 40000
LABELITEM "Street_Label"
SYMBOLSCALE 5000
LABELMAXSCALE 20000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "Street 50"
LABEL
# must be in your FONTSET
TYPE TRUETYPE
FONT "vera"
SIZE 8
MINSIZE 2
MAXSIZE 8
ANGLE AUTO
POSITION CC
OFFSET 0 0
COLOR 0 0 255
MINFEATURESIZE AUTO
BUFFER 0
END
STYLE
SYMBOL "point"
SIZE 8
MINSIZE 1
MAXSIZE 8
COLOR 255 255 255
END
END
END
LAYER
NAME "oneway"
STATUS DEFAULT
TYPE LINE
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_ONEWAY.TAB"
MAXSCALE 40000
SYMBOLSCALE 5000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "Oneway"
STYLE
SYMBOL "oneway"
SIZE 8
MINSIZE 1
MAXSIZE 8
COLOR 255 51 0
END
END
END
LAYER
NAME "street40"
STATUS DEFAULT
TYPE LINE
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_S40.TAB"
MAXSCALE 100000
LABELITEM "Street_Label"
SYMBOLSCALE 15000
LABELMAXSCALE 30000
LABELCACHE ON
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "Street 40"
LABEL
# must be in the FONTSET
TYPE TRUETYPE
FONT "vera"
SIZE 9
MINSIZE 2
MAXSIZE 9
ANGLE AUTO
POSITION CC
OFFSET 0 0
COLOR 0 0 255
MINFEATURESIZE 20
BUFFER 0
END
STYLE
SYMBOL "point"
SIZE 10
MINSIZE 3
MAXSIZE 10
COLOR 160 160 160
ANTIALIAS TRUE
END
STYLE
SYMBOL "point"
SIZE 8
MINSIZE 1
MAXSIZE 8
COLOR 255 255 255
ANTIALIAS TRUE
END
END
END
LAYER
NAME "street30"
STATUS DEFAULT
TYPE LINE
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_S30.TAB"
MAXSCALE 250000
LABELITEM "Street_Label"
SYMBOLSCALE 40000
LABELMAXSCALE 120000
LABELCACHE ON
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "Street 30"
LABEL
# must be in your FONTSET
TYPE TRUETYPE
FONT "vera"
SIZE 9
MINSIZE 2
MAXSIZE 9
ANGLE AUTO
POSITION CC
OFFSET 0 0
COLOR 0 0 255
MINFEATURESIZE 30
#MINDISTANCE 10
BUFFER 0
END
STYLE
SYMBOL "point"
SIZE 10
MINSIZE 3
MAXSIZE 10
COLOR 160 160 160
END
STYLE
SYMBOL "point"
SIZE 8
MINSIZE 1
MAXSIZE 8
COLOR 255 204 51
END
END
END
LAYER
NAME "railway"
STATUS DEFAULT
TYPE LINE
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_RAILRDS.TAB"
MAXSCALE 8000
SYMBOLSCALE 4000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "railway"
SYMBOL 'point'
COLOR 0 0 0
SIZE 5
MINSIZE 1
MAXSIZE 5
OVERLAYSYMBOL "dashedline"
OVERLAYCOLOR 255 255 255
OVERLAYSIZE 3
OVERLAYMINSIZE 0
OVERLAYMAXSIZE 3
END
END
LAYER
NAME "street20"
STATUS DEFAULT
TYPE LINE
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_S20.TAB"
MAXSCALE 900000
LABELITEM "Street_Label"
SYMBOLSCALE 100000
LABELMAXSCALE 430000
LABELCACHE ON
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "Street 20"
LABEL
# must be in your FONTSET
TYPE TRUETYPE
FONT "vera"
SIZE 9
MINSIZE 1
MAXSIZE 9
ANGLE AUTO
POSITION CC
OFFSET 0 0
COLOR 0 0 255
MINFEATURESIZE 50
#MINDISTANCE 10
BUFFER 0
END
STYLE
SYMBOL "point"
SIZE 10
MINSIZE 3
MAXSIZE 10
COLOR 160 160 160
END
STYLE
SYMBOL "point"
SIZE 8
MINSIZE 1
MAXSIZE 8
COLOR 247 193 157
END
END
END
LAYER
NAME "street10"
STATUS DEFAULT
TYPE LINE
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_S10_O.TAB"
MAXSCALE 1700000
LABELITEM "Street_Label"
SYMBOLSCALE 400000
LABELMAXSCALE 500000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "Street 10"
LABEL
# must be in your FONTSET
TYPE TRUETYPE
FONT "vera"
SIZE 8
MINSIZE 1
MAXSIZE 8
ANGLE AUTO
POSITION CC
OFFSET 0 0
COLOR 255 0 0
BACKGROUNDCOLOR 153 204 153
MINFEATURESIZE AUTO
MINDISTANCE 200
BUFFER 1
END
STYLE
SYMBOL "point"
SIZE 10
MINSIZE 3
MAXSIZE 10
COLOR 255 0 0
END
STYLE
SYMBOL "point"
SIZE 6
MINSIZE 1
MAXSIZE 6
COLOR 255 255 0
END
END
END
LAYER
NAME "train station"
STATUS OFF
TYPE POINT
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_TRAIN_STATION.TAB"
MAXSCALE 10000
#LABELITEM "Label"
SYMBOLSCALE 1000
LABELMAXSCALE 5000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "Train station"
LABEL
TYPE TRUETYPE
FONT "vera"
SIZE 8
MINSIZE 2
MAXSIZE 8
ANGLE AUTO
POSITION UC
OFFSET 0 0
END
STYLE
SYMBOL "triangle"
COLOR 153 0 0
SIZE 8
MINSIZE 3
MAXSIZE 8
END
END
END
LAYER
NAME "bus station"
STATUS DEFAULT
TYPE POINT
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_BUS_STATION.TAB"
MAXSCALE 10000
LABELITEM "Label"
SYMBOLSCALE 1000
LABELMAXSCALE 5000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "bus station"
LABEL
TYPE TRUETYPE
FONT "vera"
SIZE 8
MINSIZE 2
MAXSIZE 8
ANGLE AUTO
POSITION UC
OFFSET 0 0
END
STYLE
SYMBOL "triangle"
COLOR 0 153 0
SIZE 8
MINSIZE 3
MAXSIZE 8
END
END
END
LAYER
NAME "LOCATIONS0"
STATUS DEFAULT
TYPE POINT
CONNECTIONTYPE OGR
CONNECTION "CA_AND_LOCATIONS0.TAB"
MAXSCALE 1000000
LABELITEM "Name"
SYMBOLSCALE 200000
LABELMAXSCALE 500000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "LOCATIONS0"
LABEL
TYPE TRUETYPE
FONT "vera"
SIZE 12
MINSIZE 2
MAXSIZE 12
ANGLE AUTO
POSITION AUTO
OFFSET 0 0
COLOR 0 0 255
END
STYLE
SYMBOL "star"
COLOR 255 0 0
SIZE 18
MINSIZE 8
MAXSIZE 18
END
END
END
LAYER
NAME "LOCATIONS1"
STATUS DEFAULT
TYPE POINT
CONNECTIONTYPE OGR
CONNECTION "CA_AND_LOCATIONS1.TAB"
MAXSCALE 800000
LABELITEM "Name"
SYMBOLSCALE 200000
LABELMAXSCALE 500000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "LOCATIONS1"
LABEL
TYPE TRUETYPE
FONT "vera"
SIZE 12
MINSIZE 2
MAXSIZE 12
ANGLE AUTO
POSITION AUTO
OFFSET 0 0
COLOR 0 0 255
END
STYLE
SYMBOL "point"
COLOR 153 153 0
SIZE 8
MINSIZE 3
MAXSIZE 8
END
END
END
LAYER
NAME "LOCATIONS2"
STATUS DEFAULT
TYPE POINT
CONNECTIONTYPE OGR
CONNECTION "CA_AND_LOCATIONS2.TAB"
MAXSCALE 800000
LABELITEM "Name"
SYMBOLSCALE 200000
LABELMAXSCALE 500000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "LOCATIONS2"
LABEL
TYPE TRUETYPE
FONT "vera"
SIZE 10
MINSIZE 2
MAXSIZE 10
ANGLE AUTO
POSITION AUTO
OFFSET 0 0
COLOR 0 0 255
END
STYLE
SYMBOL "point"
COLOR 153 153 0
SIZE 6
MINSIZE 1
MAXSIZE 6
END
END
END
LAYER
NAME "LOCATIONS3"
STATUS DEFAULT
TYPE POINT
CONNECTIONTYPE OGR
CONNECTION "CA_AND_LOCATIONS3.TAB"
MAXSCALE 400000
LABELITEM "Name"
SYMBOLSCALE 200000
LABELMAXSCALE 200000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "LOCATIONS3"
LABEL
TYPE TRUETYPE
FONT "vera"
SIZE 10
MINSIZE 2
MAXSIZE 10
ANGLE AUTO
POSITION AUTO
OFFSET 0 0
COLOR 0 0 255
END
STYLE
SYMBOL "point"
COLOR 153 51 153
SIZE 6
MINSIZE 1
MAXSIZE 6
END
END
END
LAYER
NAME "Tourist Information"
STATUS OFF
TYPE POINT
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_TOURIST_INFORMATION.TAB"
MAXSCALE 10000
LABELITEM "Label"
SYMBOLSCALE 1000
LABELMAXSCALE 5000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "Tourist Information"
LABEL
TYPE TRUETYPE
FONT "vera"
SIZE 8
MINSIZE 2
MAXSIZE 8
ANGLE AUTO
POSITION UC
OFFSET 0 0
END
STYLE
SYMBOL "rectangle"
COLOR 255 51 0
SIZE 8
MINSIZE 3
MAXSIZE 8
END
END
END
LAYER
NAME "Shopping Center"
STATUS DEFAULT
TYPE POINT
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_SHOPPING_CENTER.TAB"
MAXSCALE 10000
LABELITEM "Label"
SYMBOLSCALE 1000
LABELMAXSCALE 5000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "shopping center"
LABEL
TYPE TRUETYPE
FONT "vera"
SIZE 10
MINSIZE 2
MAXSIZE 10
ANGLE AUTO
POSITION UC
OFFSET 0 0
END
STYLE
SYMBOL "special"
COLOR 255 51 0
SIZE 15
MINSIZE 6
MAXSIZE 15
END
END
END
LAYER
NAME "Theater"
STATUS DEFAULT
TYPE POINT
CONNECTIONTYPE OGR
CONNECTION "CA_NAV_THEATER.TAB"
MAXSCALE 10000
LABELITEM "Label"
SYMBOLSCALE 1000
LABELMAXSCALE 5000
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "Theater"
LABEL
TYPE TRUETYPE
FONT "vera"
SIZE 8
MINSIZE 2
MAXSIZE 8
ANGLE AUTO
POSITION UC
OFFSET 0 0
END
STYLE
SYMBOL "triangle"
COLOR 255 51 0
SIZE 8
MINSIZE 3
MAXSIZE 8
END
END
END
***********************
is it still possible to speed up my application?
****
the system parameters of my application:
Windows XP professional
MS4W 4.8.1
data source -- MapInfo data
*--only CGI parameters are used,since it is a pure static version with HTML,
is it possible to develop a pure static application based on MapServer, even
in conjunction with PHP/MapScript or Chameleon?
thanks for any clues.
zhonghai
16.05.2006
On 5/15/06, Steve Lime <Steve.Lime at dnr.state.mn.us
<mailto:Steve.Lime at dnr.state.mn.us> > wrote:
We really need more information about the nature of the data. I mean if
you've got
20 layers each with a million polygons and are trying to show all of them
then 3 seconds
might be really fast! Also, the way you are symbolizing features may impact
things.
In my experience neither 1 or 2 is worth considering...
Steve
Steve
>>> Zhonghai Wang < zhonghaiw at GMAIL.COM <mailto:zhonghaiw at GMAIL.COM> >
5/15/2006 9:15:49 AM >>>
Hi there,
for a special purpose I've developed an static version application based on
MapServer CGI, which means I just use pure HTML tages for the GUI, even
without JavaScript code snippets to validate forms.
I have about 20 map layers to display according to different map scale
(ussing the MAXSCALE, SYMBOLSCALE AND LABELMAXSCALE), there are no data
classifications within a layer object, the status of all layers are set as
default.
I've made a test on a standalone MapServer (XP system), every request takes
about 3 second. Obvioursly it's not fast enough for a web application, since
there may be many users requesting the server at the same time if the
application is published on the web.
Is MapServer really so slow? can anybody give me some ideas?should I modify
the mapfiles?
I am wondering whether the following solutions will work:
1. define every layer as a seperate mapfile, and combine them together by
request
2. turn off the non-displayed layers off on the fly
are these possible to speed up MapServer performance?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20060516/0d5e0d85/attachment.htm>
More information about the MapServer-users
mailing list