WebSphere RFID Premises Server 6.0.0.1 Tuning Guide Front cover

advertisement
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
™
Download