Optimizing Performance

For a given level of hardware speed and capacity, performance for a Manifold map server page depends upon Windows system settings (including IIS settings) as well as the configuration of the map server and the .map file it uses.

The map server uses Manifold to generate images served via the web page. The basic performance of the map server will be similar to that of Manifold during interactive usage and is subject to the same optimization tips suggested for Manifold in the Performance Tips topic. Make sure you follow all the performance tips listed in that topic.

Additional performance tips of special interest to IMS:

Map Server Performance Tips

IIS Configuration Performance Tips

System Configuration Performance Tips

About IIS Applications

An IIS application is any file that is executed within a defined set of directories in a web site. Creating an application designates a particular directory in the web site as the starting point directory (also referred to as the application root). All files and directories under that starting point directory are considered part of that application until another starting point directory is encountered. See the About Applications topic in the IIS documentation.

Different components from the same .map file can be used with different map server pages. However, all map server pages must be part of the same Application.

About Object Pooling

Manifold components support object pooling, which avoids the overhead of creating new objects in highly loaded servers. Normally, when a process needs an object it is created on the fly using the component's class factory to create a new object. When object pooling is turned on objects that are created are retained in a pre-built pool of objects. When an object is needed an object from the pool is activated if one is available. Pooled objects are returned to the pool when no longer needed.

Suppose 20 users at once hit the web site. The first time the server experiences this peak load enough objects to service the 20 users will be created. As load drops, objects will be returned to the object pool. Thereafter as long as the load stays under 20 simultaneous users no objects need to be created: they will simply be activated from the pool. If load grows again and peaks at 25 users, a few more additional objects will be created since the objects in the pool will not be enough to service demand. Thereafter, enough objects will be in the pool to serve up to 25 simultaneous requests.

Logging

Manifold IMS supports logging. To enable logging, edit the config.txt file for a page and add the following line:

logfile c:\mapserver.log

where "c:\mapserver.log" is the fully qualified path name to the desired log file. The log file will be written in CSV format using field names that are self-describing. ticks is the number of 1/1000ths of a second spent serving the image. It's safe to use the same log file for different instances of the map server.

Be careful when enabling logging. It is always easy to turn on a logging function and then forget it has been enabled until the log file grows to a huge size.

Security Tips

Microsoft IIS is a secure and highly reliable web server when correctly configured by the system administrator. Nonetheless, the many options made available within IIS to support the needs of experts can result in security problems if administered improperly. Because an IIS web server connected to Internet can be attacked by any Internet user from anywhere in the world, a few general IIS security measures should be applied to any web server connected to the Internet. These measures are not specific to Manifold IMS: they should be applied to every web server.

We recommend the following elementary steps:

Very important: Although Manifold IMS can work with Microsoft security tools for IIS such as URLScan and the IIS Lockdown Tool, it is possible that other IIS applications installed on your system cannot work with these tools or require modifications to the default settings of these tools. It is critically important to read the documentation for these security tools.

Minimizing Per-User Temp Files

When using a High isolation level in IIS, a new process will be created for each user accessing IMS. When this is done the multiple instances of IMS can not share data with each other and will be forced to create a separate set of temporary files for each user. This provides high isolation but results in a large number of temporary files in the system TEMP folder.

One way of reducing the number of temporary files created is to lower the isolation level applied to the web application that uses IMS so that multiple instances of IMS can operate in the same process. This does create a risk in that a crash of one instance of IMS will likely crash all other instances, but given that it is relatively difficult to crash IMS in the first place, this might be a good tradeoff in the case of well-debugged .asp files.

Troubleshooting

See the troubleshooting topic Problems with the Internet Map Server for detailed checklists of what might be wrong.

See Also

Map Server Overview

Creating a Web Site

IMS Queries

Publishing Multiple Pages

Problems with the Internet Map Server

Back to Manifold Home Page