Performance of MapGuide is based on:
As of December 2003, our server is a quad 2.8 GHz Xeon with 2 GBs of RAM. Vector map data is stored on a small internal SCSI array. Imagery is stored on a 4TB external SCSI RAID 5 array.
While the MapGuide server could easily handle serving HTML pages in addition to MapGuide requests, we have chosen to have a separate machine to server all HTML and ColdFusion database queries.
Part of the reason for the good performance on our site is the fact that we donít turn on large data layers at very high scales, minimizing the amount of data that is sent to the client. We also choose not to display very many layers by default. We let the users pick what they want to see. For example, the parcel base that we display has over 330,000 seamless parcels. We donít allow users to view that information until they zoom in to a scale of 1:25,000. This limits the amount of data that is sent to the client. Besides, turning on parcels at a higher scale would only confuse the user because the detail of the individual parcels starts to blend together. Even at 1:25,000, areas with dense parcels may take longer than we would like to transfer to the user.
We also generalize some data layers. For some data layers, we actually have multiple copies available for display. At a very high scale, we display a generalized copy of the SDF and at the lower scales we display the native data in the SDF. This also helps performance.
Another performance tuning trick is not to include too much data in the map tip (the little yellow box). The more data that you display in the map tip, the more data is sent to the client which reduces performance. If we have data layers that have additional data attached to the features, we usually add a link to the features and query the data using ColdFusion.
If you are thinking about adding imagery to your site, be sure to do some re-sampling with the Raster Image Workshop. We use 7 different resolutions (from 64 foot to 1 foot) to help get the best performance with the images.
We also use Diskeeper on the server to keep fragmented files to a minimum.
Data we display is located directly on the MapGuide server. Some installations have the MapGuide server access SDFs across a network which slows performance.
As for the data we display, 95% of it comes from ARC/INFO coverages, which we sometimes convert to ERSI shape files (depending on what we need to do with it, themes, zoom gotos etc). The other 5% comes from AutoCAD drawings or directly from an ODBC data source with LAT/LON coordinates in it.
If you are going to use any layer themes or classification, be sure to use indexes with the theme's ODBC data sources. Indexes greatly enhance the performance with themes or classifying.
In summary, how you prepare and display the data you are delivering to the clients has a big impact on the overall performance. If you are not displaying raster imagery, then MapGuide is not particularly demanding on the hardware and you won't need anything special. On the other hand, from our experience, if you have raster imagery, then the MapGuide server can use all the horsepower you can afford to throw at it.