Front cover WebSphere RFID Premises Server 6.0.0.1 Tuning Guide Tune WebSphere Premises Server 6.0.0.1 for optimal performance Analyze response time data for capacity planning purposes Learn by using RFID load scenarios and test cases Scott Snyder Anne Ryan ibm.com/redbooks Redpaper International Technical Support Organization WebSphere RFID Premises Server 6.0.0.1 Tuning Guide December 2007 REDP-4399-00 Note: Before using this information and the product it supports, read the information in “Notices” on page v. First Edition (December 2007) This edition applies to Version 6.0.0.1 of IBM WebSphere® RFID Premises Server. © Copyright International Business Machines Corporation 2007. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .v Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii The team that wrote this Redpaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Chapter 1. Load scenarios and test cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Understanding the load scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Processing modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Generating load profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Analyzing load data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Analyzing pallet and case tag response times . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 3 4 4 Chapter 2. Performance tuning the environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1 Understanding the environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Application server tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Administrative tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Data transformation services tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.5 Additional Notes: JVM max heap size limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.6 WebSphere MQ tuning parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.7 Database server tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.7.1 IBM DB2 database parameter tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.7.2 Oracle database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.7.3 Other database considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.8 Network tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.8.1 Windows networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Appendix A. Environment configuration for performance tunings . . . . . . . . . . . . . . . 13 A.1 Required fix packs and e-fixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 A.2 Performance environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IBM Redbooks publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How to get IBM Redbooks publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . © Copyright IBM Corp. 2007. All rights reserved. 17 17 17 17 18 iii iv WebSphere RFID Premises Server 6.0.0.1 Tuning Guide Notices This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A. The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. COPYRIGHT LICENSE: This information contains sample application programs in source language, which illustrate programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. © Copyright IBM Corp. 2007. All rights reserved. v Trademarks The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: Redbooks (logo) DB2® IBM® ® Lotus® Rational® Redbooks® WebSphere® Workplace™ Workplace Forms™ The following terms are trademarks of other companies: Oracle, JD Edwards, PeopleSoft, Siebel, and TopLink are registered trademarks of Oracle Corporation and/or its affiliates. Java, JSP, JVM, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. Linux is a trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. vi WebSphere RFID Premises Server 6.0.0.1 Tuning Guide Preface The purpose of this IBM® Redpaper is to provide guidelines for both capacity planning and base parameter and application tuning for IBM WebSphere® RFID Premises Server V6.0.0.1. Tuning and capacity are affected by many factors, including the workload scenario and the performance test environment. For tuning, the objective of this Redpaper is not to recommend the use of the specific set of parameters, but to report the parameters that made the most performance impact in our testing. When tuning your individual systems, begin with a baseline test and monitor the performance statistics to determine if any parameters should be added or changed. This IBM Redpaper provides: A description of the workload scenario that was used to determine the optimized settings Measurement methodology and data analysis considerations for determining response times for pallet and case tag reads Performance tuning hints for configuring resources to scale WebSphere RFID Premises Server 6.0.0.1, Data Capture and Delivery, and the required backends to achieve optimal performance Sample network topologies that were used for determining the performance of WebSphere RFID Premises Server 6.0.0.1 and Data Capture and Delivery This Redpaper is intended for IT specialists and developers who develop and deploy solutions for WebSphere Premises Server V6.0.0.1. The team that wrote this Redpaper This Redpaper was produced by a team of specialists from around the world working at the International Technical Support Organization, Rochester Center. Scott Snyder is a Senior Performance Engineer in the Sensors and Actuators Group within the AIM division. He has over 10 years of software development and performance measurement and analysis experience at IBM. He has been actively involved in finding and resolving performance issues in WebSphere Premises Server, WebSphere Application Server, WebSphere Portal Server, Lotus® Workplace™, Lotus Workplace Forms™, and many other products in AIM and WPLC divisions. He also served as JSP™ development lead for WebSphere Application Server. He holds a Bachelors Degree in Electrical Engineering from Cooper Union and has extensive graduate experience from Cornell University. He has written extensively about JSPs and performance measurement methodology, as well IBM Rational® Performance tooling. Anne Ryan is a Software Engineer for the WebSphere Portal L2 Security Team. She has four years of experience with IBM, including customer support, demo development, and functional, system, and performance test. Anne holds a Bachelors degree in Computer and Systems Engineering and Computer Science from Rensselaer Polytechnic Institute and will earn her Masters degree in Engineering Management from Duke University in 2008. Her © Copyright IBM Corp. 2007. All rights reserved. vii areas of expertise include product testing and support of WebSphere Portal. She has written extensively on IBM pervasive software and RFID solutions. Thanks to the following people for their contributions to this project: IBM Software Group: Samuel Camut Kristina Gore Sharda Nandula Courtney P. Stewart Adam Webster Become a published author Join us for a two- to six-week residency program! Help write an IBM Redbook dealing with specific products or solutions, while getting hands-on experience with leading-edge technologies. You will team with IBM technical professionals, IBM Business Partners, or clients. Your efforts will help increase product acceptance and customer satisfaction. As a bonus, you will develop a network of contacts in IBM development labs and increase your productivity and marketability. Find out more about the residency program, browse the residency index, and apply online at: ibm.com/redbooks/residencies.html Comments welcome Your comments are important to us! We want our papers to be as helpful as possible. Send us your comments about this Redpaper or other IBM Redbooks® publications in one of the following ways: Use the online Contact us review IBM Redbooks publication form found at: ibm.com/redbooks Send your comments in an e-mail to: redbook@us.ibm.com Mail your comments to: IBM Corporation, International Technical Support Organization Dept. HYTD Mail Station P099 2455 South Road Poughkeepsie, NY 12601-5400 viii WebSphere RFID Premises Server 6.0.0.1 Tuning Guide 1 Chapter 1. Load scenarios and test cases This chapter describes a set of load scenarios and test cases that you can use in a deployment of WebSphere Premises Server 6.0.0.1. These scenarios were optimized by applying the tuning recommendations described later in this Redpaper. A thorough understanding of these test cases and the way that the load was generated is critical to applying these tuning options for optimal performance in your deployment. This chapter contains: Understanding the load scenario Processing modes Generating load profiles Analyzing load data © Copyright IBM Corp. 2007. All rights reserved. 1 1.1 Understanding the load scenario This burst mode scenario simulates the physical situation of several pallets of items passing by a single reader at one time. Both pallet and case tags are detected only when the pallets of items are in proximity of a reader. For this scenario, we have nine pallet tags and 300 case tags sent in a burst at a rate of 100 tags per second. There are 10 groups of 30 case tags separated by a pallet tag as shown in Figure 1-1. This set of tags is sent in approximately three seconds (309 tags / 100 tags per second). 309 tags / cycle 100 tags/sec within cycle 30 case tags 9 Pallet tags Figure 1-1 Pattern of tags that make up the burst of tags sent in the burst mode scenario These bursts occur at random times between 30 and 90 seconds, averaging 60 seconds, which makes the average rate at which tags are emitted: 309 total tags / (3.09 seconds + 60 seconds) = 4.90 tags per second (on average) burst time wait time You can see this cycle of tag bursts in Figure 1-2 (not drawn to scale). Cycle ~3seconds Time between cycles 30-90 seconds Figure 1-2 Cycle of tag bursts showing think time All of the data in this document has been taken with a simulated reader running under burst mode. 1.2 Processing modes The detected tags are processed in the Data Capture and Delivery component of WebSphere RFID Premises Server 6.0.0.1. One of the processing options allows groups of tags to be aggregated and transmitted to the message queue as a single tag message. For the measurements discussed in this document, the burst of 309 tags (case and pallet) are aggregated into a single tag message. This aggregated message is transmitted along with 2 WebSphere RFID Premises Server 6.0.0.1 Tuning Guide the individual pallet messages, so that the 309 detected tag events (300 case events and nine pallet events) are converted into 10 tag messages (nine pallet messages and one aggregated message) that are placed on the message queue. By performing aggregation, Data Capture and Delivery reduces the number of messages placed on the message queue component. This aggregation also reduces the communication requirements of the Data Capture and Delivery component; however, the WebSphere RFID Premises Server running on WebSphere Application Server must expand the aggregated tag message so that each tag event can be processed and persisted appropriately. 1.3 Generating load profiles In order to stress the WebSphere RFID Premises Server 6.0.0.1, the test system is subjected to an increasing amount of reader traffic. This is done by having the load generator start generating load by simulating a small number of readers. After holding at that load level for approximately 20 minutes (22 minutes, with the initial two minutes being used to stabilize the system at the new higher load level), more simulated readers are added. This pattern of adding new reader traffic periodically is continued until the system can no longer respond appropriately. For example, a load-related functional failure might have occurred or response times might have increased in value and are no longer acceptable. Figure 1-3 is a representation of the number of virtual readers generating load versus time. Typically, we add four virtual readers at a time, because we are adding one additional reader on each of the four load generators at each time interval. Figure 1-3 Load profile showing number of virtual tag readers used for duration of the load measurement Chapter 1. Load scenarios and test cases 3 1.4 Analyzing load data After we apply load to the system by generating simulated tag reads, we need to obtain data that corresponds to the state of the running server application and the hardware platform that is executing the code. Some of this information is system-related, such as the percent CPU busy, memory consumption, and disk utilization. However, from a user’s point of view, the most important metric is system response time. Response time is a measure of how efficiently tag reads are being read and processed by WebSphere Premises Server 6.0.0.1 and is the metric that directly relates to the measurement of the performance of a server application. 1.4.1 Analyzing pallet and case tag response times It is difficult to obtain exact response time metrics in our measurement environment for several reasons. The CHUMP protocol that our load generation software supports (and that is supported by some versions of the SamSYS reader) does not contain a unique identifier associated with the tag read event, and, as a result, identifying a specific read event is difficult. When a tag read event is generated, it is logged by the load generation software. When a tag is processed by WebSphere RFID Premises Server 6.0.0.1, it is configured to always reply with an error, or “red light” condition, which is sent back to the reader or, in our case, the load generation software. This “red light” event is detected by the load generation software and recorded in the log as well. Because the tag read and “red light” response are not occurring on the same thread, as they do in a Web browser, there is no way of correlating a specific tag read with the corresponding “red light” response from WebSphere RFID Premises Server. Response times for this study were obtained by extracting tag read and “red light” timestamps from the log files created by the load generator software. Because there is no specific correlation between the two timestamps, we assume that tag reads and returned “red lights” occur in the same order. While this assumption is true in a majority of the tag reads, it might not always be true, specifically in the case of a tag read that takes significantly longer than the ones following it. In that situation, “red light” responses for some tag reads might be returned before the “red light” for the tag read that preceded it. At the moment, there is no way to determine if the “red light” responses are in the same order as the tag reads that generated them. If long processing times occur when the server is under high stress, then the response time data recorded prior to when the server is at capacity should be reasonably accurate. However, the data recorded when the server is near or at capacity can become unreliable or incorrect. 4 WebSphere RFID Premises Server 6.0.0.1 Tuning Guide 2 Chapter 2. Performance tuning the environment There are several applications that are part of the runtime path of WebSphere Premises Server 6.0.0.1. To achieve optimal performance, each of these applications, as well as the network and operating system, must be tuned. This chapter describes the tunings that were used in the IBM Performance Lab to achieve optimal performance for the scenarios and load conditions described in Chapter 1. This chapter contains: Understanding the environment Application server tuning Administrative tuning Data transformation services tuning WebSphere MQ tuning parameters Database server tuning Network tuning © Copyright IBM Corp. 2007. All rights reserved. 5 2.1 Understanding the environment WebSphere RFID Premises Server 6.0.0.1 can make use of several additional servers to provide its functionality. In our test environment, there is a database server in addition to the premises server itself. For maximum performance, the different backend servers should reside on separate servers from the WebSphere RFID Premises Server. The primary benefit of having such a configuration is to avoid resource contention from multiple servers residing on a single server. Backend servers sharing the WebSphere RFID Premises Server application resources would reduce the achieved throughput. The backend server for WebSphere RFID Premises Server 6.0.0.1 in our configuration is a remote database server for the WebSphere RFID Premises Server database (IBMRFID). 2.2 Application server tuning Because of its close relationship with the base WebSphere Application Server product, tuning the WebSphere RFID Premises Server application server entails tuning WebSphere Application Server. This section does not cover every possible tuning parameter available for WebSphere Application Server. Instead, we present recommendations stemming from performance impacts experienced by our team. For more details about tuning WebSphere Application Server, see the “Tuning performance” section in the WebSphere Application Server Information Center located at: http://www.ibm.com/software/webservers/appserv/was/library/ The settings in Table 2-1 on page 7 are based on our experience with the Benchmark Work Load. 6 WebSphere RFID Premises Server 6.0.0.1 Tuning Guide Table 2-1 Tuning parameters: Premises Server Parameter Setting Additional Details Java™ Virtual Machine heap size 256 MB or more Set the initial JVM™ heap size to 256 MB (-Xms256M). Set the maximum JVM heap size to 1024 MB (-Xmx1024M). Also, remember that the value for the JVM heapsize is directly related to the amount of physical memory for the system. Never set the JVM heap size larger than the physical memory on the system. Setting parameters: a. Log on to WebSphere Administrative Console and click Servers → Application Servers → server1 → Server Infrastructure: Java and Process Management → Process Definition → Java Virtual Machine b. Set the following parameters: i. Initial Heap Size ii. Maximum Heap Size Note: See 2.5, “Additional Notes: JVM max heap size limits” on page 8 for more information. Message Listener Service Settings to be changed with other system parameters Check the box to enable verbose garbage collection. See 2.6, “WebSphere MQ tuning parameters” on page 9, which is provided later in this document for all WebSphere MQ settings. 2.3 Administrative tuning Table 2-2 shows you the tunings that you must apply to the WebSphere Premises Server 6.0.0.1 application through the Premises Administrative console. Table 2-2 Non-application server Premises Server configuration Action Additional details Disable messages from TAG.MONITOR.OUT 1. Select Event Templates from the left navigation pane in the WebSphere RFID Premises Server Administrative Console. 2. Click View Template Properties for the tag_read_external event template. 3. Remove tagmonitor.out.channel from the list of selected channels. 4. Click Update Event Template. 5. Open the premises.properties file and modify the value of the com.ibm.rfid.applping.shortcut property to false. 6. (This might be false by default.) 7. Restart WebSphere Application Server. Chapter 2. Performance tuning the environment 7 Action Additional details Set up tag conversion Edit the premises.properties file with these changes. Uncomment and modify the following properties: com.ibm.rfid.premises.event.tagread.bridgeEPCConversion=false com.ibm.rfid.premises.event.tagread.primary.epcformat=id_uri com.ibm.rfid.premises.event.tagread.secondary.epcformat=raw_uri Edit the bridge.properties file located in the RFID_HOME\dts directory, where RFID_HOME is the installation path of WebSphere RFID Premises, with the following changes: 1. Comment out the ALE Tag Read Event Flow route (Route 8). 2. Change “raw:flow.3.transformation.0.input.message.epcprimaryfmt=none” to ”none”. 2.4 Data transformation services tuning Table 2-3 shows you the JVM parameters that can be used to modify memory utilization and garbage collection monitoring for the Data transformation service. Table 2-3 QData transformation Action Additional details Increase minimum and maximum heap size Open the dts.bat file found in the RFID_HOME\dts directory. Change the minimum and maximum memory of RFID Data Transformation from 64 to 256: "%JCLPATH%\java" -Xmx256M -Xms256M -gcpolicy:optavgpause -Xlp %VMOPTIONS% -jar org.eclipse.osgi_3.2.2.R32x_v20070118.jar -console @goto javahome Instead of: "%JCLPATH%\java" -Xmx64M -Xms64M -Xgcpolicy:optavgpause -Xlp %VMOPTIONS% -jar org.eclipse.osgi_3.2.2.R32x_v20070118.jar -console -verbosegc @goto javahome To enable verbose garbage collection statistics Add the “-verbose:gc” option immediately after the memory settings and redirect standard errors to a file. For example: %JCLPATH%\java" -Xmx256M -Xms256M -verbose:gc -Xgcpolicy:optavgpause -Xlp %VMOPTIONS% -jar org.eclipse.osgi_3.2.2.R32x_v20070118.jar -console 2>../logs/stderr.log 2.5 Additional Notes: JVM max heap size limits When setting the heap size for an application server, remember to: Make sure that the system has enough physical memory for all of the processes to fit into physical memory, plus enough for the operating system. When more memory is allocated 8 WebSphere RFID Premises Server 6.0.0.1 Tuning Guide than the physical memory in the system, paging will occur, and this can result in poor performance. After doing any tuning of heap sizes, monitor the system to make sure that paging is not occurring. As just mentioned, paging can cause poor performance. 32-bit operating systems have an address space limit of 4 GB, regardless of the amount of physical memory in the system. This limits the maximum size of each individual process in the system. In addition, some operating systems restrict the size of processes to be even less than this limit: – Many versions of Windows® limit processes to 2 GB in size; you can find more information at: http://support.microsoft.com/default.aspx?scid=kb;en-us;555223 – Many 32-bit Linux® kernels default to a 2 GB limit for processes The address space limit further restricts the size of the JVM process. If the process grows larger than the limit imposed by the operating system, it might terminate unexpectedly. For more information, refer to the WebSphere Application Server Information Center. 2.6 WebSphere MQ tuning parameters Table 2-4 shows you the tuning parameters that need to be changed for efficient usage of WebSphere MQ. This requires changes to a property file, as well as changes through the WebSphere Application Server Administrative Console. Table 2-4 Queue configuration Action Additional details Change the number of persistence and task queues to 1 In the RFID_HOME\premises\premises.properties file, change the following properties: com.ibm.rfid.premises.multipersistence.queue.count=1 (previous value was 4) Change some queue listener properties com.ibm.rfid.premises.multitask.queue.count=1 (previous value was 2) On the WebSphere Application Server Administrative Console: 1. Click Application servers → server1 → Message Listener Service → Listener Ports. 2. Click edgelistener and change maximum sessions to 1, maximum retries to 2, and maximum messages to 10. 3. Click tasklistener and change the maximum sessions to 2, maximum retries to 2, and maximum messages to 10. 4. Click persistencelistener and change the maximum sessions to 6, maximum retries to 2, and maximum messages to 1. Chapter 2. Performance tuning the environment 9 Action Additional details Change some log file properties Change the number of logprimary files for IBM.RFID.QM to 4, the number of logsecondary files to 2, the value of logfilepages to 16384, and the value of logbuffer pages to 4096. See the “Changing MQ settings to improve performance” section in the WebSphere RFID Premises Server Information Center for instructions: http://publib.boulder.ibm.com/infocenter/pvcsensa/v6r0m0/index.j sp?topic=/com.ibm.wrps.doc_6.0.0.1/tuning_perfMQsetting.html 2.7 Database server tuning WebSphere RFID Premises Server 6.0 and later use a backend database server for core functionality. Follow the tuning instructions in the “Tuning the databases to improve performance” section in the WebSphere RFID Premises Server Information Center: http://publib.boulder.ibm.com/infocenter/pvcsensa/v6r0m0/index.jsp?topic=/com.ibm. wrps.doc_6.0.0.1/tun_db.html 2.7.1 IBM DB2 database parameter tuning For our testing, we used IBM DB2® V8.2 fix pack 4 as our database server. We used the parameters and values specified in Table 2-5 in our environment for the IBMRFID database. To update a configuration parameter, issue the command: db2 update db config for database alias using db parameter value Table 2-5 DB2 configuration parameters DB2 tuning parameter Windows maxappls 75 avg_appls 40 Locklist 50,000 maxlocks 95 To update a system parameter (Table 2-6), issue the command: db2 alter bufferpool IBMDEFAULTBP size value Table 2-6 DB2 system parameters DB2 system tuning parameter Windows bufferpool 20000 IBM DB2 database parameter tuning considerations: Update table statistics regularly. As tables grow through inserts and deletes, it is important to run DB2 utilities to recount the table records and certain characteristics and rerecord these in the DB2 catalogs, which are used by the SQL optimizer to select access paths to data. DB2 provides several ways to do this. The simplest way is to run the reorgchk 10 WebSphere RFID Premises Server 6.0.0.1 Tuning Guide command, which counts the records and stores table statistics in the catalogs, and then produces a report, which can be reviewed for table fragmentation issues. After connecting to your database, the command form is: db2 reorgchk update statistics on table all Physically reorganize your tables. When a table row is deleted, the space occupied by the row is not necessarily reclaimed until the table is reorganized. Perform the following command on the appropriate database table: db2 reorg table table-name Ensure that the database server has an adequate number of disks. In our testing, we used from four to six drives. Also, if possible, due to constant logging from the databases, dedicate the database logs to separate disks from where the physical databases reside. Ensure that the parameter MaxAppls is greater than the total number of connections for both the data source and the session manager for each WebSphere RFID Premises Server application server clone. Use the SMS table space type for DB2 temporary table spaces for systems that have nested queries. Failure to follow this recommendation can result in excessive time spent in buffer writes on UPDATES and other SQL requests that require nested queries, as well as excessive disk utilization on the DB2 server. 2.7.2 Oracle database Follow the instructions in the “Configuring WebSphere Application Server for Oracle®” section in the WebSphere RFID Premises Server Information Center: http://publib.boulder.ibm.com/infocenter/pvcsensa/v6r0m0/topic/com.ibm.wrps.doc_6. 0.0.1/tun_db.html 1. Move the redo and control files to a separate partition on the Oracle server: a. Update their locations within Oracle. 2. Edit the init.ora file: a. Shared_pool_size = 37748736 b. db_cache_size = 50331648 c. Java_pool_size = 16777216 3. Add another file to the USERS tablespace. 4. Create new tablespaces for the tag and tag_extension tables. Recreate the tag and tag_extension table to use these new tablespaces. 2.7.3 Other database considerations The size of the database tables does not remain constant in a running WebSphere RFID Premises Server. The performance of relational databases can decline as tables grow unless the tables are periodically reorganized and have their statistics recomputed. So that the data shown in this paper is indicative of WebSphere RFID Premises Server 6.0.0.1, and not artificially limited by database performance, the databases are preloaded before the performance tests are run. This is done by running a load generator to preload the database tables prior to running a measurement. Then, the WebSphere RFID Premises Server application server is stopped and all of the database tables’ statistics are recomputed. Depending on the usage pattern, additional database maintenance or tuning might be required to maintain good performance with WebSphere RFID Premises Server 6.0.0.1. Because databases can behave differently for different deployments, the best approach to Chapter 2. Performance tuning the environment 11 maintenance should involve a comprehensive look at the various aspects of the database system. This includes areas from the memory and filesystem of the database host server, to the bufferpools (record caches) of the database setup. An example for DB2 is the size of the bufferpools. Care should be taken to monitor and ensure that enough memory is configured for this critical resource. Other examples are the log buffer size and sort heap. Consult your database server documentation for more details. 2.8 Network tuning In any production environment, the network must be closely monitored to ensure that its performance is acceptable and consistent. Based on our private-switched 100 MB Ethernet on a 1 GB backbone, we modified the following network parameters. Note that the following changes do not suggest that all network parameters must be set to these values, but rather, they suggest that you be aware that the network is also an entity in the performance environment and bottleneck resolution process. 2.8.1 Windows networking The following registry settings were made in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters path: MaxFreeTcbs = dword:00011940 MaxHashTableSize = dword:0000ffff MaxUserPort = dword:0000fffe TcpTimedWaitDelay = dword:0000001e 12 WebSphere RFID Premises Server 6.0.0.1 Tuning Guide A Appendix A. Environment configuration for performance tunings This appendix provides the software, hardware, and network environment that was used for the tuning recommendations in this Redpaper. This appendix contains: Required fix packs and e-fixes Performance environment © Copyright IBM Corp. 2007. All rights reserved. 13 A.1 Required fix packs and e-fixes The following fix packs and e-fixes are required: WebSphere Application Server 6.0 Fixpack 15 and IFPK32968 (Windows and Linux) DB2 Workstation Edition 8.2 Fixpack 4 (Windows and Linux) WebSphere MQ 6.0 Refresh Pack 1 and FixPack 1(Windows and Linux) Note: All necessary fix packs and e-fixes are included in the system installation for WebSphere RFID Premises Server 6.0.0.1, so no additional fix packs or e-fixes will be needed for this investigation. A.2 Performance environment Measurements to determine the capacity of the WebSphere RFID Premises Server 6.0.0.1 were made in an environment (Figure A-1) where there were four Data Capture and Delivery Servers (three Windows servers and one embedded server) sending requests to a single multiCPU server running the WebSphere RFID Premises 6.0.0.1 Server product. Data Capture and Delivery Servers Single Purpose Hardware WebSphere RFID Premises 6.0.0.1 Server Load Generators Data Capture and Delivery Servers Database Server IBM DB2 8.1fp4 or Oracle 9i General Purpose Hardware Figure A-1 Measurement environment for WebSphere RFID Premises Server 6.0.0.1 server capacity Measurements to determine the capacity of the WebSphere RFID Premises Server 6.0.0.1 Data Capture and Delivery component were made in an environment (Figure A-2 on page 15) where there was one embedded server running the Data Capture and Delivery component sending requests to a single multiCPU server running the WebSphere RFID Premises Server 6.0.0.1 product. 14 WebSphere RFID Premises Server 6.0.0.1 Tuning Guide WebSphere RFID Premises 6.0.0.1 Server Data Capture and Delivery Servers Single Purpose Hardware Load Generators Database Server IBM DB2 8.1fp4 or Oracle 9i Figure A-2 Measurement environment for WebSphere RFID Premises Server 6.0.0.1 Data Capture and Delivery capacity Appendix A. Environment configuration for performance tunings 15 16 WebSphere RFID Premises Server 6.0.0.1 Tuning Guide Related publications The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this Redpaper. IBM Redbooks publications For information about ordering these publications, see “How to get IBM Redbooks publications” on page 17. Note that some of the documents referenced here might be available in softcopy only. WebSphere Scalability: WLM and Clustering Using WebSphere Application Server Advanced Edition, SG24-6153 Online resources These Web sites and URLs are also relevant as further information sources: WebSphere RFID Premises Server 6.0.0.1 Information Center http://publib.boulder.ibm.com/infocenter/pvcsensa/v6r0m0/topic/com.ibm.wrps.doc_6.0.0.1/ welcome.html “Tuning” section of the WebSphere RFID Premises Server 6.0.0.1 Information Center http://publib.boulder.ibm.com/infocenter/pvcsensa/v6r0m0/index.jsp?topic=/com.ibm.wrps.d oc_6.0.0.1/tun_intro.html WebSphere Application Server Information Center http://www-3.ibm.com/software/webservers/appserv/was/library/ Oracle Corporation. Oracle Technology Network http://www.oracle.com/technology/index.html WebSphere Application Server Development Best Practices for Performance and Scalability http://www-306.ibm.com/software/webservers/appserv/ws_bestpractices.pdf How to get IBM Redbooks publications You can search for, view, or download IBM Redbooks publications, Redpapers, Technotes, draft publications, and additional materials, as well as order hardcopy IBM Redbooks publications or CD-ROMs, at this Web site: ibm.com/redbooks © Copyright IBM Corp. 2007. All rights reserved. 17 Help from IBM IBM Support and downloads ibm.com/support IBM Global Services ibm.com/services 18 WebSphere RFID Premises Server 6.0.0.1 Tuning Guide Back cover WebSphere RFID Premises Server 6.0.0.1 Tuning Guide Tune WebSphere Premises Server 6.0.0.1 for optimal performance Analyze response time data for capacity planning purposes Learn by using RFID load scenarios and test cases Detecting, processing, and persisting RFID tag events require efficient interactions and communications among RFID tag readers, data capture components, message queuing servers, application servers, and database systems. In order to maximize throughput with an acceptable response time, all of these components must be tuned to obtain maximum performance. Obtaining optimal performance tuning is critically dependent on the specific use cases and load requirements that will be experienced by the deployed systems. This IBM Redpaper describes a set of load scenarios and test cases and a methodology for measuring the performance of WebSphere RFID Premises Server 6.0.0.1. For these load scenarios, a set of optimal tunings for WebSphere RFID Premises Server 6.0.0.1 and related software components are provided. These tunings should provide a basis for obtaining optimal performance when deploying your own RFID solution using WebSphere RFID Premises Server 6.0.0.1. This Redpaper is intended for IT specialists and developers who develop and deploy solutions for WebSphere Premises Server V6.0.0.1. ® Redpaper INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment. For more information: ibm.com/redbooks REDP-4399-00 ™