IBM Maximo Understanding IBM Maximo Architecture Configuration and
IBM Maximo Understanding IBM Maximo Architecture Configuration and Performance © 2009 IBM Corporation
IBM Maximo Overview J 2 EE/Java Application Architecture The TPAE Architecture Maximo Reliance Pyramid Network – LAN / WAN – Resolving Issues Hardware – Minimum Requirements – Common Problems – Soft and Hard Partitioning Services – J 2 EE Services – Database Services – Report Services Maximo – Fine Tuning Questions 2 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Considerations for this presentation 1. Because of the approach of this presentation, some technologies will be covered from different perspectives (Example Network tuning and Maximo tuning for the network) 2. Every environment is different and exact tuning solutions require and analysis of a specific environment 3 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo J 2 EE Application Architecture Java 2 Platform Enterprise Edition Application Architecture © 2009 IBM Corporation
IBM Maximo Quick overview of Java Technologies Java code is written in a text style editor in semi English terms. Source text files (. java) are compiled using a java compiler (javac) to become class files (. class) Class files are really a collection of tokens that execute in a Java Virtual Machine (JVM) JVMs are written for each computer environment (OS, Processor). Since it is the JVM that is running on the computer equipment, Java code does not have to be recompiled for different computers. The same code runs in different JVMs 5 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Quick overview of Application Servers 1. Java code can execute in a JVM without the use of an Application Server 2. Application Servers were designed to simplify JVM management and provide additional functionality 3. Application Servers provide deployment, logging, memory management and other services 4. Additional functionality provided by most Application Servers includes JDBC pooling, JMS Queues, and Load Balancing 6 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Technology Relationships of Java Programs Java Code (Maximo and others) Contains the application logic Java Virtual Machine (IBM, Sun, and others) Executes the Java Code Application Server (IBM Web. Sphere or Oracle Web. Logic) Manages the JVMs The Application Server starts => The JVM starts => The Java code starts So Maximo relies on the JVM to run which relies on the Application Server to run which relies on the Operating System to run 7 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo External Technology Relationships Java Code Contains the application logic Java Virtual Machine Executes the Java Code Application Server (IBM Web. Sphere or Oracle Web. Logic) Manages the JVMs External Report Technologies (Actuate) Manages the reporting for the application External DB Technologies (DB 2, Oracle, SS) Manages the data from the application 1. Java code can have reliance on external technologies in addition to the Java relationships. In Maximo’s case, it relies on external database technologies and may rely on external report technologies. 8 2. Maximo does| not use. Presentation Application Server JDBC© 2009 IBM Corporation Maximo Architecture Premium Support
IBM Maximo Resolving J 2 EE configuration issues 1. Each layer of technology relies on the layer it resides in 2. J 2 EE Layers can be reviewed separate from external technologies 3. External technologies such as database and report can be reviewed separate from J 2 EE 4. Both J 2 EE and external technologies may have common reliance such as network 9 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo The TPAE Architecture Tivoli Process Automation Engine (TPAE) Architecture © 2009 IBM Corporation
IBM Maximo What is TPAE? The Tivoli Process Automation Engine provides basic services to applications that are built on it’s architecture Functionality such as database connectivity, email listeners, cron tasks, workflow, security and much more is built into TPAE and provided to applications Applications that use TPAE have a single point of troubleshooting for core issues 11 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo The IBM Maximo Reliance Pyramid Tips for finding performance bottlenecks © 2009 IBM Corporation
IBM Maximo The Maximo Reliance Pyramid 13 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo The Approach Used For Troubleshooting 1. Reliance on other technologies complicates 2. To simplify troubleshooting, start with the least reliant technology and build towards the most reliant 3. Using the bottom up approach to the reliance pyramid, troubleshooting starts with network and progresses upward. 1. Maximo 2. Services 3. Hardware 4. Network 14 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Networks – The Ground Rules Maximo uses about 32 kbps in bandwidth per concurrent user Maximo performs best in 50 ms or less latency – It takes thousands of packets to display a single User Interface (UI) screen – 1000 * 50 ms = 50, 000 ms or 50 seconds 15 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Networks – Bandwidth is the amount of data that can be transmitted simultaneously Using a 56 kbps connection to transmit 512 kbps of data will…. fill up your “tubes” Maximo uses approximately 32 kbps per user. Multiply 32 * number of concurrent users to determine required available bandwidth 16 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Networks – Latency is the amount of time in milliseconds that it takes for a packet to reach its destination and a receipt to be sent back to the sender When too much data is sent through a connection, it is put in a queue and transmitted as bandwidth becomes available Queued data takes longer to transmit because of the wait time and results in higher latency Since latency is a key factor in Maximo performance, proper bandwidth must be allocated in order to ensure maximum performance 17 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo On The Network Maximo Application Server 18 Database Server Maximo Architecture | Premium Support Presentation Report Server © 2009 IBM Corporation
IBM Maximo Networks – Wide Area Networks (WAN) 19 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Networks – Quick Answers Two simple commands to help determine performance ping tracert Senator Ted Stevens explains network communication best 20 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Networks – Objects vs. Packets 1. Two objects can be related to packets: 1. Object 1 = 51 bytes and can be placed in 1 packet 2. Object 2 = 2, 330 bytes and can be placed in 2 packets 2. How does this translate into performance? 1. It takes 100 copies of object 1 to make up 1 copy of object 2 2. Object 1 takes 98 more packets to transfer and cover the same area as object 2 3. At 50 ms latency, object 1 will fill the area in 5 seconds while object 2 will only take 1/10 of a second 21 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Networks – Maximo vs. Web Pages 1. Images and objects (Application Designer) 1. Web Pages use larger images for static content 2. Maximo breaks images into smaller objects 2. Validation (Ajax type technology) 1. Web pages typically validate at submit time 2. Maximo validates and secures at field level during input 3. User Interface and Data Manipulation (ad hoc search) 1. Web pages typically focus on a specific job 2. Maximo provides a high level of customization capability and user flexibility to access and manipulate large quantities of data 22 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Networks – Optimization Technologies Citrix / Terminal Server (Client Emulation) Junniper, Expand, & similar – (Single Device Acceleration / Caching, HTTP Header Compression) Riverbed & similar – (Multi-device Acceleration / Caching, Compression, HTTP Headers) 23 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo The Maximo Reliance Pyramid - Networks You are here When network tuning is complete, the next step is Hardware 24 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Hardware 1. Hardware is measurable & relatively easy to define 2. Maximo requires a minimum of 900 MHz processors, enough memory to support the Java JVM, and network connectivity (a NIC card) 3. If these minimums are not met, Maximo may still run but is not supportable 4. Check documentation for specific release requirements 25 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Hardware - Operating System Relationships 1. Hardware is the physical equipment (processor, memory, storage devices, monitors) that software runs on 2. Operating systems manage the hardware and how it is used by software programs 3. All calls and uses of hardware processed by the operating system 4. If the operating system runs poorly then the software running in it will run poorly 26 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Hardware – Common Windows OS Problems Mapped drives requiring network access for logs & attached documents When building/deploying EAR files, remote source files may cause the build/deploy process to perform poorly Operating System swap space and memory management Disk space / quotas Configuration of the Network Interface Card (NIC) Antivirus software on the server set too aggressively Windows defaults to a more open security architecture than Unix but can be locked down 27 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Hardware – Common Unix OS Problems The #1 OS problem experienced in Unix is privileges! Unix defaults to a more security architecture than Windows does but privileges can be granted. If access to required files is denied, Maximo may not run properly Mounted drives requiring network access for logs and attached documents Operating System temp space and memory management Unix Configuring X-Windows, XVFB, and the display variable on the server Disk space / quotas for logs & attached documents Unix controls upper limits on all types of connections such as DB connections, open files, logins etc… These can prevent proper function. (set “ulimit” for open files and memory) 28 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Hardware – Partitioning Physical servers can be divided into physical partitions. Example: 4 processors, 4 GB memory, can be 4 separate hard partitions acting as 4 separate computers, each one independent (IBM LPAR, Sun Domain, etc) Physical partitioning usually applies to large Unix based systems Soft partitions such as VM Ware and Microsoft VM are more PC oriented. VM Ware is not supported for production environments until release 7. 1. 1. 4 29 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo The Maximo Reliance Pyramid - Hardware You are here When hardware tuning is complete, the next step is Services 30 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Services – How they affect Maximo is a software product written in Java that pulls together many types of technology to empower users If a service is not performing well, that functionality of Maximo will not perform well Tuning services is heavily reliant on recommendations from the manufacturer of that product Services include J 2 EE, JVM, Database, Reporting and others that Maximo relies on 31 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Services – How they affect Maximo If database queries run slowly then Maximo performance will degrade due to waiting for database response If the J 2 EE server (IBM Web. Sphere or BEA Web. Logic) does not perform well, Maximo running inside the J 2 EE server cannot perform well If the JRE / JVM that the J 2 EE server uses does not perform well, Maximo cannot perform well If the report server does not perform well, reports may be slow and other areas of Maximo may be affected 32 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Services – Database - How they affect Maximo DB 2 has a cost driven optimizer , executing the RUNSTATS utility will update the catalog and improve performance Maximo does not use bind variables. Oracle will perform better if cursor_sharing is set to similar or force In Oracle, more SGA is better, Oracle for Windows may have memory limitations SQL Server uses memory page level locking by default. High concurrent user counts can cause database locks as a result. SQL Server will perform better if row level locking is enabled Any database platform will perform better if indexing has been tuned for your particular use 33 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Services – J 2 EE Services - How they affect Maximo If the J 2 EE server (IBM Web. Sphere or BEA Web. Logic) or the JVM supporting Maximo does not perform well, Maximo cannot perform well Web. Sphere should have cache settings and TCP/IP settings tuned to perform well Web. Logic should have threads tuned to perform well HTTP servers and JVMs be deployed in sufficient numbers to support incoming requests and should be load balanced Documents 1261874 & 1261853 Web. Sphere Tuning - http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21261874&loc=en_US Web. Logic Tuning - http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21261853&loc=en_US 34 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo The Maximo Reliance Pyramid - Services You are here When service tuning is complete, the next step is Maximo 35 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Tuning – Common Performance Problems Network Issues described earlier Too many users on too few JVMs Minimal training for end users causing improper use Configuration choices at implementation time Memory leaks Databases not properly tuned Log Overkill 36 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Tuning – Network Properties Maximo 6. 1 built in compression – (Software Compression / Gzip) Maximo 6. 1 built in caching – (Software Caching / max-age) Document numbers 1262009 & 1292557 http: //www-1. ibm. com/support/docview. wss? rs=3214&context=SSLKT 6&uid=swg 21262009&loc=en_US http: //www-1. ibm. com/support/docview. wss? rs=3214&context=SSLKT 6&uid=swg 21292557&loc=en_US 37 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Tuning – Concurrent Users Maximo should be clustered and load balanced to maintain less than 50 concurrent users per instance 50 users is a guideline not a hard number. 50 users logged in and not doing anything is not the same as 50 users run in a Load Runner script hammering the system Performance testing scripts should include wait times, different users, and different tasks to ensure a more real world experience Be prepared to add more instances if performance is not as targeted. Document 1329219 http: //www-01. ibm. com/support/docview. wss? rs=3214&context=SSLKT 6&uid=swg 21329219&loc=en_US 38 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Tuning – Minimal Training Maximo is very flexible and often has more than one way to accomplish a task Untrained users often choose an approach that may be less than optimal Common tasks should be reviewed by knowledgeable staff to fine tune processes Maximo searching is very powerful but if misused, can impact performance for all users 39 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Tuning – Configuration Choices Search functionality defaults to the most flexible searching method but burdens the database server. Search methodologies include: • Wildcard (default) • Exact • Text • None User loads, type of work and user training may dictate changing the default search methodology A common implementation approach is to create catch all screens for users. More smaller screens can improve performance over larger crowded screens 40 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Tuning – Memory Leaks All programs have bugs Some memory leaks may be related to invalid program data (example parent/child locations set as the same value causing a loop) Some bugs may be related to custom coding Memory and MBO’s will continue to grow and not release if there is a memory leak – Documents 1291250 & 1326774 • 07 Apr 2008 11: 14: 22: 622 [INFO] WORKORDER: mbosets (272), mbos (306) • 07 Apr 2008 11: 15: 22: 651 [INFO] WORKORDER: mbosets (278), mbos (312) • 07 Apr 2008 11: 16: 22: 690 [INFO] WORKORDER: mbosets (380), mbos (432) • 07 Apr 2008 11: 17: 24: 708 [INFO] WORKORDER: mbosets (435), mbos (489) • 07 Apr 2008 11: 18: 24: 928 [INFO] WORKORDER: mbosets (686), mbos (812) • 07 Apr 2008 11: 19: 25: 101 [INFO] WORKORDER: mbosets (847), mbos (939) • 07 Apr 2008 11: 20: 26: 399 [INFO] WORKORDER: mbosets (942), mbos (1028) http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21291250&loc=en_US http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21326774&loc=en_US 41 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Tuning – Databases Maximo is shipped for generic use. A specific implementation requires specific index and database tuning Tuning the database will involve a good understanding of the database environment as well as the ways Maximo is used in a given environment If Maximo is more focused on purchasing, tuning work order tables and indexes will probably not help Use Maximo logging properties to identify problems Document 1291250 http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21291250 42 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Tuning – Database (SQL Server 2005) SQL Server 2005 tuning parameters • mxe. db. disableservercursor=Y • mxe. db. resultsettype=TYPE_FAST_FORWARD • mxe. db. fetchsizeuse=Y • mxe. db. fetchsize=40 • mxe. db. optionuse = Y • mxe. db. optionnum=1000 • mxe. db. sqlserver. Prefetch. Rows=200 Note: For Maximo releases > 6. 1 & SQL Server 2000, these values are different Documents 1268567, 1296072, 1313428 http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21268567 http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21296072 http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21313428 43 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Tuning – < 6. 2 Database (SQL Server 2000) Use SQL Server tuning parameters to manage cursor usage • mxe. db. disableservercursor=Y • mxe. db. resultsettype=TYPE_SCROLL_INSENSITIVE • mxe. db. fetchsizeuse=Y Note: For Maximo releases > 6. 1 & SQL Server 2000, these values are different Documents 1268567, 1295983, 1313428 http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21268567 http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21295983 http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21313428 44 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Tuning – > 6. 1 Database (SQL Server 2000) Use SQL Server tuning parameters to manage cursor usage • mxe. db. disableservercursor=Y • mxe. db. resultsettype=TYPE_SCROLL_INSENSITIVE • mxe. db. fetchsizeuse=Y • mxe. db. fetchsize=40 • mxe. db. rowcount=15000 • mxe. db. optionuse=N Note: For Maximo releases < 6. 2 & SQL Server 2000, these values are different Documents 1268567, 1295983, 1313428 http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21268567 http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21295983 http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21313428 45 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Tuning – Oracle Use Oracle logging properties to identify problems Ensure that Oracle has enough SGA Ensure that Oracle is set to: Cursor_Sharing=similar Ensure that Oracle is upgraded to 9. 2. 0. 8 or later Ensure that Oracle is set to Cost Based optimization http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21262180 http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21262959 46 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Tuning – Logging Setting verbosity 9 or debug mode makes finding a problem in a log like a needle in a haystack Setting verbosity 9 or debug mode causes performance problems, impacts disk space and may cause the log to roll before the issue can be captured Minimizing logging can impact problem resolution times. Typical logging should be set at verbosity 3 and per document 1291250 for general runtime. Use common sense when logging for a suspect issue Debug Logging - http: //www-1. ibm. com/support/docview. wss? rs=3214&uid=swg 21291250&loc=en_US 47 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo – Tuning and Troubleshooting 1. Use the Maximo debug parameters to ensure that SQL is performing well 1. mxe. db. log. SQLTime. Limit (5. 2 P 02 A and above) 2. mxe. db. log. SQLPlan (6. 0 P 01 and above - Oracle) 3. mxe. db. sql. Table. Scan. Exclude (6. 0 P 01 and above - Oracle) Use the debug parameters to ensure that memory is performing well – mbocount (5. 2 P 05 and above - different implementations) – mxe. db. fetch. Result. Log. Limit (5. 2 P 02 A and above) Document numbers 1291250 & 1326774 http: //www-01. ibm. com/support/docview. wss? rs=3214&context=SSLKT 6&uid=swg 21291250&loc=en_US http: //www-01. ibm. com/support/docview. wss? rs=3214&context=SSLKT 6&uid=swg 21326774&loc=en_US 48 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Important Information to Take Away http: //www-1. ibm. com/software/sysmgmt/products/support/IBMMaximo. Asset. Management. html Or go to http: //www. ibm. com and enter the following in the search field (include the quotes) "IBM Maximo Asset Management Support" This link is the key to finding good information on Maximo Web. Sphere Tuning - 1261874 Gzip / max-age – 1262009 Oracle performance - 1262959 & 1262180 max-age 1292557 SQL Server 1268567 SQL Server 2000 1295983 & 1313428 SQL Server 2005 1296072 Debug logging 1291250 Type the document reference number into the search criteria 49 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
IBM Maximo Questions 50 Maximo Architecture | Premium Support Presentation © 2009 IBM Corporation
- Slides: 50