Tuning system architecture and hardware

Maximize system performance by tuning your system architecture to account for your resource needs.

Overview

When sizing your Maximo® Real Estate and Facilities system, you must include a performance test phase as part of the implementation. Sample starting configurations are provided, but you must conduct performance testing analysis and tuning to reach the best possible configuration for your environmental and application circumstances before you sign off on the final production configuration.

Planning capacity

As with any web-based platform, the application server and database capacity that is needed to deploy the Maximo Real Estate and Facilities depends on the number of anticipated users and user requests.

At a minimum, the server capacity to satisfy the average load during a work day is required, with response times that are acceptable to the user base. If possible, aim to satisfy the volume of requests that is anticipated during peak intervals of high user activity. Hardware resources such as CPU, memory, I/O capacity, and network bandwidth are key to reducing response times. Unless you install Maximo Real Estate and Facilities on a server or group of servers that can handle many transactions, users might experience slow response times.

Adding more servers and database capacity might improve performance, but that is not always the case. The application usage and system configuration can play a significant role in the balance of system performance.

Estimating sizing

Estimating the Maximo Real Estate and Facilities system size is complex and error-prone, which is why it's an estimation and not a calculation. Use the following estimation methods to size a Maximo Real Estate and Facilities implementation:
  • Size by Example (SBE)
  • Proof of Concept (POC)
SBE

An SBE approach requires a set of known samples to use as data points along the range of system sizes. By making more examples available for SBE, the intended implementation is more accurate. Several targeted SBE sizing solutions for prospective Maximo Real Estate and Facilities customers are provided. These targeted solutions were compiled from internal deployments, performance benchmarks, and customers' external deployments.

POC

A POC or pilot-based approach offers the most accurate sizing data of all approaches and includes the following process steps:

  • Test your implementation design.
  • Test your chosen hardware platform.
  • Simulate the projected load.
  • Validate design assumptions.
  • Validate Maximo Real Estate and Facilities.
  • Provide iterative feedback for your implementation team.
  • Adjust or validate the implementation decisions that are made before the POC.

However, two disadvantages of a POC are time and money. Running a POC requires personnel, hardware, and time to implement the solution, validate the solution, iterate changes, retest, and finally analyze the POC findings. However, a POC is always the best approach for any sizing exercise. It delivers results that are accurate for the unique implementation of the specific customer and that are as close to deploying the real live solution as possible, without the full capital spending on hardware and project resources.

Scalability

Many factors can affect the scalability of Maximo Real Estate and Facilities. For example, the type of hardware that is used can determine how many active users per Java™ virtual machine (JVM) you can achieve.

The average workload that is applied can also have a large impact on the system. For example, you can support more users per JVM if those users are producing five transactions per hour instead of ten transactions per hour. In addition, heavily customizing Maximo Real Estate and Facilities can result in fewer users per JVM because of the overhead in processing custom code.

Lastly, the architecture that is used in deploying Maximo Real Estate and Facilities has a significant impact on the number of active users per JVM. Some clients achieve only 50-100 concurrent users per JVM when all transactions are running in the JVMs. Creating separate JVMs for user interface transactions allows for more active users per JVM. In an advanced system configuration, internal testing shows the ability to support up to 2000 concurrent users per user interface JVM.

Development system configuration

A development environment is typically used as a sandbox for developers to make and test changes. The sandbox environment is not built for performance or for many users. That environment is also known as a basic system configuration that typically has less than 20 concurrent users.

A typical configuration for this type of environment would have 1 or 2 tiers depending only on the database requirements. A single application tier or server is common to serve for multiple logical roles in this case, for example, application, process and Business Intelligence and Reporting Tools (BIRT) server.

The following hardware requirements are typical for the application tier that is used for this configuration:

  • 2 to 4 CPU logical cores/threads
  • 4 GB to 8 GB of memory with 4 GB allocated to the Java heap

Basic system configuration

A basic environment might be a configuration for production with less than 100 concurrent users or a staging environment that is not used for development work. This type of environment might be configured for production performance or for production function testing. This configuration is also known as a basic system configuration that typically has less than 100 concurrent users.

A basic configuration consists of Maximo Real Estate and Facilities running on a single application server. The application server connects to a single instance of the database that is available on a database server. The application server can also connect to a report server.

Do not use the basic system configuration if you anticipate using Maximo Real Estate and Facilities Connector for Business Applications (Web Services). Maximo Real Estate and Facilities applications that use IBM® Maximo Real Estate and Facilities Connector for Business Applications or other connector technology might require more server resources and therefore must not be used in a production environment if the basic system configuration is implemented.

