IBM Support

Collecting Data: Performance Issue

Troubleshooting


Problem

This document provides the process for collecting required data for troubleshooting performance issues on Maximo server
Expand each item for more details on collecting the referenced information.
Performance problems may occur due to lack of resources on the server (virtual, physical) of Middlwere (WebSphere, WebLogic), memory problems in the JVM, customizations made without optimizing the use of memory, reports being processed in JVMs that are not exclusive to this purpose, slow response from the Database, Database Connection Watchdog enable, among others. Check the Best Practices document and ensure your environment has the recommendations implemented. Best Practices for System Performance
  • Steps to troubleshoot
    JVM Memory:
    1. If javacore files, heapdump, are being generated, you can use several tools to analyze what may be happening. IBM makes the tool available IBM Thread and Monitor Dump Analyzer for Java
    2. Check if your server has enough memory and processor to meet the demands of the environment.
      For example if you have 4 JVM's and each JVM is configured to use 8GB of memory. You must have 32 GB + Memory reserved for your Operating system. Hardware requirements for Windows Server
    3. Check if you have customizations, integrations, Cron tasks, escalations that may be causing memory leaks,
    4. If you identify any queries that may be causing slowdowns, run that query directly against the database.
    5. Check Chapter 3 IBM WebSphere Application Server tuning, the chapter 5 Database server tuning and maintenance and chapter 8 Server operating system, in the document Best Practices for System Performance
    JVM CPU Utilization:
    1. Using a dedicated tool like IBM Thread and Monitor Dump Analyzer for Java (TMDA) simplifies these CPU reviews by generating diagrams along with relative CPU usage. For more information, see Java Core Debugging using IBM Thread and Monitor Dump Analyzer for Java.
    Start Center slow to load:
    1. Some users who have site specific queries in their Start Center portlets may find that their Start Centers take a long time to load. If that is happening then please check the value of your mxe.db.UseSiteListInQuery system property. This property fixes a performance issue found when assigning users to certain Security Groups when All Site Access is not enabled. When it is set to 1 it uses a literal list for site and organization restrictions which improves the Start Center performance. For more information, see Start Center slow loading times for Site Specific portlets
    2. Slow logging in or going to the Start Center. A 'busy' Start Center with many portlets that access the database (for example, Result Set, KPI Graph, KPI Chart, Inbox, etc.) can be slow to load. Every portlet runs queries against database tables and displays the result set in each portlet. For example if you have 6 portlets and the query for each executes in 1 sec. That would be over 6 seconds to load the Start Center. For more information, see Start Center Performance
    Long running query logging:
    1. More than 90% of performance issues are related to slow database responses. Ensure that your database follows best practice recommendations. This may vary depending on the environment, so it's advisable to consult with the DBA team.
      • You can check things like whether all necessary indexes have been created for a specific table.
      • Verify If a table reorganization is necessary.
      • Verify if you can archive historical data.
      • Verify if the server has sufficient memory and processor.
    After an update (FIX installation or version upgrade):
    1. It is recommended to perform a statistics update on the database, particularly during a version upgrade, as the process may involve the addition and/or removal of indexes.
      • DB2 Database Server:
        db2 "select 'RUNSTATS ON TABLE '||rtrim(tabschema)||'.'||tabname||';' from syscat.tables" > runstats.sql
        db2 -vtf runstats.sql
      • Running the runstats command on all tables can be tedious if not automated with a script. The alternative is the DB2 reorgchk command. To update DB2 statistics, run the DB2 reorgchk command. For example:
        db2 connect to ldapdb2 db2 reorgchk update statistics on table all
      • Oracle Database Server:
        BEGIN
        DBMS_STATS.GATHER_DATABASE_STATS;
        END;
      • SQL Database Server:
        USE <database_name>; (replace the correct database name here)
        GO
        EXEC sp_updatestats;
    2. Refresh Index Tables
      We recommend running the Refresh Index Tables operation in Maximo.
      Navigate to the Database Configuration application and use the Refresh Index Tables action. Click OK when you receive the message box.
      This will keep the Maximo metadata table up to date.

      Note:
      Special index types
      Some special index types are available on each database platform that are not available in the Database Configuration application. These index types can be created and maintained from the back end, and they can improve performance in specific cases. For example, on Oracle and DB2, you might create a bitmap index or a function-based index if you determine that these indexes would improve certain queries.
      If you use special index types, the system administrator must remember to remove any special indexes before configuring database changes. After the database is configured, the special indexes must be replaced.
      Customization and indexes
      Customizing Maximo can change the way you select information from the database. Some customizations include additional tables and columns. If you have customized Maximo, carefully compare indexes to the user functions that use them by taking DB2 snapshots or Oracle AWR reports to look for candidate statements for indexing. Ensure that you implemented the right balance of indexes. Maximo 7.6 Performance Best Practice Guide (Page 29)
    Network Latency
    1. Maximo is a web-based product that operates on a request and response basis. If the requests and responses are delivered slowly, Maximo has no control over response time. Optimum network configurations for Maximo should include the ability to produce 50ms or faster (<50ms) round-trip packet response between the client and the server. Users may begin to experience performance degradation if the network does not operate within these parameters. Data bandwidth requirements are difficult to determine since it is highly dependent upon the workload characteristics. Some transactions require more data than others, with work order processing being one of the heavier transaction types. One way to estimate bandwidth requirements for your Maximo implementation would be to capture data throughput while performing pre-production performance testing as well as the length of the test and use those values to calculate the average network bandwidth used.
      • To identify potential latency issues within the environment, basic network diagnostic tools such as ping, traceroute (tracert on Windows server), and tcpdump can be utilized. These commands should be executed between the relevant servers in the infrastructure to evaluate network performance.
        Key latency checks include:
        - Between the database server and the middleware/Maximo server.
        - Between the client workstation (where the end-user accesses the Maximo application) and the Maximo server.
        If high latency is observed between any of these components, it is advisable to engage the network operations team to perform a detailed analysis and identify the root cause."
    2. Consider the following two examples: in the first, the website Google demonstrates a good response time, indicating low latency. In contrast, the second example shows a website with a slower response time, characterized by high latency exceeding 130 milliseconds.
      Example 1: Low latency observed, with response times below 20 milliseconds (<20ms), indicating optimal network performance. Example 1
      Example 2: High latency (>130ms), indicating degraded performance, can lead to errors or access issues, especially in environments accessed externally via the internet and or/vpn, etc Example 2
