Sun Java Enterprise System Deployment Planning Guide

Estimating Processor Requirements

This section discusses a process for estimating the number of CPU processors and corresponding memory that are necessary to support the services in a deployment design. The section includes a walkthrough of an estimation process for an example communications deployment scenario.

The estimation of CPU computing power is an iterative process that considers the following:

The estimation process includes the following steps. The ordering of these steps is not critical, but provides one way to consider the factors that affect the final result.

  1. Determine a baseline CPU estimate for components identified as user entry points to the system.

    One design decision is whether to fully load or partially load CPUs. Fully loaded CPUs maximize the capacity of a system. To increase the capacity, you incur the maintenance cost and possible downtime of adding additional CPUs. In some cases, you can choose to add additional machines to meet growing performance requirements.

    Partially loaded CPUs allow room to handle excess performance requirements without immediately incurring maintenance costs. However, there is an additional up front expense of the under-utilized system.

  2. Make adjustments to the CPU estimates to account for interactions between components.

    Study the interactions among components in the logical architecture to determine the extra load required because of dependent components.

  3. Study the usage analysis for specific use cases to determine peak loads for the system, and then make adjustments to components that handle the peak loads.

    Start with the most heavily weighted use cases (those requiring the most load), and continue with each use case to make sure you account for all projected usage scenarios.

  4. Make adjustments to the CPU estimates to reflect security, availability, and scalability requirements.

This estimation process provides starting points for determining the actual processing power you need. Typically, you create prototype deployments based on these estimates and then perform rigorous testing against expected use cases. Only after iterative testing can you determine the actual processing requirements for a deployment design.

Example Estimating Processor Requirements

This section illustrates one methodology to estimate processing power required for an example deployment. The example deployment is based on the logical architecture for the identity-based communications solution for a medium-sized enterprise of about 1,000 to 5,000 employees, as described in the section Identity-Based Communications Example.

The CPU and memory figures used in the example are arbitrary estimates for illustration only. These figures are based on arbitrary data upon which the theoretical example is based. An exhaustive analysis of various factors is necessary to estimate processor requirements. This analysis would include, but not be limited to, the following information:


Caution – Caution –

The information presented in these examples do not represent any specific implementation advice, other than to illustrate a process you might use when designing a system.


Determine Baseline CPU Estimate for User Entry Points

Begin by estimating the number of CPUs required to handle the expected load on each component that is a user entry point. The following figure shows the logical architecture for an identity-based communications scenario described previously in Identity-Based Communications Example.

Figure 5–1 Logical Architecture for Identity-Based Communications Scenario

Diagram showing logical components for an Identity-based
Communications scenario deployed in a multitiered architecture.

The following table lists the components in the presentation tier of the logical architecture that interface directly with end users of the deployment. The table includes baseline CPU estimates derived from analysis of technical requirements, use cases, specific usage analysis, and past experience with this type of deployment.

Table 5–1 CPU Estimates for Components Containing Access User Entry Points

Component 

Number of CPUs 

Description 

Portal Server 

Component that is a user entry point. 

Communications Express 

Routes data to Portal Server messaging and calendar channels. 

Include CPU Estimates for Service Dependencies

The components providing user entry points require support from other Java Enterprise System components. As you continue to specify performance requirements, add the performance estimates required for supporting components. The type of interactions among components should be detailed when designing the logical architecture, as described in the logical architecture examples in the section Example Logical Architectures.

Table 5–2 CPU Estimates for Supporting Components

Component 

CPUs 

Description 

Messaging Server MTA(inbound) 

Routes incoming mail messages from Communications Express and e-mail clients. 

Messaging Server MTA(outbound) 

Routes outgoing mail messages to recipients. 

Messaging Server MMP

Access Messaging Server message store for email clients. 

Messaging Server STR(Message Store)

Retrieves and stores email messages. 

Access Manager

Provides authorization and authentication services. 

Calendar Server(back-end)

Retrieves and stores calendar data for Communications Express, a Calendar Server front-end. 

Directory Server

Provides LDAP directory services. 

Web Server

Provides web container support for Portal Serverand Access Manager. 

(No additional CPU cycles required.) 

Study Use Cases for Peak Load Usage

Return to the use cases and usage analysis to identify areas of peak load usage and make adjustments to your CPU estimates.

For example, suppose for this example you identify the following peak load conditions:

To account for this peak load usage, make adjustment to the components providing these services. The following table outlines adjustments you might make to account for this peak load usage.

Table 5–3 CPU Estimate Adjustments for Peak Load

Component 

CPUs (Adjusted) 

Description 

Messaging Server MTAinbound 

Add 1 CPU for peak incoming email 

Messaging Server MTAoutbound 

Add 1 CPU for peak outgoing email 

Messaging ServerMMP 

Add 1 CPU for additional load 

Messaging Server STR(Message Store) 

Add 1 CPU for additional load 

Directory Server 

Add 1 CPU for additional LDAP lookups 

Modify Estimates for Other Load Conditions

Continue with your CPU estimates to take into account other quality of service requirements that can impact load:

Update the CPU Estimates

Typically, you round up CPUs to an even number. Rounding up to an even number allows you to evenly split the CPU estimates between two physical servers and also adds a small factor for latent capacity. However, round up according to your specific needs for replication of services.

As a general rule, allow 2 gigabytes of memory for each CPU. The actual memory required depends on your specific usage and can be determined in testing.

The following table lists the final estimates for the identity-based communications example. These estimates do not include any additional computing power that could have been added for security and availability. Totals for security and availability will be added in following sections.

Table 5–4 CPU Estimate Adjustments for Supporting Components

Component 

CPUs 

Memory 

Portal Server 

8 GB 

Communications Express 

4 GB 

Messaging Server(MTA, inbound) 

4 GB 

Messaging Server(MTA, outbound) 

4 GB 

Messaging Server(MMP) 

4 GB 

Messaging Server(Message Store) 

4 GB 

Access Manager 

4 GB 

Calendar Server 

4 GB 

Directory Server 

8 GB (Rounded up from 3 CPUs/6 GB memory) 

Web Server