Examples of connector-based products are Maximo Real Estate and Facilities CAD Integrator, Reservation Management with Microsoft Exchange, ENERGY STAR Connector, Connector for ESRI/GIS and the Maximo Real Estate and Facilities Integration Object.

A typical configuration for this type of environment has two tiers, one for the application server and one for the database. A single application tier is common to serve for multiple logical roles, for example, application server, and BIRT server. If given the choice of two different types of servers, the more powerful server must be the database server. The most common way to improve the performance of a Maximo Real Estate and Facilities system is to increase the CPU and memory of the database. The database server is the single most important server across the tiers.

The following hardware requirements are typical for the application tier that is used for this configuration:

  • 2 to 4 CPU logical cores or threads
  • 4 GB to 8 GB of memory with 4 GB allocated to the Java heap
Figure 1. Example basic system configuration
Basic system configuration

Typical system configuration

A typical or medium environment might be a configuration for production with fewer than 1000 concurrent users or a staging environment that has fewer users than a production environment and does not have redundancy or high availability (HA) requirements.

A typical configuration for this type of environment might have 2 to 3 tiers, depending on infrastructure and security requirements. A web tier might be added for a DMZ requirement, but the typical configuration is to have one tier for the application servers and one for the database. The most common way to improve the performance of a Maximo Real Estate and Facilities system is to increase the CPU and memory of the database. The database server is the single most important server across the tiers.

The following hardware requirements are typical for the application tier that is used for this configuration:

  • 4 to 8 CPU logical cores or threads
  • 8 GB to 16 GB of memory with 4 GB allocated to each Java heap
  • 50 GB disk drive

The following hardware requirements are typical for the database tier that is used for this configuration:

  • 8 to 16 CPU logical cores/threads
  • 16 GB to 32 GB of memory
  • 500 GB of fast Fibre Channel with15K RPM or faster disk or solid-state drives
Figure 2 shows a typical configuration to support a system that has fewer than 1000 concurrent users and no advanced system needs such as high availability (HA).
Figure 2. Example of a typical system configuration
Typical system configuration

Advanced system configuration

An advanced or large environment might be a configuration for production with up to several thousand concurrent users and when redundancy or high availability (HA) requirements are crucial to business needs.

An advanced system configuration might have one or more of the following requirements:
  • HA
  • Load balancing integrations, or
  • Many concurrent users
This type of advanced system might be as simple as two application servers with a cold failover-clustered database system or as complicated as multiple servers at all tiers. Implementations of Maximo Real Estate and Facilities for advanced system needs can be achieved in many ways depending on the requirements of your system. There are no specific requirements for the Maximo Real Estate and Facilities to achieve these types of advanced requirements.

HA requirements can be configured many ways. Hardware-based or software-based load balancers can be used in front of multiple web servers to communicate with multiple application servers. With the use of the Maximo Real Estate and Facilities Administrator Console, the logical roles of the servers can be changed dynamically at any time by turning background agents on or off with any server console.

Continually monitoring and evaluating Maximo Real Estate and Facilities products for performance and using horizontal and vertical scaling is an effective way to distribute user load, improve overall system performance, and ensure optimal user experience. With WebSphere® Liberty Collectives, HTTP Session Failover can be used for both high availability and load balancing. Hardware-based or software-based load balancers can distribute workloads among multiple web servers to communicate with multiple application servers. With load-balanced web servers, use session affinity. The client’s request is always passed through the same server that originated the request, and the overhead that is associated with replicating session data can be eliminated.

The number and type of servers that are used in a high availability environment depends mostly on application usage patterns and production transaction volumes. The number and size of JV Ms that are configured depends in part on the overall hardware and software limitations of the environment and on the expected number of concurrent users. You can tune the setup based on traffic and performance numbers. For example, in situations in which many web services or integrations are exercised using APIs, a dedicated Maximo Real Estate and Facilities integration server might be needed to maintain system performance. However, the database server must still be the largest and most important server in the environment. One application server might easily overload the database server.

The following hardware requirements are typical for the application tier that is used for this configuration:

  • 8 to16 CPU logical cores/threads
  • 16 GB to 32 GB of memory
  • 50 GB disk drive

The following hardware requirements are typical for the database tier that is used for this configuration:

  • 32 to 64 CPU logical cores or threads
  • 64 GB to 256 GB of memory
  • 2 TB to 4 TB of fast Fibre Channel SAN storage with 15K RPM or faster disk or solid-state drives
Figure 3 shows an example of a complex enterprise architecture that is required to support up to several thousand concurrent users when redundancy or HA requirements are crucial to business needs.
Figure 3. Example of advanced system configuration
Advanced system configuration