Operating system considerations
Here are some of the performance considerations at the moment of tuning any Commerce Web site from the operating system level.
Minimize number of programs running per system
Ideally, in a multi-tier environment, each system should have its own dedicated tasks to do. For example, a Database server should only be running a database engine to serve requests from the WebSphere Commerce Server. In the real world, sometimes you may find that servers are doing some other tasks that may or may not be related to the WebSphere Commerce site, thus using valuable resources of the system. Here are some examples of inappropriate server use:
- Use the system for multiple purposes. A system that should only be used as a Database server to serve requests from WebSphere Commerce is also used as an FTP server. In this case this server will distribute resources between the Database server and any other service running on the same system.
- Background programs that do not necessarily need to be running. Some operating systems, by default, have some servers or services running in the background that probably are not used and certainly are not needed by the Commerce site. By unloading these programs, extra memory and CPU can be freed up.
- Run any type of terminal emulation servers in background. These applications make use of many resources, especially CPU, and should be avoided in production environments.
- Run graphical programs such as UDB Control Center, Tivoli Performance viewer, or even a Web browser. These programs can usually be executed remotely from a client system to have less performance impact on the server.
Virtual memory
Virtual memory is created by using the hard drive to simulate additional random-access memory. When physical memory runs out, the virtual memory manager choose sections of memory that have not been recently used and writes them to disk. It is a built-in feature of all the modern operating systems today and this process is transparent to the application.
Since virtual memory requires reads and writes to the physical hard drive, this is much slower than actual RAM. As a result, all the servers should be configured with enough physical memory to minimize the use of virtual memory.
Process priority
Each server has a lot of processes running at the same time. One of the responsibilities of any preemptive operating system is to manage multiple processes and programs running concurrently.
WebSphere Commerce performance could potentially be improved by giving higher priority to those processes that are really important, to achieve high throughput (that is, background Java processes running Commerce servers), and minimize the CPU impact on other less relevant processes (that is, a Java GUI running in foreground to monitor performance).
How to modify the process priority varies from one operating system to another. In Microsoft Windows, for example, process priority can be changed by right-clicking the desired process from the process tab in the Task Manager and selecting set-priority. The priority by default is set to normal.
Operating system resource monitoring
Improve performance is always a matter of identifying where the bottleneck is and applying some configuration change in order to avoid it. Ability to monitor the operating system performance characteristics is one of the most essential skills needed to ensure good performance of the system.