Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

IBM Maximo Performance Tuning

IBM Maximo Performance Tuning

Herunterladen, um offline zu lesen

Speaker: Darlene Nerden, IBM

Overview: In this session will review the Maximo architecture and factors that influence performance. We will discuss some details for those factors regarding tuning for a performance impact. We will look at troubleshooting tools and Maximo settings to help identify and resolve a Maximo performance issue.

Speaker: Darlene Nerden, IBM

Overview: In this session will review the Maximo architecture and factors that influence performance. We will discuss some details for those factors regarding tuning for a performance impact. We will look at troubleshooting tools and Maximo settings to help identify and resolve a Maximo performance issue.

Weitere Verwandte Inhalte

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

IBM Maximo Performance Tuning

  1. 1. February 2018 Darlene Nerden dnerden@us.ibm.com FMMUG18 :: Seattle 1 Maximo Performance Tuning and Best Practices
  2. 2. • Maximo Performance Tuning • Maximo Performance Troubleshooting • Tools • Resources • Q&A Agenda FMMUG18 :: Seattle 2
  3. 3. Application Architecture FMMUG18 :: Seattle 3
  4. 4. • System architecture setup • Hardware/processor/memory • Operating System performance • Application server configuration • Scheduled tasks (cron tasks) • Reporting • Integration with other systems using the Integration framework • Network Factors in System Performance FMMUG18 :: Seattle 4
  5. 5. • Bandwidth/Latency • Load balancing • Database tuning • SQL/index tuning • Application configurations • Default behavior • Environment settings • Screen design • Validation/sync settings • Client workstation configuration Factors in System Performance FMMUG18 :: Seattle 5
  6. 6. Maximo Infrastructure FMMUG18 :: Seattle 6
  7. 7. • Application Server • 64-bit • JVMs clustering • Memory – both physical and JVM memory • Current fix packs • Database Server • Disk usage sizing • CPU sizing • Database memory Architecture - Sizing FMMUG18 :: Seattle 7
  8. 8. • Reporting Server • LDAP/Directory Server • Integration component • Transaction rates • Clustering • Network • Bandwidth • Latency Architecture - Sizing FMMUG18 :: Seattle 8
  9. 9. • Using the minimum hardware requirements may produce the minimum acceptable application performance • Using virtual technology to maximize hardware availability can reduce overall performance (VM overhead, shared resources) • Use physical memory. Sharing memory and swapping to disk has a performance impact • Use Operating System tuning to maximize throughput (temp/swap space, background processing, disk/storage tuning) Hardware/Operating System FMMUG18 :: Seattle 9
  10. 10. • Each application server vendor will have their own requirements and recommendations related to supporting infrastructure and settings. There is no “one size fits all” • IBM WebSphere • Generic JVM argument: -Dsun.rmi.dgc.ackTimeout=10000 • Oracle WebLogic Application Server FMMUG18 :: Seattle 10
  11. 11. • For both platforms – Memory settings: Initial: 4096m / Maximum: 4096m • Minimum settings • Recommended settings: Initial 6144m / Maximum: 6144m • More memory is not always a good answer: Too much memory can slow GC (garbage collection) Application Server FMMUG18 :: Seattle 11
  12. 12. • Application Servers should always be setup in a cluster • JVMs per cluster based on load • UI cluster – End user logins • 1 CPU per JVM / 4-6GB heap / 50-75 users per JVM • Cron task cluster – Background tasks • 1 CPU per JVM / 4-6 GB heap / At least 2 JVMs • Integration cluster – Integration transactions • 1 CPU per JVM / 4-6 GB heap / At least 2 JVMs • Report cluster – Report execution • 1 CPU per JVM / 4-6 GB heap / At least 2 JVMs Application Server FMMUG18 :: Seattle 12
  13. 13. • Use replication to populate and synchronize a reporting database • JVM tuning • Heap • Garbage collection • Load balancing Application Server FMMUG18 :: Seattle 13
  14. 14. • Per JVM – allocate and additional 1GB of memory for internal usage • 4GB JVM needs 5GB total memory • Allocate 25% additional memory for the Operating System • Take into account all processes that might be started on the physical/virtual server • Eg. JVM, node manager, deployment manager, web server, anti-virus, etc. Application Server FMMUG18 :: Seattle 14
  15. 15. • JVM arguments • -Dsun.rmi.dgc.ackTimeout • This represents how often the server checks for objects that can be garbage collected. The time value is in milliseconds • The best practice for this is 10000 (10 seconds). The default value is 5 minutes – this can cause out of memory • Setting this value too low can increase CPU usage Application Server FMMUG18 :: Seattle 15
  16. 16. • JVM arguments • -Xdisableexplicitgc • This property should be set to disable explicit garbage collection, this disables all System.gc() calls from initiating garbage collection • -Xmn • The nursery size should be set to 25% of the maximum heap. This property should be used along side the –Xgcpolicy:gencon in which garbage collection policy places objects in separate areas of the heap based on lifetime Application Server FMMUG18 :: Seattle 16
  17. 17. • JVM arguments • -Xgcpolicy:gencon • The gencon policy is now the default policy in WebSphere 8.5.5 and is set out of the box when doing Maximo install. This is the recommended policy. The gencon policy places objects into the heap in separate areas based on how long they have been active. The heap is split into a nursery based on the –Xmn setting. The nursery can be garbage collected without the overhead of cleaning up the entire heap at the same time Application Server FMMUG18 :: Seattle 17
  18. 18. • JVM arguments • -Xgcpolicy:optthruput • This used to be the default policy for WebSphere, in version 8 and forward the default policy has been changed to gencon. Optthruput works based on multiple passes. First it goes through all reachable objects and marks it as active data, it then passes through a second time to clean up any non marked objects, freeing up memory • This can not be used along with –Xmn (nursery) parameter Application Server FMMUG18 :: Seattle 18
  19. 19. • Thread pool • Thread pools are a collection of threads on a server that can be reused when the JVM creates a request rather then create a new thread with each new request • Best practices • Minimum number of threads in the pool should be set to 20 for the default thread pool and 120 for the WebContainer thread pool • The thread inactivity timeout defines how long a thread can be inactive before the thread is returned to the pool. The default thread pool should be set to 30000 and WebContainer thread pool to 60000 Application Server FMMUG18 :: Seattle 19
  20. 20. • Best practices • Enable Allow thread allocation beyond the maximum size. This defines if a thread can be created past the maximum thread pool value • Thread pool settings are defined for each individual server Application Server FMMUG18 :: Seattle 20
  21. 21. • Each database vendor will have their own requirements and recommendations related to supporting infrastructure and settings. There is no “one size fits all” • Tune database as per install and best practices documents • Specific settings are documented • Oracle • Use cursor_sharing=force • The more memory the better Database FMMUG18 :: Seattle 21
  22. 22. • Tune database as per install and best practices documents • DB2 • Lock timeout • Memory settings • Schedule regular maintenance for reorganization and runstats • For DB2 9.5 and later, set DB2_WORKLOAD=MAXIMO • SQL Server • Turn off page level locking • Use Maximo properties for SQL Server • Do not try to use with more than 250 concurrent users Database FMMUG18 :: Seattle 22
  23. 23. • Database tuning is the most important performance improvement task • Maximo is extremely database centric • Use database tools to find long running queries and recommended indexes • Analyze database memory and user I/O • Maximo fetches a lot of data into application server • Increase system memory, helps reduce user I/O • Separate tablespace and mount points to optimize I/O • Dedicated hardware for optimal performance • Performance impact in virtualized environment Database FMMUG18 :: Seattle 23
  24. 24. • Setup an index statistics update schedule • Weekly update helps in better performance • Purge/Archive data • Transactional data needs archiving plus purging • Purge on a regular basis • Eg. Workflow transaction data, login tacking, start center • Add indexes as they are needed • Do not be scared to add indexes • In Maximo, 80% is data fetch, 20% is data insert/update • Lack of right indexes causes more performance problem than slowing down on insert/update Database FMMUG18 :: Seattle 24
  25. 25. • Sequences (Oracle & DB2) • Enable sequence caching • Increase cache size for sequences to 50 (except maxseq) • Increase cache size for maxseq sequence to 500 Database FMMUG18 :: Seattle 25
  26. 26. • High availability database setup • DB2 provides HACMP and HADR • Oracle has RAC • SQL Server High Availability • High availability helps in failover • Separate reporting database helps reduce load on the primary database • Multi-site setup – use the property to improve SQL timing • mxe.db.useSiteInListQuery=1 • This includes the list of sites the user has access in the SQL statement instead of figuring out through complex SQL against multiple tables Database FMMUG18 :: Seattle 26
  27. 27. • 1 CPU for every 100 database connections • Environment of 400 concurrent users, total database connections may be double • 400 concurrent users requires at least 8 CPUs • Consider peak load • Heavy reporting usage will increase database load and requires more database CPU • 2GB SGA memory for every 100 database connections • 400 concurrent users = 8GB of SGA Database FMMUG18 :: Seattle 27
  28. 28. • Tuning the application is sometimes a cross between application and middleware settings. This occurs with both database server and application server • Tuning the database server and then sending it bad queries will still result in poor performance • Make sure any application properties for connecting to the database are set • Use the approved versions of JDBC drives • Use logging best practices – too much SQL logging impacts results The Gray Area FMMUG18 :: Seattle 28
  29. 29. • Tuning the application server and then putting too much load on it will still result in poor performance • Separate functionality into dedicated JVMs (UI, Cron, Report, Integration) • Limit concurrent users to 75 per dedicated UI JVM The Gray Area FMMUG18 :: Seattle 29
  30. 30. • Search Methodologies – Default to “EXACT” • If possible, change WILD card searches to EXACT • Educate users to use % wild card option in search fields • Reduces ‘like’ searches and greatly improves database query times • Do not use leading % wild card character • Set most ALN fields to UPPER • Do not use ‘not in’ or ‘!=‘ (this does a full table scan) • Use ‘in’ or ‘not exist’ Querying/SQL FMMUG18 :: Seattle 30
  31. 31. • Educate users on ad-hoc queries • Check for newly created user queries and optimize • Identify long running reports • Review SQL in reports • Escalations, Conditions • Start Center result sets, KPIs, Doclinks query • List panel ‘order by’ queries • Can remove ‘order by’ in presentation XMLs Querying/SQL FMMUG18 :: Seattle 31
  32. 32. • Tables that contain queries to review • Query – clause column • Condition – expression column • Escalation – condition column • Wfcondition – condition column • Maxrelationship – whereclause column • Maxapps – restrictions and orderby columns • Maxtabledomain – validtnwhereclause and listwhereclause columns Querying/SQL FMMUG18 :: Seattle 32
  33. 33. • Reporting cluster (BROS) • Reporting database • Identify log running reports from report usage and tune them • Identify poor performing ad hoc reports • Scheduled report cron tasks • Execute in cron cluster • Separate these out of UI servers • Ensure long running scheduled reports are not submitted at the same time Reporting FMMUG18 :: Seattle 33
  34. 34. • Property mxe.report.birt/maxconcurrentrun defines how many concurrent reports can run on a given Maximo JVM • Default value is 5 – good starting point • Recommendations • 2* num of CPU • Depends on the complexity of the reports Reporting FMMUG18 :: Seattle 34
  35. 35. • Separate sequential inbound and sequential outbound queues for integrated system • Limit the number of message driven beans (MDBs) on the continuous queue • Exception handling queues • ‘bad’ data redirect out of continuous queue • XML/HTTP instead of Simple Object Access Protocol (SOAP) web services • Less overhead and better performer under load • File import for XML documents containing multiple records Integration Framework FMMUG18 :: Seattle 35
  36. 36. • 50ms or faster round-trip packet response between client and application server • Low bandwidth or high latency network • Citrix or Terminal Server • Compression techniques • HTTP compression • Web server • Hardware compression • Network appliances – Juniper and Riverbed • Provide compression and caching • Gzip compression • Maximo configuration Network FMMUG18 :: Seattle 36
  37. 37. • Acceleration • Caching • MaxAge – enabled by default on the application server • Configuring asynchronous and client side validation can improve the users experience • Good screen design can reduce traffic Network FMMUG18 :: Seattle 37
  38. 38. • Best performance is achieved by using the newest supported Operating Systems and the latest hardware • Robust workstations provide better performance • Limit or prevent some workstation activities and processes • Monitor the network for streaming audio and video • Have only one network link active • Monitor for hung processes and applications Client Workstation FMMUG18 :: Seattle 38
  39. 39. • Task focused screen design – create small screens • Off hours WO generation, Reorder, crons, and reporting • Reduce start center data retrieval • Keep the default start center simple to no data fetch portlets • There can be multiple start centers – the first one displayed should be simple to avoid excessive data fetch • Be sure that queries used on the start centers return small numbers of rows and are well tuned Miscellaneous FMMUG18 :: Seattle 39
  40. 40. • Database connection pooling • Lower properties values • Limit query times • System properties • Limit number of fields on a single screen / develop silo (business unit) based screens with only the fields required for that silo • Configure client side and asynchronous validation to limit real time interaction with the database server Miscellaneous FMMUG18 :: Seattle 40
  41. 41. • Tune DOCLINKS relationships or disable DOCLINKS • Limit the number of objects that can be fetched from the database in a single result set (system properties) • Fetch stop limits • Carefully consider business requirements for frequency of cron tasks and escalations Miscellaneous FMMUG18 :: Seattle 41
  42. 42. • Tune cron tasks and escalations • Adjust start timings to spread the load • Load balance across multiple JVMs • New in Maximo 7.6 – cron task load balancing • Control queries in left hand navigation • Limit the number of queries that display for an application in the side navigation bar under ‘Available Queries’ (system properties) Miscellaneous FMMUG18 :: Seattle 42
  43. 43. • Analyze and clearly define reported problem • Understand what is being reported. “Application is slow” is not a definition. Find out what is slow. See it for yourself if possible • Determine/define what is successful resolution • Do not allow user perception to interfere with a solution. Get a clear definition of what is acceptable so you have a measure of success • Focus on technologies that might impact issue • If users at one plant are affected but users at another plant are not affected, it is likely not a server problem. Focus on items that can impact the affected area Troubleshooting FMMUG18 :: Seattle 43
  44. 44. • Debug in development or test environment if problem is reproducible there • Setup a stand alone application server for debugging Troubleshooting FMMUG18 :: Seattle 44
  45. 45. • Keep Maximo as well as application server logging to minimal level unless investigating a problem • Set everything except Maximo root logger to ERROR • Maximo logging adds 5%+ overhead • WebSphere logs for errors and messages • Clean up log folders from filling up • Watch out for heap dumps as these files are very large • Since logging changes can be applied dynamically, turn logging on when needed and turn it off when done – Logging application Troubleshooting - Logging FMMUG18 :: Seattle 45
  46. 46. • SQL logging to collect all SQL statements • New in Maximo 7.6 – logging marker • If analyzing memory usage • Use verbose GC logging • Web server logs • Database traces and snapshots. Specific database ‘logging’ tools • Network traces/logging Troubleshooting - Logging FMMUG18 :: Seattle 46
  47. 47. • System Properties used as part of logging • Enabled through System Properties application. Dynamic, can be enabled without re-building Maximo EAR file • Performance properties • mxe.mbocount • Capture snapshot intervals of memory usage • Total memory allocated and memory available • Maximo Business Objects (MBOs) loaded • Total concurrent users • Users connected to each JVM in the system • Cron tasks running on JVMs Troubleshooting - Properties FMMUG18 :: Seattle 47
  48. 48.  mxe.mbcount [INFO] [MAXIMO] [] WOSERVICEADDRESS: mbosets (6), mbos (10) [INFO] [MAXIMO] [] WOTAGLOCK: mbosets (2), mbos (1) [INFO] [MAXIMO] [] WOTASKRELATION: mbosets (4), mbos (4) [INFO] [MAXIMO] [] WPITEM: mbosets (3), mbos (3) [INFO] [MAXIMO] [] WPLABOR: mbosets (4), mbos (4) [INFO] [MAXIMO] [] WPMATERIAL: mbosets (4), mbos (4) [INFO] [MAXIMO] [] WPSERVICE: mbosets (3), mbos (3) [INFO] [MAXIMO] [] WPTOOL: mbosets (3), mbos (3) [INFO] [MAXIMO] [] BMXAA6372I - Host name: xxx.xxx.xxx.xxx. Server name: MAXIMO. Cron task name: AssetTopoCacheCron.AssetTopoCacheCron01. Last run: 2018-02-01 15:03:56.119 [INFO] [MAXIMO] [] BMXAA6372I - Host name: xxx.xxx.xxx.xxx. Server name: MAXIMO. Cron task name: AsyncImmediateJobCron.AsyncImmediate. Last run: 2018-02-01 15:06:53.61 [INFO] [MAXIMO] [] BMXAA6372I - Host name: xxx.xxx.xxx.xxx. Server name: MAXIMO. Cron task name: AsyncJobCleanupCron.AsyncJobCleanup. Last run: 2018-02-01 13:48:55.215 [INFO] [MAXIMO] [] BMXAA6372I - Host name: xxx.xxx.xxx.xxx. Server name: MAXIMO. Cron task name: AsyncScheduledJobCron.AsyncScheduled. Last run: 2018-02-01 15:05:56.618 [INFO] [MAXIMO] [] BMXAA6372I - Host name: xxx.xxx.xxx.xxx. Server name: MAXIMO. Cron task name: BBCron.BBCRON1. Last run: 2018-02-01 13:00:58.184 [INFO] [MAXIMO] [] BMXAA6369I - Server host: xxx.xxx.xxx.xxx. Server name: MAXIMO. Number of users: 7. WebClientSessions: (7) [INFO] [MAXIMO] [] BMXAA6370I - Total number of users connected to the system: 7 [INFO] [MAXIMO] [] BMXAA7019I - The total memory is 4294967296 and the memory available is 3428580392. Troubleshooting - Properties FMMUG18 :: Seattle 48
  49. 49. • Performance properties • mxe.db.logSQLTimeLimit • Captures SQL statements that take longer than the specified amount of time to return • mxe.db.fetchResultLogLimit • Captures the number of objects an MBO loads while it is processing • Helps in identifying excessive data fetch • mxe.db.logSQLPlan (Oracle only) • mxe.db.sqlTableScanExclude (Oracle only) Troubleshooting - Properties FMMUG18 :: Seattle 49
  50. 50.  mxe.db.logSQLTimeLimit [INFO] app (null) object (INVOICELINE) :select * from invoiceline where (cstm_invsuspcode='QTY' and invoicenum in (select invoicenum from maximo.invoice where exists (select * from maximo.wfassignment where processname='INVQTYDISC' and ownerid=invoiceid)) and(select sum(invoiceqty*conversion) from maximo.invoiceline i1, maximo.invoice i2 where invoiceline.ponum=i1.ponum and invoiceline.polinenum=i1.polinenum and invoiceline.orgid=i1.orgid and invoiceline.siteid=i1.siteid and i1.invoicenum = i2.invoicenum and i1.orgid = i2.orgid and i1.siteid = i2.siteid and i2.documenttype not in ('CREDIT') and i2.status not in (select value from maximo.synonymdomain where maxvalue='CANCEL' and domainid = 'IVSTATUS')) <= (select 1.05*nvl(sum(quantity),0) from maximo.matrectrans, maximo.poline where matrectrans.ponum=poline.ponum and matrectrans.polinenum=poline.polinenum and matrectrans.orgid = poline.orgid and matrectrans.siteid = poline.siteid and matrectrans.polinenum=invoiceline.polinenum and matrectrans.ponum=invoiceline.ponum and matrectrans.orgid = invoiceline.orgid and matrectrans.siteid = invoiceline.siteid and ((matrectrans.issuetype in ('RECEIPT', 'RETURN') and poline.inspectionrequired=0) or (matrectrans.issuetype in ('TRANSFER', 'RETURN') and poline.inspectionrequired=1)) )) (execution took 336836 milliseconds) Troubleshooting - Properties FMMUG18 :: Seattle 50
  51. 51. Troubleshooting - Properties FMMUG18 :: Seattle 51  mxe.db.fetchResultLogLimit -------FetchResultLogLimit logging starts------ [INFO] [MXServer] [] BMXAA6703I - User Name : MAXUSER [INFO] [MXServer] [] BMXAA6705I - Query : select * from wfassignment where assigncode = 'MAXUSER' and assignstatus in ( 'ACTIVE' ) [INFO] [MXServer] [] BMXAA6706I - MboSet Name : WFASSIGNMENT Reference = psdi.workflow.WFAssignmentSet@e98ec5e9 [INFO] [MXServer] [] BMXAA6707I - MboSet Size : 400 [INFO] [MXServer] [] BMXAA6708I - Fetch count so far : 400 [INFO] [MXServer] [] psdi.util.MXSystemException: BMXAA6709I - Printing StackTrace: java.lang.Exception java.lang.Exception at psdi.mbo.MboSet.fetchMbosActual(MboSet.java:2970) at psdi.mbo.MboSet.fetchMbos(MboSet.java:2806) at psdi.mbo.MboSet.getMbo(MboSet.java:2053) at psdi.mbo.MboSetEnumeration.nextMbo(MboSetEnumeration.java:64) at psdi.workflow.WFAssignmentSet.setOwnerRecordLock(WFAssignmentSet.java:101) at psdi.workflow.WFAssignmentSet.getInboxAssignments(WFAssignmentSet.java:69) at psdi.app.inbxconfig.InbxConfigSet.getAssignments(InbxConfigSet.java:236) at psdi.webclient.controls.InboxPortlet.getAssignments(InboxPortlet.java:81) … [INFO] [mxui103] [] BMXAA6710I - -------FetchResultLogLimit logging ends------
  52. 52. • Fetch stop limit • Enable and use until you reach a stable state. Returns an error to the end user • mxe.db.fetchStopLimitEnabled • mxe.db.fetchResultStopLimit • mxe.db.fetchResultStopLimit.OBJECTNAME • mxe.db.fetchStopExclusion Troubleshooting - Properties FMMUG18 :: Seattle 52
  53. 53. • Enable Connection Pool Watchdog to monitor database connection pool • Enabled in the Logging application • Close long running database connections • Maximo 7.5.0.3 properties introduced • Use database tools to find long running queries and recommended indexes • Test queries through SQL development tools and add required indexes • Always make sure the indexes are added through Maximo Database Configuration to retain during fix pack installation and upgrades Troubleshooting FMMUG18 :: Seattle 53
  54. 54.  Dbconnection watchdog logger [INFO] BMXAA7084I - The DbConnectionWatchDog class has been trying to close the database connection for: 230233001 ms DbConnectionWatchDog:Db Connection reference id=436107 SPID=397 Create time:1302986384636 Life time:230233001 ms Troubleshooting FMMUG18 :: Seattle 54 • Back in logs at start of connection will be stack trace [INFO] BMXAA7084I - The DbConnectionWatchDog class has been trying to close the database connection for: 73000 ms DbConnectionWatchDog:Db Connection reference id=436107 SPID=397 Create time:1302986384636 Create stack trace: psdi.server.DbConnectionWatchDog$ConnectionData.<init>(DbConnectionWatchDog.java:40) psdi.server.DbConnectionWatchDog.addConnection(DbConnectionWatchDog.java:206) psdi.server.ConRef.incrementRefCount(ConRef.java:129) psdi.server.DBManager.getConnectionDetail(DBManager.java:1268) psdi.server.DBManager.getConnection(DBManager.java:1179) psdi.server.AppService.getDBConnection(AppService.java:548) psdi.mbo.MboSet.getNextRecordData(MboSet.java:2794) psdi.mbo.MboSet.fetchMbosActual(MboSet.java:2528) psdi.mbo.MboSet.fetchMbos(MboSet.java:2494) psdi.mbo.MboSet.getMbo(MboSet.java:1821) psdi.mbo.MboSet.isEmpty(MboSet.java:3777) psdi.app.asset.Asset.getParentAsset(Asset.java:7148) psdi.app.asset.Asset.getWarrantyInfo(Asset.java:7082) psdi.app.asset.Asset.getWarrantyInfo(Asset.java:7067) psdi.app.workorder.WO.updateWarrantyContracts(WO.java:9777) psdi.app.workorder.FldWOAssetnum.performWarrantyContractCheck(FldWOAssetnum.java:380) psdi.app.workorder.FldWOAssetnum.action(FldWOAssetnum.java:201) psdi.plust.app.workorder.PlusTFldWOAssetnum.action(Unknown Source)
  55. 55. • Network pings and trace routes from client to Maximo server • Monitor CPU and memory usage • Apply the latest patches Troubleshooting FMMUG18 :: Seattle 55
  56. 56. • Integrity Checker to find Maximo schema problems that can affect applications as well as performance • Integrity Checker can be found in the Maximo tools folder (integrityui) • Integrity Checker should be done in development phase to production phase • LA Test Fix tool • Report of limited availability fixes (one-offs) installed • LA test fix tool can be found in the Maximo tools folder (LATestFixReportWriter) Tools FMMUG18 :: Seattle 56
  57. 57. • IBM Support Assistant (ISA) • Add-on tools for heap and thread analysis • Real world load testing • WebSphere Performance Monitoring Infrastructure (PMI) • Database Utilities • AWR/ADDM Reports • IBM DB2 monitors and snapshots • IBM Data Studio • IBM standalone db2advis and execution plans Tools FMMUG18 :: Seattle 57
  58. 58. • Operating System tools • PerfMon – gather performance metrics on Windows based systems • nmon – gather performance statistics on AIX or Linux based systems • rstatd – gather performance metrics from a UNIX system kernel • sysstat – package for utilities containing the sar, sadf, iostat, mpstat, and pidstat commands for AIX and Linux • vmstat – reports statistics about kernel threads, virtual memory, disks, traps, and CPU activity on UNIX systems Tools FMMUG18 :: Seattle 58
  59. 59. • Bandwidth / Throughput monitoring tools • HTTPWatch – logs and allows inspection of HTTP and HTTPS traffic • Wireshark – network protocol analyzer that can be used to capture network traffic for bandwidth analysis • WinPcap – packet capture and filtering engine used by many network protocol analyzers, including Wireshark Tools FMMUG18 :: Seattle 59
  60. 60. • IBM Thread and Monitor Dump Analyzer for Java • Identification of hangs, deadlocks, resource contention and bottlenecks in Java threads • Classpath • Java and Garbage Collection parameters Tools FMMUG18 :: Seattle 60
  61. 61. • IBM Thread and Monitor Dump Analyzer for Java Tools FMMUG18 :: Seattle 61
  62. 62. • Heap Analyzer • Possible heap leak detection • A graphical tool for discovering possible Java heap leaks Tools FMMUG18 :: Seattle 62
  63. 63. • Heap Analyzer Tools FMMUG18 :: Seattle 63
  64. 64. • Customization Detection Tools • Report that lists all the services, objects, and attribute classes that have been extended • Displays extensions (class customizations) in a class hierarchy structure • Shows percentage customized • Reports on services, objects, and attributes Tools FMMUG18 :: Seattle 64
  65. 65. • Customization Detection Tools Tools FMMUG18 :: Seattle 65
  66. 66. • Performance Analysis Suite • Help analyze performance problems • Plugins • TPAE:Config plugin • Performance white paper compliance checking • Dashboard tab shows a high level result of performance compliance checking result Tools FMMUG18 :: Seattle 66
  67. 67. • Performance Analysis Suite Tools FMMUG18 :: Seattle 67
  68. 68. • Wait tool • Identifies the bottlenecked resources, and shows the code that drives this load • Works in any Java application • No system of agents • Output in an HTML report Tools FMMUG18 :: Seattle 68
  69. 69. • Wait tool Tools FMMUG18 :: Seattle 69
  70. 70. • Maximo Management Interface (MMI) • New in Maximo 7.6 – http://hostname:port/maximo/oslc/members • Integrated into Maximo framework • Real time access to the environment • Extendable • Provides input to monitoring tools • Standardized JSON output • Set of REST APIs that enable HTTP based clients to access information that is related to the current state of Maximo Tools FMMUG18 :: Seattle 70
  71. 71. • Maximo Management Interface (MMI) • The Maximo server processes that are part of the deployment, potentially in a multi-clustered setup • Information about resources, such as the JVM, memory, operating system, application server, JVM threads, database connection pool, class or classloader, MBO count, event topic tree, JMS queue connectivity, and cache information Tools FMMUG18 :: Seattle 71
  72. 72. Tools FMMUG18 :: Seattle 72 • Maximo Management • Interface (MMI)
  73. 73. Application Server IBM WebSphere Tuning (can cause application to hold objects too long if not set correctly) http://www.ibm.com/support/docview.wss?rs=3214&uid=swg21261874 Oracle WebLogic Tuning http://www.ibm.com/support/docview.wss?rs=3214&uid=swg21261853 Using Multiple JVMs to Support Users and Functionality http://www-01.ibm.com/support/docview.wss?uid=swg21329219 Resources FMMUG18 :: Seattle 73
  74. 74. Network Performance Network caching and compression properties http://www.ibm.com/support/docview.wss?rs=3214&uid=swg21262009 Browser Caching (Helps with Wide Area Network -WAN- performance and high latency) http://www.ibm.com/support/docview.wss?rs=3214&uid=swg21292557 Resources FMMUG18 :: Seattle 74
  75. 75. Reporting BIRT Reporting Performance document link Maximo 7.5 https://www-304.ibm.com/support/entdocview.wss?uid=swg21305031 Maximo 7.6 http://www-01.ibm.com/support/docview.wss?uid=swg21693526 Resources FMMUG18 :: Seattle 75
  76. 76. Database Server Performance SQL Server Index Tuning http://www.ibm.com/support/docview.wss?rs=3214&uid=swg21261979 SQL Server Row Versioning http://www.ibm.com/support/docview.wss?rs=3214&uid=swg21440598 Maximo 7.5 on SQL Server Performance http://www-01.ibm.com/support/docview.wss?uid=swg21592716 SQL Server Turning of Page Locking http://www-01.ibm.com/support/docview.wss?uid=swg21268567 Resources FMMUG18 :: Seattle 76
  77. 77. Database Server Performance Oracle Cursor Sharing http://www.ibm.com/support/docview.wss?rs=3214&uid=swg21262959 DB2 Parameter Tuning https://www-304.ibm.com/support/docview.wss?uid=swg21451593 Database Connection Leak Resolution http://www-01.ibm.com/support/docview.wss?uid=swg21622010 How to detect database connection leak https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724- a181d6155e3a/entry/Maximo_How_to_detect_database_connection_leak?lang=en How to solve database connection leak https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-9724- a181d6155e3a/entry/Maximo_How_to_solve_database_connection_leak?lang=en Resources FMMUG18 :: Seattle 77
  78. 78. Application Performance Understanding Search Methodologies http://www-01.ibm.com/support/docview.wss?uid=swg21375684 Start Center Performance http://www-01.ibm.com/support/docview.wss?uid=swg21405898 Improving Performance Using Small User Interface (UI) Screens http://www-01.ibm.com/support/docview.wss?uid=swg21420509 Disable Data Validation http://www-01.ibm.com/support/docview.wss?uid=swg21516856 Resources FMMUG18 :: Seattle 78
  79. 79. Troubleshooting Debug properties http://www-01.ibm.com/support/docview.wss?uid=swg21291250 Understanding the MBOCount Debug Property http://www-01.ibm.com/support/docview.wss?uid=swg21425963 Understanding the logSQLTimeLimit Property http://www-01.ibm.com/support/docview.wss?uid=swg21426051 Understanding the fetchResultLogLimit Property http://www-01.ibm.com/support/docview.wss?uid=swg21426084 Resources FMMUG18 :: Seattle 79
  80. 80. Troubleshooting Collecting Data/Must Gather – General Information http://www-01.ibm.com/support/docview.wss?uid=swg21313647 Collecting Data/Must Gather – Performance http://www-01.ibm.com/support/docview.wss?uid=swg21313341 Resources FMMUG18 :: Seattle 80
  81. 81. Troubleshooting Logging http://www-01.ibm.com/support/docview.wss?uid=swg21264064 Logging Appenders http://www-01.ibm.com/support/docview.wss?uid=swg21446599 Using fetch stop limits to prevent out-of-memory errors http://www- 01.ibm.com/support/docview.wss?uid=swg21687595&acss=danl_3910_web Maximo Performance Monitor Configuration https://www-304.ibm.com/support/docview.wss?uid=swg21448706 Resources FMMUG18 :: Seattle 81
  82. 82. Best Practices Maximo 7.5 Performance Best Practices http://www.ibm.com/support/docview.wss?uid=swg21591070 Maximo 7.6 Performance Best Practices https://www.ibm.com/developerworks/community/groups/service/html/communit yview?communityUuid=a9ba1efe-b731-4317-9724- a181d6155e3a#fullpageWidgetId=W5f281fe58c09_49c7_9fa4_e094f86b7e98 &file=e0291480-2b4f-4366-bb01-e6e7360cd033 Resources FMMUG18 :: Seattle 82
  83. 83. Best Practices Maximo Wiki https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM% 20Maximo%20Asset%20Management Maximo Wiki Performance Page https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM% 20Maximo%20Asset%20Management/page/Performance%20and%20tuning Best Practices for Performance Wiki Page https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM+ Maximo+Asset+Management/page/Best+practices+for+performance Resources FMMUG18 :: Seattle 83
  84. 84. Tools IBM Support Assistant http://www-01.ibm.com/software/support/isa/ IBM Thread and Monitor Dump Analyzer for Java https://www.ibm.com/developerworks/community/groups/service/html/communit yview?communityUuid=2245aa39-fa5c-4475-b891-14c205f7333c Heap Analyzer https://www.ibm.com/developerworks/community/groups/service/html/communit yview?communityUuid=4544bafe-c7a2-455f-9d43-eb866ea60091 Resources FMMUG18 :: Seattle 84
  85. 85. Tools Customization Detection Tool https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IB M%20Maximo%20Asset%20Management/page/Customization%20Detection %20Tool IBM Performance Analysis Suite https://www.ibm.com/developerworks/community/groups/community/perfanalyst Wait Tool https://publib.boulder.ibm.com/httpserv/cookbook/Major_Tools- IBM_WholeSystem_Analysis_Tool_WAIT.html Resources FMMUG18 :: Seattle 85
  86. 86. Tools Maximo Management Interface (MMI) https://www.ibm.com/support/knowledgecenter/SSLKT6_7.6.0/com.ibm.mam.doc/t roubleshooting/c_mmi.html https://www.ibm.com/developerworks/community/blogs/d6565698-694d-442b- a26b- c89892fa0c02/entry/Maximo_Management_Interface_MMI_API_overview_and_ how_to_use_it?lang=en https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Wb8 e8390134d1_4377_be1e_cf6a57f4ea75/page/Maximo%20Management%20Inte rface Resources FMMUG18 :: Seattle 86
  87. 87. Tools HttpWatch https://www.httpwatch.com/ WireShark https://www.wireshark.org/ WinPcap https://www.winpcap.org/ Resources FMMUG18 :: Seattle 87
  88. 88. Thank You FMMUG18 :: Seattle 88

×