Configure a cluster environment
To improve performance, you can run services in a clustered environment so that you can run multiple services on one computer or on multiple computers.
Clustering ServicesThe most common system setup is to place every service within the same logical computer. This scenario is outlined in the installation documentation. This scenario is acceptable for smaller installations and development installations. This scenario is the easiest to manage and set up because the administrator is required to use only one set of scripts, on one logical computer to manage the instance. If you outgrow this type of installation, you can grow into a cluster configuration.
Advantages and possibilities of clustering are:
- Each of the six product services performs some specific tasks, and is isolated at run time because each service runs in a separate JVM. The advantage of this design is that each service has well-defined responsibilities, and can start or shut down independently.
- You can use clustering to distribute the load and processing within the product domain to make
the best use of the system infrastructure. You can also use clustering to improve availability and
system performance. The most common reason for setting up a clustered environment is for improving
performance and scalability. The common clustered environment configuration includes having multiple
schedulers on dedicated computers. Separating the scheduler and
appsvrservices onto separate computers increases the performance in any installation where the scheduler is used for frequent, large, or long-running jobs.
- Determine the required number of scheduler and
appsvrservices you need to improve overall responsiveness. The number of concurrent jobs and their complexity determines the number of schedulers and threads (number of jobs) that each scheduler can run.
- You might want to cluster multiple product instances to work as a group, either at the application server level, or product application level.
- When you create a clustered environment, if the primary server fails, the services that were not previously running on a secondary server can be restarted with minimal effort and downtime.
Limitations of clustering are:
appsvrservices on different servers can be problematic.
- You can start multiple services to distribute loads, such as multiple schedulers to run jobs on one or more servers. However, the schedulers are simple independent instances and do not support failover in case one instance is down.
- Clustering for high availability can require more testing for your implementation.
The two types of application server clustering are vertical and horizontal:
- Vertical clustering
- Vertical clustering is effectively making the application server larger, or scaling it vertically. For example, if memory is slowing down performance, you can add memory inexpensively without any additional licensing costs, and more services can be deployed on the same hardware. This application is a simple and inexpensive way to achieve more performance from the system. With vertical clustering, you add more services to the same server. For more information, see Enabling vertical cluster for the Admin UI and the Persona-based UI.
- Horizontal clustering
- Horizontal clustering uses multiple servers. Deploying on more servers is similar to deploying more services on the same computer (vertical clustering), but you must modify and run scripts for each server. You configure the admin_properties.xml file that is in the $TOP/etc/default directory to define each computer in your clustered environment.
- When you deploy on multiple servers, you must use a shared disk solution such as NFS. For more information, see Enabling horizontal cluster for the Admin UI and the Persona-based UI.