Planning for system performance

When you plan your deployment, you need to understand the architecture and how implementation choices affect system performance. For more complete information about performance settings, refer to the Best Practices for System Performance guide.

The decisions that you make when planning and customizing your deployment affect system performance. However, deployments in virtualized environments that have shared memory and processors, such as VMware, might not see performance benefits from these implementation options.

Automated workflows
Automated workflows can be created to implement processes and validate certain inputs. If your users require many complicated workflows, more processing power is used. As a result, workflows can have a noticeable effect on performance. Setting up the system so that automated workflows are processed on dedicated JVMs can help your implementation to run efficiently and effectively.
Concurrent users on processing cycles
Consider the tasks and goals of your users. Are they entering items that use low processing cycles, such as service requests? Or are they completing complicated tasks that require additional memory, such as frequent database lookups? How many transactions per hour do you expect that your users to produce? Will your users all use the system at roughly the same hours or do your users work shifts throughout the day and night? You can set up separate Java™ virtual machines (JVMs) or clusters of JVMs to handle high load levels for a specific function. For example, you can deploy four clusters to separate the functions of the user interface, cron tasks, integration framework, and reports.
Cron tasks
Cron tasks are automated jobs that can run on a set schedule. As you plan your deployment, consider the volume and processing power that your cron tasks require and plan to schedule them outside of normal business hours. Additionally, you can use a clustered environment to run cron tasks on dedicated JVMs, which can minimize the system performance impact for users.
Customization
Extensive customization, such as conditional user interface or complex query restrictions, can result in few users per JVM because of the extra processing that is required. If your deployment requires complex customization, make sure that you have enough hardware and memory to handle the increased demands.
Hardware
The type of hardware used in your deployment can determine how many active users that each JVM can support.
Monitoring tools
When planning your deployment, consider which monitoring tools that you plan to use in production. You also can consider how you plan to monitor your middleware and your network bandwidth.
Network infrastructure
Ensure that you have sufficient bandwidth between the servers in your infrastructure. You might consider putting all servers on the same local area network to minimize network latency issues. Additionally, consider the available bandwidth between the servers and the clients. Before deployment, you can monitor the network throughput from various client locations to locate potential problems.
Performance testing
The best way to discover performance issues is to run performance tests before your deployment enters the live or production stage. Performance tests determine the responsiveness and stability of a system under a particular workload. You can design use cases that test the most frequently used and important functions for your deployment.