Performance - Slide 1 - Satyajit P PDF
Performance - Slide 1 - Satyajit P PDF
Performance - Slide 1 - Satyajit P PDF
Rashmi Acharya,
Staff Software developer
June 2012
Performance Management
Sterling Integrator Quick Overview
Performance statistics management
Managing BP execution
Proper Cache handling and BP optimization
Tuning of Memory Parameters
GC Analysis and Tuning
Troubleshooting DB growth problem
Managing Connection Pools
Tuning aspects on Adapters and Perimeter services
Tuning improvements for EDI, Translation.
SFG tuning improvements.
Analysing and debugging the performance problems. Thread and Heap and GC analysis
Performance check
Solution Capabilities
A trusted EDI and data translation solution helping you manage your B2B community
IBM Sterling Gentran
Automates business processes and tax compliance, using global integration standards
IBM Sterling e-Invoicing to support buyer and supplier compliance in a single solution. This is accomplished
while
also maintaining conformity with tax regulations for multiple countries
Provides secure connectivity and collaboration with customers and business partners. It
IBM Sterling B2B delivers unprecedented visibility and control over the business processes shared with
Collaboration Network outside companies
Min and Max time: Min and Max time system activity took to complete. If multiple
invocations when min/max time will be taken here
Average: Average processing time taken for the system activity to complete.
Invocations: Number of times the system activity was invoked since you last generated
the report.
Total (ms): Total time taken since report generation started.
The Persist a Document/BP to the Database statistics is helpful in determining database issues and
slow processing issues.
If the Min (ms), Max (ms), and Average (ms) times are increasing. - Database is becoming full, or
that you have a connection leak.
The number of invocations increase - your persistence level is set too high.
The number of invocations is small and the Min (ms) and Max (ms) times are increasing -Persisting
large documents to the database, which can be moved to the disk to save database space.
The Min (ms), Max (ms), and Average (ms) times are increasing. This indicates that the XPath
statement is not written efficiently, and may slow down your process time.
There are some system cleaning processes should be running to keep the system healthy.
Disabling few of these processes can also cause the problem.
a. ScheduleIndexBusinessProcess
b. ScheduleBackupService
c. SchedulePurgeService
d. ScheduleAssociateBPsToDoc
e. ScheduleRecoveryBusinessProcess
f. ScheduleAutoTerminateService
g. Shedule_BPLinkagePurgeService
Review the wf.log file inside the install_dir/logs folder for time and date information showing
increase in the execution time
Review the performance statistics report for number of invocations and processing time.
Review the BP activity step which takes more execution time to check for improper BP
design, mode, Xpath etc. Check for any replacement for the activity to perform any better
solution.
Check for any halted, waiting or interrupted BPs.
Check the document storage type for the BPs.
Persistence level set
Lifespan set for the document or BPs.
Business Process Change the persistence level during the check-in process. The business
process persistence level overrides the global persistence level.
Activity Level Change the persistence level in the service or adapter. The activity persistence level
overrides the business process persistence level and the global persistence level.
File System: Store documents in the file system. Use this option for large volume processing, such as documents that
are over 10 MB in size, or when working with a large number of documents within a single business process (including
any sub-processes it invokes).
Persistence level
We recommend to run the business processes (BP) with minimal persistence required to complete. Do not use full
persistence unless your business needs require it, as this consumes more system resources.
Memory Cache:
Uses the amount of memory necessary to hold the objects in memory at all times.You can
configure this in the noapp.properties file.
Disk Cache:
Objects can be read more quickly from the disk than from the database. When objects are
no longer in the soft reference cache because they have been garbage collected,
The disk Disk cache cache provides a faster access mechanism than object retrieval from
the database.
Distribution Cache
Distribution Cache Maximum
Determines the maximum number
of business processes in queue on
node2. If the number of business
processes on node2 queue
exceeds this number, node1 will not
transfer any more business
processes to node2.
Symptoms:
Slow-running business processes
Longer completion time for business processes
Increased cache hits reported in the Cache Usage Report.
No Cache hit percentage
Reasons:
Improper tuning of performance properties.
High cache usage for less frequent large objects.
Low cache usage for high frequent small objects.
It is stored in the
tuning.properties.
From the Administration menu,
select Operations > System >
Performance > Tuning. After the
change, run the setupfiles.sh
and then start the instance.
Description of the properties
-verbose:gc to get the GC output to When the old heap fills up, the JVM issues a Full GC or
noapp.log file. major collection. In a Full GC, the JVM has to first identify
all the referenced objects. When that is done, the JVM
In th HP JVM or in SUN JVM we can sweeps the entire heap to reclaim all free memory
specify:
java -XX:+PrintGCDetails -
XX:+PrintGCTimeStamps
Xloggc:<gcfilename> -verbose:<gc>
If the tmp.sh in the /install/bin folder is configured with these memory parameters
install\jdk\bin\java -XX:MaxPermSize=128m -Xss256k -Xms1024m -Xmx3072m --
XX:MaxNewSize=1024m -Xmn512m -XX:SurvivorRatio=4 -XX:+DisableExplicitGC.
-XX:MaxPermSize=128m , which stores all class objects and toString() done on the class
object will be stored here.
-Xss256k specifies the thread stack memory
-Xms1024m is the min heap size
-Xmx3072m is the maximum heap size , it again depends on the physical memory set in the
machine.
-XX:MaxNewSize=1024m is the maximum size of the young generation heap
-Xmn512m is the size of the eden space i.e new generation heap value..
-XX:NewRatio=2 is the default which is talking about the ratio of new/old generation heap
-XX:SurvivorRatio=4 ratio between eden/survivor space ratio.
-XX:+DisableExplicitGC, i.c application invoked system.gc() will not be entertained.
UI,Archive,Default,
Non-transactional , Local.
Determines the initial number of connections to be reserved in the database connection pool. It
can be set using the initial sie in tuning wiard.
It is a good practice to set the min connection size to 1 instead of setting to large value.
Periodically check the JDBC connection tracker or connection pool report to check whether it is
matching the need. It is recommended to set the maximum value of 256 in the system for all
connection pools.
Keep proper buffer size value for the future demand during high processing load. Once all the
connections are used (maxsize + buffersize), and a new request for a connection comes in, the
new request is denied and an error is written stating that a connection cannot be created and that
the connection pool has been exhausted.
ScheduleIndexBusinessProcess
ScheduleBackupService
SchedulePurgeService
ScheduleAssociateBPsToDoc
ScheduleRecoveryBusinessProcess
ScheduleAutoTerminateService
Shedule_BPLinkagePurgeService
ScheduleBackupService
ScheduleAssociateBPsToDoc
Finds documents that have:
-1 WORKFLOW_ID.
lifespan in the past.
The following table lists some of the tables defined in Sterling B2B Integrator experience substantial input,
output, and rapid growth.
These tables are candidates for moving to a tablespace or segment that is separate from the rest of the
database.
Perimeter Server
A perimeter server is communication management software installed in a DMZ that manages communication flows between
a perimeter network and Sterling B2B Integrator TCP-based transport adapters. Perimeter servers help reduce network
congestion issues and enhance security and scalability for high-volume environments.
Memory utilization, the amount of data in these buffers can be managed by setting the high and low water mark settings
for both inbound and outbound traffic.
gmm.shedExecutionTime is the time in ms that perimeter services will wait for memory to be released, when the GMM
memory limit specified by gmm.maxAllocation is reached, before closing one or more connections
gmm.maxAllocation Maximum amount of memory to use for all buffering inside perimeter services and associated
adapters. The default value is 384M.
socket.receiveBufferSize This value is used for socket I/O.
Property: fgRouteConcurrentSessionLimit: Number of File Gateway services that can be run concurrently. Maximum
value can be 64.
If you have a high volume of PGP traffic, you can improve your performance by specifying a group for the file gateway.
pgpCmdline2svcname=PGPCmdlineService. The name Command Line Adapter to be used for PGP packing and
unpacking
If you are processing very large files, increase the probe values to avoid timeout conditions.
bpCompletionProbes.1=120
bpCompletionSleepMsec.1=100
If you have very large files that will be processed by PGP, then increase the fgRoutePGPCmdLineSocketTimeout value
from the default value of 4min.
If you have high volumes of FTP traffic, then specify them as a group , like ftpClientAdapterName=FTPClientAdapter
Suppress Duplicate Messages by mailbox.disallowDuplicateMessages=true
Increase the number of steps a business process must complete prior to returning to the queue. Property:
noapp.AE_ExecuteCycle.# where # is the queue number. Higher values will accelerate individual business process where
lower number provides smooth multitasking capability. Batch processing requires a higher number where as interactive
favors a lower number
Increase the number of concurrent threads. Property: noapp.MaxThreads.
Set storage type. As filesystem . Property: filegateway_ui.storagetype=file
There are several tools avalible for analysing the performance problems.
JVM Thread monitoring tool to monitor
Thread contention issues
Slowness issues
Application hangs issues
dead locks etc
State of the system etc.
Heap Analysis tool: to analyze the
OutOfMemoryError Exceptions
Memory Leaks.
The Application Hangs issues
GC analysis tool to analyze
GC statistics for proper heap settings
Application pause time duing garbage collection
Memory leaks issue
AWR report for
- Database performance issue analysis in Oracle DB
- Low performant sqls in oracle db
- DB server performance improvement
49 IBM Confidential 2011 IBM Corporation
Disclaimer
The information contained in this presentation is provided for informational purposes only.
While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided As Is,
without warranty of any kind, express or implied.
In addition, this information is based on IBMs current product plans and strategy, which are subject to change by IBM without notice.
IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other
documentation.
Nothing contained in this presentation is intended to, or shall have the effect of:
Creating any warranty or representation from IBM (or its affiliates or its or their supplies and/or licensors); or
Altering the terms and conditions of the applicable license agreement governing the use of IBM software.