레이블이 IBM.WebSphere.performance인 게시물을 표시합니다. 모든 게시물 표시
레이블이 IBM.WebSphere.performance인 게시물을 표시합니다. 모든 게시물 표시

2018년 8월 1일 수요일

[Info] AIX Perferamce Setup

AIX의 성능 관련 설정

네트워크, 프로세스 및 가상 메모리 설정을 애플리케이션 서버의 WebSphere® Application Server 인스턴스 소유자의 루트 사용자와 데이터베이스 서버의 데이터베이스 인스턴스 소유자의 루트 사용자에게 적용해야 합니다. 자원(ulimit) 설정을 적용할 경우 두 서버의 인스턴스 소유자의 userid에 설정을 적용해야 하지만 루트 사용자가 계속 변경해야 합니다.

네트워크 설정

운영 체제의 명령행에서 네트워크 서비스를 최적화하기 위해 다음 설정을 입력하십시오.
/usr/sbin/no -r -o sb_max=6192000
/usr/sbin/no -r -o tcp_sendspace=4096000
/usr/sbin/no -r -o tcp_recvspace=4096000
/usr/sbin/no -r -o udp_sendspace=65536
/usr/sbin/no -r -o udp_recvspace=655360
/usr/sbin/no -r -o rfc1323=1
/usr/sbin/no -r -o ipqmaxlen=250
/usr/sbin/no -r -o clean_partial_conns=1
/usr/sbin/no -r -o tcp_keepidle=600
/usr/sbin/no -r -o tcp_keepintvl=10
/usr/sbin/no -r -o tcp_keepinit=40
/usr/sbin/no -r -o tcp_timewait=1
/usr/sbin/no -r -o tcp_finwait2=60
/usr/sbin/no -r -o tcp_ephemeral_low=1024

no -p -o tcp_timewait=1
no -p -o tcp_keepidle=600
no -p -o tcp_keepintvl=10
no -p -o tcp_keepinit=40
no -p -o sack=1
no -p -o rfc1323=1
no -p -o sb_max=1114112
no -p -o tcp_mssdflt=1448

sb_max, tcp_sendspace 및 tcp_recvspace 매개변수의 값은 디바이스 유형과 속도에 따라 다릅니다. TCP 스트리밍 워크로드의 값을 확인하여 네트워크에 가장 맞는 조정 값을 찾아야 합니다.
이 네트워크 설정은 AIX의 ulimit 설정을 제외하고 전체 시스템에 적용됩니다.

자원(ulimit) 설정

ulimit 설정은 DB2® 인스턴스 소유자, DB2 펜스 소유자, Maximo Asset Management 사용자, WebSphere Application Server 관리 사용자 등 특정 사용자를 위해 변경됩니다. 운영 체제 자원의 자원(ulimit) 설정을 지정하려면 다음 명령행을 실행하십시오.
chuser fsize=-1 fsize_hard=-1 data=-1 data_hard=-1 stack=4194304 stack_hard=4194304 nofiles=-1 nofiles_hard=-1 <user_name>

chuser nofiles=-1 data=-1 stack=-1 rss=-1 cpu=-1 virtuser

프로세스 설정

운영 체제의 명령행에서 chdev -l sys0 -a maxuproc='4096' 프로세스 설정을 입력하십시오.

가상 메모리 설정

가상 메모리 관리자의 조정 가능한 매개변수를 설정하려면 명령행에 다음 설정을 입력하십시오.
vmo -p -o lru_file_repage = 0
vmo -p -o maxclient% = 90
vmo -p -o maxperm%=90
vmo -p -o minperm%=5
 ----------------------------------------------
AIX에서는 smitty devices 명령을 사용해 어댑터 설정값을 변경할 수 있습니다. netstat -v 명령 또는 entstat -d enX 명령을 사용할 수 있습니다. 여기서 X는 설정값과 조정 모드를 표시할 이더넷 인터페이스 수입니다. 다음은 entstat -d en3 명령 출력 예의 일부입니다.
10/100/1000 Base-TX PCI-X Adapter (14106902) Specific Statistics:
--------------------------------------------------------------------
Link Status: Up
Media Speed Selected: Auto negotiation
Media Speed Running: 1000 Mbps Full Duplex
 ** entstat -d ent0 | grep -i link

2014년 3월 10일 월요일

[TechNote] Java Health Center- a low overhead monitoring tool

Java Health Center- a low overhead monitoring tool


Technote (FAQ)


Question

How can I monitor and diagnose my WebSphere Application Server environment without impacting performance?

Answer

      Java™ Health Center:

      Health Center is a very low overhead monitoring tool. It runs alongside an IBM Java application with a very small impact on the application's performance (less than 1%). Health Center monitors several application areas, using the information to provide recommendations and analysis that help you improve the performance and efficiency of your application. Health Center can save the data obtained from monitoring an application and load it again for analysis at a later date.

      Starting with IBM Java 5 SR8 or IBM Java 6 SR1, The Health Center client can be installed within the IBM Support Assistant Workbench.

      The Health Center client has several different views, each reporting data regarding a different aspect of the JVM. The views available are:
      • Classes: Information about classes being loaded
      • Environment: Details of the configuration and system of the monitored application
      • Garbage Collection: Information about the Java heap and pause times
      • I/O: Information about I/O activities that take place
      • Locking: Information about contention on inflated locks
      • Method Trace: Information about method use over time
      • Native Memory: Information about the native memory usage
      • Profiling: Provides a sampling profile of Java methods including call paths
      • Threads: Information about the live threads of the monitored JVM


      To Install Health Center:

      Health Center is installed as a plug-in for IBM Support Assistant (ISA), therefore, ISA must be installed prior to obtaining the Java Health Center.

      Step 1 – Prepare to install Health Center
      1. Download and install the IBM Support Assistant Workbench.
      2. Install the Heath Center in the ISA Workbench
        • Start the IBM Support Assistant Workbench.
        • If the "IBM Support Assistant Customization Wizard" is displayed. click Cancel to exit this wizard.
        • From the menu bar in ISA, select Update > Find New... > Tools Add-ons. The "Find new tools add-ons" wizard will be displayed.
        • Type health in the search box, then click the arrow next to JVM-based Tools to show matching tools.
        • Find for the Health Center add-on



        • Select "IBM Monitoring and Diagnostic Tools for Java - Health Center" from the list then click Next.
        • Complete the wizard by following the on-screen instructions.
        • IBM Support Assistant will prompt you to restart the Workbench - select Yes to restart.

      Step 2 - Launch the Health Center client:
      1. Start the IBM Support Assistant Workbench.
      2. From the Welcome page, click Analyze Problem.
      3. On the "Analyze Problem" tab, select Tools as below.

        Where to find the installed tools in the ISA Workbench

      4. You will be presented with a list of all the installed tools. Select "IBM Monitoring and Diagnostic Tools for Java - Health Center" and then click on Launch.
      5. The Health Center application will now launch and the Health Center: Connection wizard will be displayed.

      Important note: Your application must be enabled for monitoring before Health Center can be connected.

      Step 3 - Enable your application for monitoring:
      1. On the first page of the Health Center: Connection wizard, click the 'Enabling an application for monitoring' link as below:

        Health Center Connection wizard application enablement link

      2. Follow the help topic displayed:
        1. Installing the Health Center agent
          1. After clicking on "Install the Health Center Agent", you will find a list of agents to choose from. Choose the one that matches the Java version in which WebSphere is running:

            Windows x86 32-bit
            Windows x86 64-bit
            Linux® x86 32-bit
            Linux x86 64-bit
            Linux s390 31-bit
            Linux s390 64-bit
            Linux ppc 32-bit
            Linux ppc 64-bit
            AIX ppc 32-bit
            AIX ppc 64-bit
            z/OS 31-bit
            z/OS 64-bit

            Note: This might not be the same as the operating system you are running. For example, you might be running a 32-bit Java on a Windows® 64-bit system; in this case you should download the Windows 32-bit agent package.
          2. Install the agent.
            Installing on Microsoft Windows, AIX and Linux
            :

            You must download and extract the agent package into a specific directory of the JRE that you are using to start your application. This directory is the parent directory of the jre directory.

            For monitoring WebSphere, the jre directory is under WebSphere such as:
            C:\Program Files\IBM\WebSphere\AppServer61\java\jre

            For example, on Microsoft Windows, if your JRE is in the
            C:\Program Files\IBM\WebSphere\AppServer61\java\jre
            directory, extract the contents of the Windows x86 32-bit agent package into
            C:\Program Files\IBM\WebSphere\AppServer61\java

            When extracted, you see a healthcenter.jar file in the jre\lib\ext directory.
            Example: Your healthcenter.jar is in
            C:\Program Files\IBM\WebSphere\AppServer61\java\jre\lib\ext.
        2. Starting a Java application with the Health Center agent enabled
          To enable the Health Center for use with WebSphere Application Server:
          1. In the Administrative Console , select Application servers > *server_name* > Process Definition > Java Virtual Machine-> Generic JVM Arguments
          2. Enter the correct string for your Java™ Virtual Machine (JVM) version:

            On UNIX® system based platforms:

            For Java 5 SR9 and earlier or Java 6 SR4 and earlier, use:
            -agentlib:healthcenter -Xtrace:output=/tmp/perfmon.%p.out

            For Java 5 SR10 and later, or Java 6 SR5 and later, use:
            -Xhealthcenter

            On Microsoft Windows:

            For Java 5 SR9 and earlier or Java 6 SR4 and earlier, use:
            -agentlib:healthcenter -Xtrace:output=C:\temp\perfmon.%p.out

            For Java 5 SR10 and later, or Java 6 SR5 and later, use:
            -Xhealthcenter
          3. Apply the changes and save the settings at the top of the page.
          4. Restart the JVM.
          5. Connect to the server from the Health Center client. The default port number is 1972.

      Step 4 - Connect Health Center to the enabled Java application:
        Complete the Health Center: Connection wizard to start monitoring the enabled Java application.

        For further information refer to the JHC InfoCenter Guide

Related information

2012년 6월 25일 월요일

[webcast] Webcast replay: An Introduction to the WebSphere Application Server Performance Tuning Toolkit


An Introduction to the WebSphere Application Server Performance Tuning Toolkit 관련 link

Webcast replay: An Introduction to the WebSphere Application Server Performance Tuning Toolkit

Abstract

The WebSphere Application Server Performance Tuning Toolkit (PTT) is an Eclipse-based intelligent tool designed to help users tune the performance of WebSphere Application Server using data analysis and statistical inference technology. This exchange is designed to go through the main functions of PTT and includes a demo on how to use it with the built-in sample applications.

2012년 3월 15일 목요일

[devloperworks] 64-bit versus 32-bit JVM: Understanding performance implications for WebSphere Commerce sites

64-bit versus 32-bit JVM: Understanding performance implications for WebSphere Commerce sites

Introduction
IBM WebSphere Application Server comes in two flavors – 32-bit and 64-bit. More specifically, you have the option of using the 32-bit or the 64-bit Java Virtual Machine (JVM) with your WebSphere Application Server. Prior to Version 7 Fix Pack 1, IBM WebSphere Commerce supported only the 32-bit version of WebSphere Application Server. Starting with V7 FP1, WebSphere Commerce added support for 64-bit.
This article discusses the key difference between how the 32-bit and the 64-bit JVM utilize memory when serving a typical WebSphere Commerce workload. It also discusses how these JVMs compare in terms of their key performance characteristics – throughput, response time, and overall memory utilization. It concludes with a discussion on what you need to consider when moving to a 64-bit JVM and how this affects your planned deployments.

Total memory equation in WebSphere Commerce deployments
WebSphere Commerce is a sophisticated application that creates many different types of Java objects. When a shopper enters a WebSphere Commerce site, he first interacts with JSPs, JSP fragments, and servlets. The JSPs invoke servlets, which in turn invoke session beans (EJBs) and databeans.
The session bean layer typically invokes controller commands, which invoke task commands. These task commands invoke entity beans (CMP EJBs). The entity beans execute SQL statements against the database, fetch result sets, and store relevant data in their properties.
Session beans, controller commands, and task commands execute business logic that uses Java variables, constants, objects, and collection classes to store transient data on the stack and in the JVM heap. These data are not persisted, but they have a footprint on the overall memory utilization of your site.
These objects fall into one of two categories:
  • JVM-bound objects This category represents objects that cannot be cached externally to the WebSphere Commerce JVM and includes:
    • Session beans.
    • Entity beans.
    • Access beans.
    • Stack variables.
    • Transient business logic variables allocated on the heap.
    • Objects returned by external systems (for example, external search engines) for processing and displaying by WebSphere Commerce.
  • Cacheable objects These objects can be cached externally to the WebSphere Commerce JVM by utilizing either the dynacache disk offload feature, edge caching, or WebSphere eXtreme Scale. These objects include:
    • JSPs.
    • JSP fragments.
    • Servlets.
    • Controller commands.
    • Task commands.
    • Java objects that extend the DistributedMap interface.
    • Contents of the WebSphere Commerce data cache.
    • Contents of the WebSphere Commerce marketing cache.
Note: At this stage, some of the JVM-bound objects can also be cached. For example, JDBC result sets are cached in the statement cache provided by the WebSphere Application Server connection pool. Entity beans are cached in the EJB cache. Know that these objects cannot be stored externally to the JVM. If the total memory space required by these objects is larger than what the JVM can provide, the site will experience a performance bottleneck.
If you take a snapshot of the WebSphere Commerce JVM heap, you see that JVM-bound objects typically do not take up more than 200 to 300 megabytes. The remainder of the JVM heap is occupied by cacheable objects that are retrieved and loaded into the JVM heap as needed. This difference between JVM-bound and cacheable objects is key to understanding performance between a 32-bit and a 64-bit JVM.

The 64-bit JVM
WebSphere Commerce is a J2EE™ application that is deployed on WebSphere Application Server, which again comes in two editions: 32-bit and 64-bit. These two editions of WebSphere Application Server are identical in every way except one: they include different editions of the IBM J9 JVM (except on the Solaris™ platform, where they include different flavors of Sun's™ JVM).
The IBM J9 JVM comes in two editions: 32-bit and 64-bit. These two editions are identical to each other in every respect except one: how they address memory. The 32-bit edition has a limit on the maximum heap size that is addressed by the JVM. This limit varies by platform, but it is generally about 1.5 GB.
The 64-bit JVM can address a much larger heap size than the 32-bit JVM. Version 1.6 of the IBM J9 JVM introduced compressed references technology. Processing larger 64-bit references does come at a cost, and compressed references reduce this cost and make it more reasonable. The impact of compressed references is described in more detail later in the article. The concept is introduced here because it affects the maximum heap size addressed by the JVM.
With compressed references on (they are on by default), the IBM J9 JVM can address about 28 GB of memory. Without compressed references, the maximum heap size is unlimited.
One important caveat to keep in mind is that, currently, WebSphere Application Server does not provide in-version migration support for migrating from a 32-bit to a 64-bit JVM. If you start by deploying one edition of WebSphere Application Server and then decide to switch to the other, a re-installation is required. Because of this fact, it is important to understand the trade-offs between 32-bit and 64-bit performance, and make the right choice early in the project life cycle. The next section discusses how WebSphere Commerce performs on a 64-bit and a 32-bit JVM.

Comparing 64-bit and 32-bit performance
How do you go about comparing 64-bit with 32-bit performance? For WebSphere Commerce, this comparison involves comparing the cost of using larger references to the cost of out-of-process memory access. This sounds complicated at first glance, but in the case of WebSphere Commerce, it is actually fairly straightforward.
Virtually all WebSphere Commerce sites make extensive use of caching. The typical size of a WebSphere Commerce cache is 5 to 6 gigabytes (GB). The 32-bit JVM can hold only about 1 GB of this in Java heap memory. WebSphere Application Server dynacache provides a feature called disk offload. This feature enables those cached objects that do not fit into the JVM heap to be offloaded to the disk. However, this does not mean that those objects have to be always retrieved from the disk. All operating systems supported by WebSphere Commerce provide a file-system cache capability.
When enabled and appropriately sized, the file system cache ensures that the disk offload file containing objects that do not fit into the JVM heap is also served out of RAM. Essentially, for a well-tuned WebSphere Commerce site, the trade-off between running a 64-bit versus 32-bit JVM involves in-process versus out-of-process memory access.
Comparing throughput characteristics
Before delving deeper into performance data, keep in mind that performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance for any user varies depending upon many factors, including the amount of customization, the I/O configuration of the system, the storage configuration, and the workload processed. Therefore, there is no assurance that an individual user will achieve results similar to those stated here.
To make a fair comparison of a 64-bit versus a 32-bit JVM throughput characteristics for a WebSphere Commerce workload, you need to consider the total size of the cache. As discussed above, the heap size of the running WebSphere Commerce JVM is largely occupied by cacheable objects. In the case of a 32-bit JVM, most of these cacheable objects that do not fit into the JVM heap need to be offloaded to disk, and end up in RAM via the file system cache. In the case of a 64-bit JVM, all cacheable objects can fit into a much larger heap size.
Figure 1 shows a throughput comparison for a 32-bit and a 64-bit JVM running a WebSphere Commerce workload. In this study, we varied the total size of the cache from 0 GB (no caching at all) to 10 GB. In all cases, the system had sufficient RAM to fully contain the file system cache, including the dynacache disk offload file. For each cache size, a step-up test was performed to establish the maximum possible throughput. In all cases, the 32-bit JVM slightly outperformed the 64-bit JVM. Although the compressed references technology available in the latest version of the 64-bit JVM has reduced the overhead of processing larger references, you still see a 5% to 15% penalty.

Figure 1. Throughput comparison for different WebSphere Commerce cache sizes


Effect of the file system cache
Figure 2 shows additional data points, comparing relative throughput performance for the 32-bit and 64-bit JVM. Look closely at the one showing throughput comparison for the large 30 GB total cache size. In this case, when we reduced the size of the file system cache available to the 32-bit JVM, its throughput performance declined significantly when compared to the 64-bit JVM.

Figure 2. Effect of the file system cache on 32-bit JVM throughput



Table 1 shows that the total memory footprint for the 32-bit system is about 7.9 GB. This is determined by adding the actual heap utilization and the size of the disk offload file. In the case of the 64-bit JVM, all of the memory utilized was in the Java heap, and the size of this heap was about 10 GB. As you can see, the 64-bit JVM running a typical WebSphere Commerce workload tends to utilize about 30% more memory than an equivalent 32-bit system running the same workload. The garbage collection overhead for the two systems tends to be about the same.
Memory footprint and garbage collection overhead
Table 1 compares the memory utilization and garbage collection (GC) overhead observed during one of our runs.

Table 1. Comparison of total memory utilization and garbage collection overhead

32-bit 64-bit
Actual heap size 1.2 GB ~10 GB
Disk offload file Size ~6.7 GB 0
GC overhead ~8% (max 25%) ~9% (max 13%)

For the 32-bit system, the total memory footprint is determined by adding the actual heap utilization and the size of the disk offload file. In this case, it is about 7.9 GB. In the case of the 64-bit JVM, all of the memory utilized was in the Java heap. The size of this heap was about 10 GB. As you can see, the 64-bit JVM running a typical WebSphere Commerce workload tends to utilize about 30% more memory than an equivalent 32-bit system running the same workload. The garbage collection overhead for the two systems tends to be about the same.

Moving to 64-bit
One of most frequently asked questions that we get from customers is: Now that WebSphere Commerce supports 64-bit, should I move to a 64-bit JVM? The answer is that this depends on a number of factors, and not all of them are strictly performance-related. Our lab testing indicates that a well-tuned 32-bit deployment still outperforms an equivalent 64-bit deployment. However, the 32-bit deployment requires more tuning to achieve this.
To achieve top performance from a 32-bit deployment, you need to be concerned with (among other tunings):
  • JVM tuning.
  • Dynacache disk offload settings.
  • Size of disk offload files (one for each JVM deployed on the server).
  • Efficiency of the file system cache (which varies on different platforms).
  • I/O performance of disk that are used (typically a Storage Area Network).
In contrast to this, for the 64-bit deployment, you only need to make sure that you have sufficient RAM to hold the entire heap (including cached data) and tune the JVM. Tuning the 64-bit JVM requires the same steps and overall approach as the 32-bit JVM, except that key settings, such as the starting and maximum nursery size and starting and maximum heap size, all need to be proportionately larger.
Another important consideration is that not all heap size problems encountered by customers are necessarily related to the total size of cacheable objects that need to be contained. In some cases, the total size of non-cacheable, JVM-bound objects produced by for example, integration and customization, can become too large to fit into the 32-bit heap. In this case, the 64-bit JVM allows you to simply increase your heap size, potentially avoiding (or at least postponing) expensive code re-design and re-factoring exercises.

Conclusion
For high-volume WebSphere Commerce customers who want top performance from their hardware, the 32-bit JVM is still the recommended choice. However, the 64-bit JVM is now fully supported by WebSphere Commerce, and it does provide a number of advantages:
  • Reduced I/O traffic to a Storage Area Network (SAN).
  • Simpler overall tuning.
  • Greater flexibility when dealing with heap contention caused by an accumulation of JVM-bound objects.
For many customers, these benefits may be well worth the price of a fairly reasonable performance overhead associated with using the 64-bit JVM for WebSphere Commerce deployments.

Resources
Learn
Discuss
About the author
Author photo Mikhail Genkin is the Performance Architect for WebSphere Commerce. He has 15 years of software development experience and has contributed to many IBM products including WebSphere Commerce, WebSphere Process Server, WebSphere Integration Developer, Rational Application Developer, and Visual Age for Java-Enterprise Edition.

2012년 2월 22일 수요일

[WebSphere] WebSphere Application Server Performance Tuning Toolkit (2)

작성: jaejeongk@gmail.com


본문 및 다운로드: WebSphere Application Server Performance Tuning Toolkit
 
- 사용 방법은 해당 사이트 및 toolkit에 설명되어 있으며, 처음 사용을 위한 간단한 내용만 설명한다. 

관련 blog 내용: 
   http://jaejeongk.blogspot.com/2012/01/developerworks-websphere-application.html

1.        해당 사이트 맨 아래쪽에 다운로드 받는 Link를 확인할 수 있음.


a.        라이선스 동의

b.        IBM 계정 입력 (IBM에 계정이 없는 경우 등록)
 
c.       Login 및 진행.

 
d.       I agree 체크


     e.Download Director 또는 http를 통해 다운로드
 
2.        Zip 형태의 압축파일이며, 해당 파일의 압축을 풀면 다음처럼 해당 폴더를 확인할 수 있다.
 
3.        Performance Tuning Toolkit은 eclipse 기반이며, PerfTuningToolkit.exe를 실행하면 다음과 같은 인터페이스를 확인할 수 있다.
 
4.       Welcome 페이지에서 help 및 각 아이콘을 click하면 기본적인 사용 가이드를 확인할 수 있다.


초기 설정 방법
 
1.        WebSphere Application Server 모니터링 추가하기.
 
→ Hosts 탭에서  “New Host” 또는 모니터 모양 click

 
2.        New Host 창에서 관리 서버에 접근할 수 있는 정보를 입력한다.
 
3.        모니터링
          해당 호스트는 (Network deployments edition의 경우) dmgr 서버를 통해 해당 Cell에 구성된
             모든 서버를 모니터링 한다.
 
-          같은 Cell안의 여러 개의 서버에 대해 모니터링 정보를 기록한다.
-          모니터링 된 정보는 derby db에 기록된다.
-          전체적은 요약은 그래프형태로 보여주며, 그래프에서 값 click 및 각각의 (하단)탭에서 상세한 내역을 확인할 수 있다.

-          여러 호스트를 등록할 수 있으나 모니터링을 위한 연결은 1개 호스트에 대해서만 가능하다.
  
* 모니터링 결과 - 모 사이트 성능테스트 결과

-          Application 성능 중점의 모니터링 정보를 확인할 수 있으며, 모니터링 단위는 Application Server (각 instance 단위)이다.

2012년 1월 11일 수요일

[DeveloperWorks] WebSphere Application Server Performance Tuning Toolkit

WebSphere Application Server Performance Tuning Toolkit

developer works에서 performance tuning toolkit이라는 tools을 소개하고 있다.
PC에 설치하여 원격의 각 instance에 대해 모니터링 및 튜닝을 할 수 있는 환경을 제공하고 있다.


The WebSphere® Application Server Performance Tuning Toolkit is an Eclipse-based intelligent tool designed to help users tune the performance of WebSphere Application Server using data collection, data analysis, and statistical inference technology. It is designed to help users locate bottlenecks and tune their applications appropriately.

Background

With the broad range of multi-tier architecture applications based on Java EE deployed at the enterprise level, performance problems can be more of an issue and harder to diagnose. The multi-layer architecture makes the performance problems hard to locate, and it takes more time and effort to investigate and locate performance bottlenecks. The impact from performance issues can be severe.
In order to get maximum capacity form WebSphere Application Server applications, it’s important to monitor and tune their performance. WebSphere Application Server Performance Tuning Toolkit helps you to do so.

Overview

The WebSphere Application Server Performance Tuning Toolkit (PTT) is an eclipse based intelligent tool specifically designed to help users monitor their system and locate performance bottleneck using data analysis and statistical inference technology. Through JMX, The toolkit collects performance data from PMI (Performance Monitoring Interface) of WebSphere Application Server, and gives user a easily understood picture with some charts and forms to locate the bottleneck and tune them appropriately.
Compared with other tools, the main character of our toolkit is that it provides a dynamic framework to allow user to define rules that is suitable for their system, thus greatly increasing the accuracy of performance problem detection and diagnostics. Figure 1 summarizes the main function of this toolkit.
Figure 1: Summary of the main functions of the Performance Tuning Toolkit diagram showing four main functional areas
Some common rule has been defined to detect the performance decline and take action automatically. For example, alerts can be generated in the following situations:
You can also define your own rules according to the indicator of their system. For example, you can set a proper threshold for response time of each servlet as below.
rule "ServletEvent"
when
   ServlentEvent(responseTime>1500, name=="Trade");
then
   String description = "response time extends the limits";

processData.addAlert("servlet", description);}
end

Benefits and features

The Performance Tuning Toolkit offers a number of benefits:
It has a numnber of key functions:

Installation and use

Installation

To install the Peformance Tuning Toolkit, just download and unzip the zip file. You can start it by clicking the PerfTuningToolkit.exe file.

Using the Performance Tuning Toolkit

First, you add one or more hosts and then configure the connections. After you have set up the connection, the toolkit automaticly gets the topology and server information and stores these within the toolkit. You can add, edit, or delete a host at any time.

Adding a host

Click the Add a new host button to create a new host. See Figure 4.
Figure 4: Adding a new host window for adding a new host
Input the information of the host, and check the Security enabled box if security is enabled. Click OK. The host is shown on the left, in the Hosts panel. See Figure 5.
Figure 5: Specifying host information dialog for specifying host information

Connecting to a host

In the left host panel, double click the host name to connect to the host. You are then asked if you want to customize the PIM settings with the displayed strings. Click Yes to connect to and monitor the server.

Obtaining information about hosts

Click the server name in the topology panel, the Monitor window opens to the right side Hosts panel, as shown in Figure 6.
Figure 6: Monitoring the host graphs showing host performance details
The Monitor windows show the statistical information and the trend curves. You can easily analyze the trend in many aspects and find the potential problems in servers. Tere are many tabs on the bottom of the page, which enable you to get a number of types of information. On each tab, some items can be expanded or folded depend on need.

Monitoring times

There are several graphs on the Monitor window that can be used to diplay information about times: Servlet Response Time, Transaction Response Time, Jdbc Response Time, Servlet Throughput, Transaction Throughput, Jdbc Throughput, Concurrency, Http Session, CPU usage, Java Heap, Alert. See Figure 7.
Figure 7: Monitoring times

Combining intervals

The combine interval options are designed to control the interval of the monitor curve. There are three options: AutoAjustInterval, CombineInterval, and DisintegrationInterval. When you click one of these, the curve time line interval changes immediately and the curve is redrawn. See Figure 8.
Figure 8: Combining intervals graphs showing combined intervals
The Performance Tuning Toolkit also provides some debug assistance, such as generate thread dump, generate heap dump and enable trace.

Generating dumps

To generate a dump, select the server in the Hosts panel, then select either Generate Thread Dump or Generate Heap Dump from the Operation menu, as shown in Figure 9.
Figure 9: Generating a dump screen showing menu for generating a dump

Enabling trace

To enable trace, select the server in the Hosts panel, then select Enable Trace from the Operation menu, as shown in Figure 10.
Figure 10: Enabling trace screen showing menu for enabling trace
In the Trace Detail window, you can select a existing trace type or manually input the trace info in the trace dialog, as shown in Figure 11.
Figure 11: Inputing trace information dialog panel for inputting trace information

Editing the rule file

The customized rules for detecting performance degradation and locating bottlenecks are located in the rule file. To examine or edit the rules file, select Edit Rules from the Analysis menu. Figure 12 shows a rules file.
Figure 12: Editing the rules file window for editing rules
The syntax is very flexible and easy to use. Over time, more rules will be consolidated into the toolkit.

2011년 11월 29일 화요일

[information] Which is faster - WebSphere or WebLogic?

Which is faster ? WebSphere or WebLogic?

Which is faster – WebSphere or WebLogic?

Submitted by Roman Kharkovski 

Which is faster – WebSphere or WebLogic? I think this is a wrong question to ask because it all depends on what is your goal. Most enterprise IT systems are trying to handle maximum number of user requests (transactions) on the lowest amount of software and hardware at the lowest cost. This is called price/performance. If a plane can fly at 600 miles per hour and carry 200 passengers, but a train can travel at 150 miles per hour (I wish we had those in US) and can carry 2000 passengers – which is better? I don’t know. You need to calculate the cost of the ticket, check-in time, safety, etc. to be able to answer that question. Fortunately it is easy to compare price performance ratios for application servers. What we need to do is to measure the overall system performance, calculate overall cost of the system and we can come up with the price/performance characteristic of a given system.
IBM has a long history of performance leadership with WebSphere Application Server and has been leading most public application server benchmarks since 1999. Here are just a few examples:
  • IBM was first to publish results to the SPECjAppServer2001 and SPECjAppServer2002 benchmarks and held #1 position for significant periods of time. For both benchmarks Oracle did not publish anything for more than a year after IBM’s first publications.
  • IBM was the first and only to publish a SPECjAppServer2002 Distributed result, which included distributed transactions. None of the other vendors have ever published a result in this category.
  • IBM was the first to publish a SPECjAppServer2004 result. It took BEA well over a year to publish their first result with WebLogic and took Oracle two and a half years to publish theirs (with now defunct OC4J). Until recently Oracle continued to publish new results in the old benchmark SPECjAppServer2004 and claimed “performance leadership”. Why bother publishing results in the antiquated benchmark when nobody, but Oracle seems to be interested in EJB 2.x performance numbers?
  • In January 2010 IBM was the first vendor to publish, and for entire 2010 held #1 position in the SPECjEnterprise2010 benchmark with the result of 15,829.86 EjOPS (Enterprise jAppServer Operations per Second). Oracle has published their first result almost a year after IBM (do you notice the pattern?).
Enough history. Finally we get to the main subject in this post.
In August 2011 Oracle published the result with higher overall number of EjOPS, however cost per transaction is 1.88 times higher than IBM configuration as can be seen on the diagram below. Oracle threw more hardware and software into this benchmark to get larger overall EjOPS number, but it is like flying multiple planes and counting passengers in all of them. Customers care about the cost per transaction – in other words price/performance, not the maximum size of the environment (which you can also get if you run multiple IBM systems).
(Click on the image below to see a full resolution picture)

There are some things that are not tested in the SPECjAppserver2010 benchmark and for real world applications they can make a big difference. For example, WebSphere Application Server includes a Dynacache capability that allows for very flexible HTML, Servlet, JSP and SOAP/HTTP caching without modifications to the source application. This cache can also be dynamically replicated to the edge of the network using WebSphere Edge or extended via WebSphere eXtreme Scale. WebLogic Server has limited JSP caching available and requires manual editing of the source code to put in JSP tags. This editing requires designers of the applications to be overtly aware of the cache, while in WebSphere Application Server it is a purely administrative task and developers do not have to do anything special to enable it. Customer and internal IBM tests demonstrated that the IBM WebSphere Dynacache can help improve performance of some web applications by a significant amount (2x and 4x is not uncommon, but it all depends on the application). I must mention that Oracle Coherence product does not fix the lack of dynamic content caching for presentation tier and SOAP/HTTP in WebLogic Server.
Another capability not tested by the SPECjAppServer2010 is the replication of HTTPSession state. While WebLogic Server does supports HTTPSession failover, it does not do it efficiently. Unlike WebSphere Application Server, WebLogic Server does not support granular updates to HTTPSession, resulting in significant network and CPU overhead and slowing down the entire system.
WebSphere Application Server has a number of performance optimizations, including the IBM Java Runtime which is optimized for different hardware architectures including special optimizations done for the latest IBM POWER7 platform; fast Web services stack and XML processing; caching at every level of processing; special optimizations performed for DB2 connectivity and session persistence; and finally highly optimized JPA persistence engine. You can find performance tutorials and best practices for WebSphere Application Server here.
In the next article we will discuss standards support and programming model extensions for WebSphere Application Server and Oracle WebLogic Server. Stay tuned.
——–
Notes:
1. Cost per transaction is derived metric calculated based on the total cost of the System Under Test, including hardware and software costs over the 3 year period.
2. Oracle WebLogic Server 11g and Oracle Database 11g Release 2 with Oracle Real Application Clusters and Oracle Solaris running on a four-node SPARC T4-4 cluster, each system with four SPARC T4 3GHz processors, (128 core app server, 64 core db server), 40,104.86 SPECjEnterprise2010 EjOPS vs. WebSphere Application Server V8 on IBM System x3650 M2 and DB2 on IBM BladeCenter HS22, (8 core app server, 12 core db server), 2,341.12 SPECjEnterprise2010 EjOPS.
3. Sources: http://www.spec.org. Results current as of 11/3/11.