Tamino XML Server Version 9.7
 —  Performance Guide  —

Hardware Configuration

The overall Tamino performance is influenced by a number of components, such as CPU, virtual memory, physical memory (RAM), physical disk space, and network communications. Each of these may lead to performance bottlenecks. Increasing hardware performance with more CPU power and better I/O throughput should of course also improve response time. But before spending the money, you should find out where time consumption is highest: in the Tamino server, in the web server, on the network, or in the application.

In general, upgrading your hardware to improve performance is a step that you should only consider when you have achieved all of the possible performance gains using the methods described in the previous sections of this document.


Where to look?

On Windows, use the Performance Monitor, which is part of the Administrative Tools. Access it by choosing Administrative Tools > Performance from the Windows Control Panel. You can retrieve information on CPU usage, disk I/O, and memory usage.

Before you can use the Performance Monitor for I/O measurements, enable the IO counting by issuing the command diskperf at the command prompt. Note that this enables I/O monitoring after the next restart of your machine. DISKPERF [-Y[E] | -N] [\\computername] -Y[E] enables the disk performance counters when the system is restarted. E enables the disk performance counters used for measuring performance of the physical drives in a striped disk set when the system is restarted. Specify -Y without the E to restore the normal disk performance counters. -N disables the disk performance counters when the system is restarted. \\computername is the name of the computer you want to see or set disk performance counter use.

Top of page

CPU

It is quite simple: If the CPU's workload is 100 %, you cannot get more speed out of your system. Additional CPUs can increase the throughput, unless the system is I/O bound. For small databases, almost everything can be kept in memory, according to the value of the buffer pool parameter of the database. In this case, an additional CPU is recommended if multiple users are working at the same time.

On a Windows platform, you should watch for the following on your Performance Monitor:

If Tamino runs on multi-CPU machines (Symmetric Multi-Processing, SMP), automatic load balancing is carried out between CPUs. There is no load balancing between different machines, though.

Top of page

Virtual Memory

Increasing the swapfile makes sense if Tamino fails with memory exception. Keep in mind that this may lead to swapping.

Top of page

Disk I/O

Usually a disk controller can handle a specific amount of I/O operations or memory that can be transferred to or from the disk. If your system is I/O bound, it may help to add additional physical disks to the system in order to get a higher degree of parallelism. In order to do so, you have to distribute the Tamino data spaces over multiple disks. If you use multiple physical disks for your database and your system is I/O bound, it may be possible to increase the throughput by using multiple disk controllers. Some disk controllers support multiple channels, too. For recovery reasons, the data and index containers must be on a different physical disk than the log and backup data spaces. Additionally, it is recommended to put the index, the data container, and the journal space on separate disks. Using RAID (Redundant Array of Inexpensive [or Independent] Disks) can improve the overall I/O performance. A general recommendation in terms of high availability and performance is to have the log container on a RAID 1 (mirrored) disk and the data and index container on a RAID 5 disk.

On a Windows platform, the things to watch for on the Performance Monitor are:

Top of page

Tuning TCP/IP

If you have to serve a high load on your machine, you may run out of sockets due to the TCP_WAIT_TIMEOUT. This applies to the TCP_WAIT_TIMEOUT and the number of available sockets.

On Solaris, the command to show the time wait parameter is:

$ /usr/sbin/ndd /dev/tcp tcp_time_wait_interval

The command to set the parameter is:

$sudo /usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 30000

Top of page

Tamino in a Multi-User Environment

The requirements for a multi-user environment are:

  1. The server hardware should be powerful as possible: large RAM, many fast CPUs, powerful I/O system, etc. The more users you have, the more CPU power is necessary. Try to have fewer but faster CPUs to reduce locking conflicts.

  2. Each single command (query or insert) should run as fast as possible. For information, see the sectionVery Fast Queries. Also, make use of cursors to keep the result set that is transferred from the server to an application small. However, keep locks and cursor only as long as you need them, so that they do not constrain the requests other users have.

  3. The application process should not produce data of its own, e.g. protocol files, or at least as little data as possible. If data is produced, each application process should write them into separate data areas, for example directories or disks.

Top of page