how to speed up MapServer performance?

Doyon, Jean-Francois Jean-Francois.Doyon at CCRS.NRCAN.GC.CA
Tue May 16 09:53:04 EDT 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.html


More information about the mapserver-users mailing list