how to speed up MapServer performance?

Ed McNierney ed at TOPOZONE.COM
Tue May 16 07:02:31 PDT 2006


J.F. -
 
I was with you all the way until you mentioned operating systems!
There's no reason to think that Zhonghai's operating system is at all
related to his problem, and it's dangerous to propagate operating system
myths.  I run lots of MapServer machines on Windows and Linux (mostly
Linux)  and I cannot find any evidence (after 5 years or so) that
there's any difference worth thinking about on identical hardware.
 
If you can show me a MapServer test with identical configurations on
identical hardware showing statistically significant differences in
performance when running Window vs. Linux, I'd love to see the details.
 
    - Ed
Ed McNierney
President and Chief Mapmaker
TopoZone.com / Maps a la carte, Inc.
73 Princeton Street, Suite 305
North Chelmsford, MA  01863
Phone: +1 (978) 251-4242
Fax: +1 (978) 251-1396
ed at topozone.com 


________________________________

From: UMN MapServer Users List [mailto:MAPSERVER-USERS at LISTS.UMN.EDU] On
Behalf Of Doyon, Jean-Francois
Sent: Tuesday, May 16, 2006 9:53 AM
To: MAPSERVER-USERS at LISTS.UMN.EDU
Subject: Re: [UMN_MAPSERVER-USERS] how to speed up MapServer
performance?


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> 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/a93cb9d1/attachment.htm>


More information about the MapServer-users mailing list