Title Description
Incorrect heap size setting Initial: and Maximum: - Heap dump and javacore being automatically generated.
New region (nursey) incorrectly defined in generic arguments. - Memory being consumed but never recycled meaning that memory is never returned for use. The idea [of a generational collector] is to divide the heap up into different areas, and collect these areas at different rates. New objects are allocated out of one such area, called the nursery (or newspace). Since most objects in this area will become garbage quickly, collecting it offers the best chance to recover memory. Once an object has survived for a while, it is moved into a different area, called tenure (or oldspace). These objects are less likely to become garbage, so the collector examines them much less frequently. For example. For an initial/Maximum heap size 6144m New region (-xmn) should be set to 2048M.representing 25% of maximum heap size. If you increase your heap size, remember to increase this value accordingly.
Retain MBOs - For Integration, there is a recommendation to turn the parameter "Retain MBOs" to OFF to prevent performance and memory issues. This ensures existing MBO are discardable and avoids the unnecessary build up of MBO count.
Watchdog Logging - Leaving Watchdog Logging active can generate performance problems, causing your JVM's memory to be consumed excessively, generating headpdump, javacore. And, also it can generate database performance problems. Disable Watchdog when you are not troubleshooting your environment.
Database Index - Tables without proper indexes, or with improperly created indexes, can lead to slow query performance, thereby impacting the efficiency of data retrieval from database tables.
Network issue - The IBM company does not have a specific recommendation for network configurations, as these can vary due to multiple factors, such as the type of server, the region in which the server is hosted, and the location from which the application is being accessed.
However, you may want to consult the topic in chapter 8.1.1 Network configurations, available in the PDF with performance recommendations,

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB77","label":"Automation Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSLKT6","label":"IBM Maximo Asset Management"},"ARM Category":[{"code":"a8m50000000CbPQAA0","label":"Performance"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
26 June 2025

UID

ibm17145230