![]() |
Technical Note 4500 Commence Server Optimization |
Abstract
The information in this document applies to:
This document discusses how to optimize a Commence server to perform best for growing workgroups so that it is able to support more clients. The types of resources that can be managed and their effect on the performance of the Commence server are discussed, in addition to other ideas on optimizing a workgroup's performance. The following concepts summarize the ideas discussed in this document:
·
Increase server resources to enable the server to run faster and more efficiently;·
Reduce the amount of data that is being exchanged to enable more clients to be supported;·
Reduce or remove any other tasks so the server is dedicated to workgroup synchronization.Overview of workgroup architecture
Commence Workgroup uses a distributed database architecture where each client in the workgroup uses a local copy of the database that is replicated with the server. The Commence server is responsible for responding to client requests. As the server receives database updates from each client it incorporates those changes into the server database. The server then responds to the client by sending them a synchronization packet with all pending database changes.
Each change sent from a client is stored by the server and then transmitted to every other client in the workgroup. The addition of more clients to the workgroup increases the amount of data to be exchanged in two ways: (1) there are more clients delivering changes to the server and (2) there are more clients that the server must transmit these changes to.
The Commence server optimizes this process by gathering all the changes from the workgroup clients into a single synchronization packet, but increasing the number of clients in a workgroup can have a negative impact on performance. The following ideas discuss methods that can be used to alleviate this impact and allow the Commence server to scale and support more clients.
Commence Server hardware requirements
For a workgroup of 10 to 20 clients or more, the minimum PC on which the Commence server software is installed should be a Pentium II/350 or higher running Microsoft NT 4.0 Server or later. This PC should contain at least 128MB of RAM and have a fast hard disk, preferably SCSI (due to its higher performance) for the largest workgroups.
Scalability
Increasing the number of clients in a workgroup requires that the server handle more transactions. The following factors affect the scalability and performance of the Commence server.
Size of changes being transmitted
The number of changes made to the database by each client and the size of those changes impacts the server's performance. On a given server PC, the Commence server can support a certain number of clients. If the number or size of changes delivered by these clients is doubled, the server performance must be more than doubled, since each of these changes must be transmitted back to every workgroup client.
Frequency of synchronization
How often clients sync with the server can be viewed in two ways: If clients synchronize less often, they do not impact the server with frequent requests. Their impact is that each request takes longer to process since there are more changes to be processed. Frequent requests for changes cost the server in the overhead of handling a transaction or request, but take less time to process since there is generally less data to process for each request.
For the minimum latency time in sharing changes, more frequent changes are desirable. To optimize performance and the "batching" or "grouping" of changes, less frequent syncs allow the server to work more efficiently.
Database size
The size of the database impacts the time to enroll a new client and also impacts the performance of determining what changes need to synchronize. In addition, larger databases require more information to be transmitted to each client during the initial enrollment or resynchronization of each client.
Server Resources
The resources used by the Commence server can be increased to improve its performance. The following server resources are discussed, along with their impact on the server's scalability.
CPU speed
A faster CPU will help to a point, but is not the limiting factor of most Commence workgroups. The server is I/O or disk-bound, in that the database is queried to retrieve changes that are then written to disk files, and then transmitted over the network to the client. A faster CPU improves the performance of searching and managing internal buffers, but does not return a linear improvement in server performance.
RAM size
The Commence server's RAM requirements are quite low due to the disk-bound nature of the server. Increasing the amount of RAM in the server PC allows the operating system to do more disk caching of the database files. If the whole database could be cached in RAM, performance will increase since the disk-bound portions will operate at RAM speeds.
Write-back caching reduces the amount of time to update the database. Changes to the database are stored in RAM for a short period, instead of utilizing a slower disk access to write to the database. Read-ahead caching improves performance by limiting the number of slow disk reads that need to be made to fulfill a client's request.
Disk speed
As discussed above, the Commence server is I/O and disk-bound, so having the fastest possible disk configuration will give the most performance gains, assuming the database cannot be fully cached. Fast SCSI or RAID disk configuration will give the fastest I/O performance increasing the server's ability to handle more clients.
Network speed
Commence server processes file requests on the local server PC and then transmits the finished synchronization packets over the network, email, or FTP connection. A faster connection will reduce the time of these transmissions, but is not the limiting factor of the server in handling more clients.
Database Optimizations
In addition to increasing the resources available to the Commence server, changes to the database definition can reduce the amount of data being synchronized, enabling the server to process each transaction faster and support more clients.
Review database definitions
One of the ways to increase the scalability of the Commence server is to review and tune the database definition to reduce the size of the database, the amount of data that is transmitted, or the number of changes that need to be transmitted.
Reduce or remove unnecessary fields
Remove any fields that aren't being used and reduce the size of
text fields to the minimum required.
These changes will reduce the size of data that must be transmitted for each changed
record
Use connected items to link in frequently changed data
Use connections and relations to separate large data from frequently changed data. For example, converting a notes field into a set of connected items does two things: (1) it reduces contention to the notes field and (2) it reduces the amount of data exchanged since only the new note text is transmitted instead of the whole text field.
Reduce changes made by agents
Check that the minimum number of agents are used in the database. Agents run automatically in the background and can cause more changes to the database, all of which must be exchanged between the client and server. Replace "Save Item" agents with VBScripts on detail forms so item modifications are completed before the item is saved into the database.
Using selective permissions
Whenever possible, use the selective permission feature to limit the amount of data transmitted to each client.
Reduce agents running at server
Remove or reduce the number of agents running at the server. These agents not only can create more sync traffic, but they also reduce the scalability by using CPU cycles to update the database that could be used for serving more clients. The " /NOAGENTS" command-line option can be used with the Commence server to prevent agents from running.
Other Optimizations
The following tips allow you to fine-tune the performance of the Commence server.
Close all views at the server
Closing all the views at the server reduces the amount of RAM used by the user interface and also removes the time necessary to update these views as changes are being synchronized. The " /NOVIEWS" command-line option can be used with the Commence server to prevent views from opening automatically when the server is started.
Dedicate the server PC to running Commence server
Dedicate the server PC to the Commence server process. Running only the Commence server ensures that the server is able to take full advantage of all the server resources.
·
Remove all extraneous programs from the Start Up group;·
Remove services, such as Internet services;·
Turn off network sharing of resources if this server isn't accessed across the network.Use a separate file server
Another optimization is to run the Commence server on a separate PC from the network file and print server. This allows the file server PC to be dedicated to file and printer sharing and allows the Commence server PC to be dedicated to servicing the Commence workgroup.