As your application nears its launch date, you should test the sites as extensively as possible, using tests that simulate the expected site load as realistically as possible.
If you run into performance problems, you can best identify and correct the source of the problem by taking a systematic approach. The following checklist can help you identify the most common sources of performance problems:
Have you properly configured memory for your Java Virtual Machines? Have you set your
-Xms
and-Xmx
arguments the same? Do all ATG heap sizes fall within the limits of physical memory?Has one or more servers stopped responding? There could be a number of causes, including a Java deadlock. See Server Hangs.
Are you seeing many
IOExceptions
with the message “Too many open files”? You may have a file descriptor leak. See Detecting File Descriptor Leaks.At maximum throughput, look at the CPU utilization, database CPU utilization, I/O activity, and paging activity. See Monitoring System Utilization.
If CPU utilization is low, then you may have an I/O or database bottleneck. See Checking for Disk I/O Bottlenecks, Checking for Network-Limited Problems, and Repository and Database Performance.
If CPU utilization is high, then the bottleneck is most likely in the application code. Use a performance profiling tool to try to locate bottlenecks in the code. Review your code to make sure it uses good Java programming practices.
If paging is occurring, adjust the memory allocated to your Java Virtual Machines. See the Swap Space topic in the Paging and Memory Allocation section.
Look at the I/O and CPU utilization of the database. If utilization is high, database activity is probably slowing down the application. See the Repository and Database Performance chapter.
Are you receiving page compilation errors? You may not have enough swap space for page compilation.
If your sites develop performance problems, you need to test several paths through your sites to determine the source or sources of the problems. To generate meaningful test results, you need to test sites with loads that achieve maximum throughput.