Horizontal scaling
You can expand the capacity of your server configuration by scaling horizontally and adding more physical machines.
Horizontal scaling example
To scale horizontally, you can:
-
Move the database and Dimensions CM server to separate machines as these are the main components competing for CPU, RAM and disk I/O.
-
Place the database and Dimensions CM server on the same network subnet if possible. The closer in proximity they are, the less impact is caused by network traffic.
A horizontally scaled environment may look similar to the following diagram.
Dynamic load balancing
Performance may benefit from the implementation of dynamic load balancing. Hardware load balancers require specialized equipment and skills and typically are more expensive than software load balancers. You can set up software load balancing with Microsoft Windows Server. With either type of load balancing, the end user continues to access the system using a single address and sees no difference in client behavior.
A web application can take advantage of a server farm that contains multiple containers, for example, Tomcat.
Use the following methods to dynamically load-balance a web application:
DNS based | Directs clients to different servers as they request connections and balance the load across those servers. However, DNS load balancing has a known issue related to the caching of IP addresses. DNS connections are stored by clients for a predefined set of time, which may lead to failed connections if specific IP addresses have failed. The clients are not automatically redirected to a new IP address until the browser has been restarted or the allotted DNS time has passed. |
Reverse proxy based |
This technique caches content from web servers on proxy servers, accelerating the response time to client requests. You can use:
|
The Dimensions CM server can also be load balanced using a hardware load balancer that supports the use of "server affinity" algorithms. A Dimensions CM client connects to the same physical hardware as the server after an "idle" time, meaning that the client communicates to the same IP address for the server for the lifetime of its session.
Static load balancing
If you are unable to implement dynamic load balancing, you can configure multiple, static servers to distribute the load. In this type of configuration you define a set of fixed users that connect to each server.
For example, you configure each department in your organization to access a specific system. Depending on your network bandwidth and project organization, you can set up local servers that connect to a central remote database that holds all the configuration management metadata for your organization.
See also: