Deploying IBM WebSphere Software On Sun Solaris -Deep Dive

Sun IBM WebSphere Team Sun Microsystems, Inc.

Deploying IBM WebSphere on Sun Solaris Platform
• Agenda
> Syllabus > Redbook

03/12/08

Sun Customer and Partner Use Only

2

Sun and IBM SW Relationship

03/12/08

Sun Customer and Partner Use Only

3

IBM and Sun Relationship
The Sun WebSphere Team • Sun is a Tier-1 platform for IBM Software • Sun's WebSphere Team: Partner Sales & ISV Engineering
> > > > > >

New WebSphere Product Tests on Solaris Solaris 10, Zones, Niagara/Opteron, etc. Performance Benchmark Sun Server Sizing Estimation Engineering Escalation/Resolution Collaboration with IBM WebSphere Technical Office, Performance team, Portal Product team, Customer Center Product team, etc.

• Sun is a sponsor of IBM Impact 2008 (April 6-11, Las Vegas) > 2 Sessions and 1 BoF for WebSphere on Solaris
03/12/08

Sun Customer and Partner Use Only

4

IBM and Sun Relationship
The Sun WebSphere Team
The Redbook - A Collaborative Effort between Sun and IBM

• IBM publication • In final editing phase • About 470 pages documenting the best practices for > WebSphere deployment > Performance management > Optimization on Sun Solaris systems
http://redbooks.ibm.com/redpieces/abstracts/sg247584.html
03/12/08

Sun Customer and Partner Use Only

5

IBM and Sun Relationship
The Sun WebSphere Team
Why companies run IBM Software on Sun/Solaris? > Sun's product excellence: Solaris and Sun's systems have class leading performance, virtualization, TCO, and Roadmap > Thousands of successful WebSphere on Solaris deployments worldwide
> Largest Banks, Investment and Brokerage Firms > Insurance Companies, Health Care, Travel and Retail > Government, Telecommunications, Aerospace
> Use Sun as leverage – Don't get locked in to all-IBM implementation > Openness and choice of servers, storage, operating systems and

services > Solaris 10 on IBM x-Series, Blade Center, Dell Servers > OpenSolaris on IBM Mainframe
Sun Customer and Partner Use Only

http://money.cnn.com/news/newsfeeds/articles/marketwire/0334437.htm
6

03/12/08

WebSphere Product Overview

03/12/08

Sun Customer and Partner Use Only

7

IBM WebSphere Product Portfolio

03/12/08

Source: IBM

Sun Customer and Partner Use Only

8

IBM WebSphere Products on Sun Solaris
• IBM licenses and use the Java technology from Sun > Java SE and Java EE are the foundation for WebSphere software • IBM broadens support of WebSphere and other software, such as DB2, Informix, ECM, etc. products to Solaris 10 x64 • IBM and Sun collaborate efforts to help resolve customer escalations (e.g. via IBM's PMR process) > WebSphere support in Sun virtualization technologies > WebSphere Portal Server v5.x installation resolution > WebSphere Application Server v6.1 with 64-bit JVM > WebSphere Customer Center v6.5 with WAS v6.0.2 on Solaris 10
9

03/12/08

Sun Customer and Partner Use Only

IBM WebSphere Products on Sun Solaris
IBM WebSphere Product WebSphere Application Server ND V5.1.x (JDK 1.4.2_xx) ND V6.0.2.x (JDK 1.4.2_xx) ND V6.1.x (JDK 1.5.0_xx) XD V6.1.x (JDK 1.5.0_xx) WebSphere Portal Server V5.1.x.x V6.x WebSphere MQ V5.x V6.x WebSphere Message Broker V5.x V6.x
• •
03/12/08

Solaris 10/SPARC Solaris 10/x64 Solaris 9/SPARC

√ √ √ √ √ √ √ √ √ √

√ √ √ √ √ √ √ √

√ √ √ √ √ √ √ √ √

WAS v6.1 is also available with 64-bit JVM WAS v6.0.2 and WMQ v6.x based or later products can be deployed in Solaris 10 Zones
Sun Customer and Partner Use Only

10

WebSphere & Java Overview

03/12/08

Sun Customer and Partner Use Only

11

Java Technology Foundation
• WebSphere relies on the Java Technologies
> Java Standard Edition > JDK > JRE > Java Enterprise Edition > Components, API > Containers > Messaging > Transaction > Web Services > Application Programming Model
WebSphere Application Server

Java Virtual Machine

Sun Customer and Partner Use Only

12

Java Platform Standard Edition

Sun Customer and Partner Use Only

13

Java Virtual Machine (HotSpot)

Sun Customer and Partner Use Only

14

WebSphere Server Versions
WAS
V6.1 V6.0.2 V5.1.1 V5.1

Java EE
1.4 1.4 1.3 1.3

Java SE (JDK)
5 1.4.2 1.4.2 1.4.1
Also available with 64-bit JVM

• A WAS version is an implementation of a particular Java EE specification version while Java SE provides JDK and JRE • WAS is the core for other WebSphere products
> Portal Server, Process Server, Customer Center, etc.

• Be aware of specific bundled versions
Sun Customer and Partner Use Only

15

JDK Versions for WebSphere
• JDK bundled with WAS on Solaris (SPARC and x64) is Sun JDK with IBM modifications (i.e. ORB's, XML processors) • JIT, JVM (Memory Management, GC) operations make significant impact on WebSphere performance • With proper Fix Packs or JDK SR, JDK can be updated to later versions
WAS Version
6.1.0.x 6.0.2.x 6.0.1.x 6.0 5.1.1.x 5.1.1.x 5.1 5.0.2.x 5.0.1 5.0

JDK Version on Solaris
1.5.0_06 1.4.2_08 1.4.2_07 1.4.2_05 1.4.2_05 1.4.2_11 1.4.1_05 1.3.1_08 1.3.1_07 1.3.1_05
Sun Customer and Partner Use Only
* Solaris Container Support

* Solaris 10 Support (with SR4 06/2006)

http://www.ibm.com/support/docview.wss?rs=180&context=SSEQTP&uid=swg27005002

16

Sun Servers Overview

03/12/08

Sun Customer and Partner Use Only

17

Sun Energy Efficient Servers
• Niagara Servers
> > > > > >

Sun Fire T2000/T1000, T5220/T5120 UltraSPARC T-1/T2 CPU available with 4, 6, or 8 Cores Each core executes 4/8 simultaneous threads Best SwaP (Space, Watts and Performance) Metric Qualify for first ever energy rebate from PG&E Affordable servers (T1000 starting from $3995)

• Galaxy Servers
> Sun Fire x2100, x2200, x4100, x4200, x4600, x4500, ... > Fastest, most scalable and energy efficient enterprise x64

servers > Most affordable servers (x2100 starting from $745)
03/12/08

Sun Customer and Partner Use Only

18

Sun Energy Efficient Servers

http://www.sun.com/servers/coolthreads
19

03/12/08

Sun Customer and Partner Use Only

Sun SPARC based servers
• High-end servers
> Sun SPARC Enterprise M8000/M9000 > Sun Fire E20K/E25K servers > Dynamic System Domains and Dynamic

Reconfiguration capabilities

• Mid-Range
> Sun SPARC Enterprise M4000/M5000 > E4900/E6900 servers > Dynamic System Domains and Dynamic

Reconfiguration capabilities > Sun Fire v490/V890/E2900 (no domains) • All Sun servers fully support Solaris Containers
03/12/08

Sun Customer and Partner Use Only

20

Most Complete, Scalable Product Line
Sun Fire x64 Servers Sun Fire CoolThreads Servers
Sun Fire Sun Fire X2100 X4100 Sun Fire X4200 Sun Fire X4500 Sun Fire V40z Sun Fire Sun Blade 8000 Sun Grid Rack X4600 Systems

TM

Sun Fire T2000

Sun Fire T5220

Sun SPARC Enterprise Servers

M4000

M5000

M8000

M9000

Sun Fire UltraSPARC IV+ Servers
Sun Fire V490 Sun Fire V890 Sun Fire E2900 Sun Fire E4900 Sun Fire E6900 Sun Fire E20K/E25K

Sun Fire UltraSPARC IIIi Servers

Sun Fire V125/V215 Sun Fire V245

Sun Fire V445

Sun Customer and Partner Use Only

Solaris 10 Overview

03/12/08

Sun Customer and Partner Use Only

22

Solaris 10 (SPARC and IA-32/64)
Key Features • Solaris Containers • Secure Execution • Dynamic Tracing (DTrace) • Predictive Self-Healing • OpenSolaris.org > Open source/community • ZFS • Runs on Sun, IBM, Dell, HP
Virtualization capabilities with no additional cost
03/12/08

Sun Customer and Partner Use Only

23

Solaris Investment Protection

Guaranteed Binary Compatibility for 7 Years....

Solaris 2.6 to Solaris 10
03/12/08

Sun Customer and Partner Use Only

24

ISV Community Adopts Solaris 10

03/12/08

Sun Customer and Partner Use Only

25

Sun's Virtualization Technologies for deploying IBM WebSphere

03/12/08

Sun Customer and Partner Use Only

26

Sun's Virtualization Technologies
Hard Partitions Virtual Machines OS Virtualization Resource Management

Multiple OS's Trend to flexibility
Dynamic System Domains Logical Domains Sun xVM VirtualBox VMware

Single OS Trend to isolation
Solaris Containers Solaris Containers for Linux Applications Solaris Trusted Extensions Solaris Resource Manager (SRM)

03/12/08

Sun Customer and Partner Use Only

27

Dynamic System Domains
• Mainframe capability • Open technologies

03/12/08

Sun Customer and Partner Use Only

28

Dynamic System Domains
Hard Partition Technology

• Mid-range and high-end Sun servers support DSD • First introduced on Sun Enterprise 10000 in 1997 • Ability to separate a pool of hardware resources into sections, electrically isolated from each other
> Extremely high fault isolation > Flexibility to “move” hardware from one domain to another by

simply entering a command

M4000 M5000 M8000 M9000

Domain 1

Domain 2

Domain 1

Domain 2

SF4900 SF6900 SF20K SF25K
29

03/12/08

Sun Customer and Partner Use Only

Dynamic System Domains
Achieving Consolidation Goals

• Reduce Hardware
> Two smaller systems can be combined into a larger, flexibly-

sized domain, reducing hardware, OS, and mgmt costs > A system with a first-shift load can be combined with a second-shift system to reduce total resources needed, including floor space and reduce hardware support costs

• Maintain Service Levels
> Service levels will increase through improved hardware

redundancy

• Maintain Architectural Flexibility
> Flexibility will increase by using the dynamic features of DSD
03/12/08

Sun Customer and Partner Use Only

30

Logical Domains (LDoms)
Guest domains
File Server Web Server Mail Server

Application

OS

Control Domain Ultra lightweight Hypervisor in the firmware
Server

03/12/08

Sun Customer and Partner Use Only

31

Logical Domains (LDoms)
• Server Virtualization: Supported on UltraSPARC T1, T2 based systems and future CMT systems
> Sun Fire T5220, T5210, T1000, T2000, etc.

• Up to 64 LDoms per server
> CPU thread individually assignable to different Ldoms > Partitioning of a physical system into multiple virtual

machines

• Each virtual machine should appear as an entirely independent machine
> own OS instance, patches, tuning parameters > own user accounts, administrators > own disks, network interfaces, MAC & IP addresses
03/12/08

Sun Customer and Partner Use Only

32

Logical Domains (LDoms)
• Control/Service Domain and Guest Domains > Control Domain hardening • Each guest domain can be configured, started and stopped independently
> Without requiring a power-cycle of machine

• Ability to dynamically add and remove vCPUs while OS is running • Many benefits
> Greatly increased utilization > More flexibility in services deployment in data center
03/12/08

Sun Customer and Partner Use Only

33

Solaris Containers
• Solaris Containers provide isolated and virtualized software application deployment (e.g. WebSphere Application Environment)
> Available on all systems that run Solaris 10

• Solaris Containers consists of
> Zones > Resource Management > Dynamic Resource Pools

• Zones provide the virtualization capabilities • Resource management allows partitioning of resource utilization
03/12/08

Sun Customer and Partner Use Only

34

Solaris 10 Containers
• Resource pools can be defined to manage workload among zones allowing several isolated WebSphere environment on the same server • Solaris 10 8/07 adds new capabilities to cap memory (physical/virtual), dedicate CPU's, choose FSS for zone configuration • Solaris 8 Migration Assistant to host Solaris 8 Containers on Solaris 10
WAS v5.1.1 Solaris 8

WAS v6.1

03/12/08

Sun Customer and Partner Use Only

35

Zones

Legend -- Global Zone (the system) -- Zone 1 -- Zone 2 -- Zone 3
03/12/08

Sun Customer and Partner Use Only

36

Zones
• Provides virtualized OS environments, each looking like a Solaris instance
> > > > > >

Implemented via a lightweight layer in the OS Details of physical resources are hidden Separate host name, IP address, IP port space Processes cannot see or affect processes in other containers Each zone can be administered independently No porting as the ABI/API is the same

03/12/08

Sun Customer and Partner Use Only

37

Zone's granularity
• 8,000+ zones per OS instance
> 140,000+ zones on an SF25K

• Does not require dedicated CPU's, memory, physical devices, etc.
> Just the disk space for unique root filesystem

• Existing hardware resources can be:
> multiplexed across containers, or > allocated per container using resource pools

03/12/08

Sun Customer and Partner Use Only

38

Zone's security
• Security boundary around each zone • Restricted subset of privileges
> A compromised container is unable to escalate its

own privileges

• Important name spaces are isolated • Processes running in a container are unable to affect activity in other containers or the global zone

03/12/08

Sun Customer and Partner Use Only

39

Two types of Zones
• Sparse Root Zone and Whole Root Zone
> Loopback File System (LOFS) are pointers to system directories > Less space, quicker maintenance time with Sparse Root Zone > More flexibility with Whole Root Zone (e.g. write to /usr)

03/12/08

Sun Customer and Partner Use Only

40

Resource Management
• Without Resource Management
> A misbehaving application can

hog the system

other applications • With Resource Management
policies can be put in place > System utilization is more predictable (meeting SLA) > Available for various scopes
03/12/08

> Causing resource starvation in

> Different resource management

Sun Customer and Partner Use Only

41

Resource Management
• Scope of Resource Management in Solaris
> control resources upon the desired level

03/12/08

Sun Customer and Partner Use Only

42

Processor Sets and Pools
• A resource partitioning mechanism in Solaris • Assign a dedicated set of processors for a specific use • Can dynamically reconfigure the processors from one set to another • Solaris 10 8/07 has new zone configuration feature for dedicated processors
03/12/08

Sun Customer and Partner Use Only

43

Solaris Containers with Resource Pools
• Containers can have different resource pools

03/12/08

Sun Customer and Partner Use Only

44

WebSphere Support for Virtualization

IBM's support position statement for virtualization IBM's Technote for Virtualization Technologies includes Solaris Virtualization technologies like LDOMs and Zones Clarifies the support to be provided when IBM® WebSphere® Application Server customers are operating in a Virtualization operating system environment

http://www.ibm.com/support/docview.wss?uid=swg21242532
03/12/08

Sun Customer and Partner Use Only

45

Selecting the right Virtualization for your business needs
Keeping Competitive edge
• Improve efficiency • Better Manageability • Reduce operating costs • Increase ROI • Faster time to market • Enable aggressive growth

03/12/08

Sun Customer and Partner Use Only

46

Selecting the right Virtualization for your business needs

Built-in common feature in Solaris 10

03/12/08

Sun Customer and Partner Use Only

47

Deployment Considerations for WebSphere in Solaris Containers

03/12/08

Sun Customer and Partner Use Only

48

Why virtualize?
Consolidation
• Increased utilization • Reduced servers • Improved footprints • Less power/cooling • More agile environment

03/12/08

Sun Customer and Partner Use Only

49

Why virtualize?
• Agility

03/12/08

Sun Customer and Partner Use Only

50

Why virtualize?
• Agility

03/12/08

Sun Customer and Partner Use Only

51

WebSphere in Zones
• Safely and securely deploy different WAS versions and Fix Packs for different business units • No port conflicts • Each zone can have its own time zone, locale, naming services, etc. • Each business unit has its own user identity including root and can reboot the zone independently
03/12/08

Sun Customer and Partner Use Only

52

WebSphere in Zone
• Possible to share a WAS installation globally among zones • Centralized install base eases maintenance • Better configuration management

03/12/08

Sun Customer and Partner Use Only

53

Flexibility with zone cloning
• Zone cloning is available as of Solaris 10 8/07

03/12/08

Sun Customer and Partner Use Only

54

Relocating a zone with WebSphere
• A zone can be detached/attached (Solaris 10 8/07) • Ease of maintenance
> Example to move a standalone WAS install from Host-A to Host-B

03/12/08

Sun Customer and Partner Use Only

55

Relocating a zone with WebSphere
• A zone can be detached/attached (Solaris 10 8/07) • Ease of maintenance
> Example to move a shared WAS install from Host-A to Host-B

03/12/08

Sun Customer and Partner Use Only

56

Solaris Container Scenarios and Examples

03/12/08

Sun Customer and Partner Use Only

57

Example#1: Container (Zone+Resources)
• An example to create a Solaris Container with a pool comprising a processor set with 2 “processors”
-- Enable resource pools # pooladm -e # pooladm -s --- Create separate resource pools for each zone and save the configuration -# poolcfg -c 'create pset pset_app_zone1 (uint pset.min = 2; uint pset.max = 2)' # poolcfg -c 'create pool pool_app_zone1' # poolcfg -c 'associate pool pool_app_zone1 (pset pset_app_zone1)' # zonecfg -z app-zone1 app-zone1: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:app-zone1> create zonecfg:app-zone1> set zonepath=/export/app-zone1 zonecfg:app-zone1> set autoboot=true zonecfg:app-zone1> set pool=pool_app_zone1 zonecfg:app-zone1> add net zonecfg:app-zone1:net> set physical=e1000g1 zonecfg:app-zone1:net> set address=129.110.14.21 zonecfg:app-zone1:net> end ...... zonecfg:app-zone1> verify zonecfg:app-zone1> commit zonecfg:app-zone1> exit

03/12/08

Sun Customer and Partner Use Only

58

Example#2: Container (Zone+Resources)
• Another example to create a Solaris Container with a processor set with 2 “processors” as well as capped memory to 1GB physical and swap space using the Solaris 10 8/07 zone features
# zonecfg -z app-zone1 app-zone1: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:app-zone1> create zonecfg:app-zone1> set zonepath=/export/app-zone1 zonecfg:app-zone1> set autoboot=true zonecfg:app-zone1>add dedicated-cpu zonecfg:app-zone1:dedicated-cpu>set ncpus=2 zonecfg:app-zone1:dedicated-cpu>set importance=2 zonecfg:app-zone1:dedicated-cpu>end zonecfg:yourzone> add capped-memory zonecfg:yourzone:capped-memory> set physical=1g zonecfg:yourzone:capped-memory> set swap=1g zonecfg:yourzone:capped-memory> end zonecfg:app-zone1> add net zonecfg:app-zone1:net> set physical=e1000g1 zonecfg:app-zone1:net> set address=129.110.14.21 zonecfg:app-zone1:net> end ...... zonecfg:app-zone1> verify zonecfg:app-zone1> commit zonecfg:app-zone1> exit

03/12/08

Sun Customer and Partner Use Only

59

WebSphere Application Server (WAS) Deployment
• A non-global (Sparse-Root or Whole-Root) Zone can be created with resource control properties to make a complete Container • Scenarios
1. Install WAS in the Global Zone and create one or more profiles (instances) there 2. Install WAS in the Global Zone, inherit this base installation in a Sparse-Root zone, and create one or more profiles in that zone 3. Install WAS in a Sparse-Root Zone and create one or more profiles in that zone 4. Install WAS in a Whole-Root Zone and create one or more profiles in that zone
03/12/08

Sun Customer and Partner Use Only

60

Scenario 1: Install WAS and Create Profiles (instances) in Global Zone
global# echo $SHELL /usr/bin/bash global# export DISPLAY=xserver1:1 global# /net/nfs_server1/ibmsw/WAS60/launchpad.sh ....... global# /opt/IBM/WebSphere/AppServer/bin/ProfileCreator/pctSolaris.bin

• This scenario with no zones (i.e. Global only) applies to WAS v5.x, v6.0.x, v6.1, and newer versions • The rest of the scenarios with Zones (i.e. non-global zones) require WAS v6.0.x or newer versions • Different version has different commands to create Profiles or Instances • Solaris Resource Control can still be applied to carve out resources like processor, fair-shared scheduling, etc. (Like SRM in Solaris 9)
03/12/08

• But, no sub-capacity licensing eligible per IBM (Need to have a complete Solaris ContainerPartner Use Only Sun Customer and i.e. Zone+Resource Control)

61

Scenario 2: Install WAS in Global Zone, Inherit the base installation in
global# zonecfg -z waszone2 -f global# cd /net/nfs_server1/ibmsw/WAS60 /waszone/waszone2.cfg global# export DISPLAY=xserver1:1 global# zoneadm -z waszone2 install global# ./launchpad.sh Preparing to install zone <waszone2>. ....... Creating list of files to copy from the global global# zoneadm list -cv zone. global Copying <2579> files to the zone. global# vi /waszone/waszone2.cfg Initializing zone product registry. # Determining zone package initialization order. # Script to create WAS Node2 Zone Preparing to initialize <1032> packages on the # zone. create global# zoneadm -z waszone2 boot set zonepath=/export/zones/waszone2 ..... sys config .... set autoboot=true global# zlogin -C waszone2 add net set physical=ce1 waszone2 console login: root set address=192.168.1.202/24 password: end Last login: Mon Nov 28 18:15:27 on console add inherit-pkg-dir Sun Microsystems Inc. SunOS 5.10 Generic set dir=/opt/IBM/WebSphere January 2005 end verify waszone2# export DISPLAY=xserver1:1 commit waszone2# /opt/IBM/WebSphere/AppServer/bin/\ # ProfileCreator/pctSolaris.bin # End of Script #
Sun Customer and Partner Use Only

a Sparse-Root Zone, Create Profile(s) in that zone

03/12/08

62

Scenario 3: Install WAS in a Sparse-Root Zone and Create Profile(s) in
global# zoneadm -z waszone2 install global# zoneadm list -cv Preparing to install zone <waszone2>. global Creating list of files to copy from the global zone. global# vi /waszone/waszone2.cfg Copying <2579> files to the zone. # Initializing zone product registry. # Script to create WAS Node2 Zone Determining zone package initialization order. # Preparing to initialize <1032> packages on the zone. create global# zoneadm -z waszone2 boot set zonepath=/export/zones/waszone2 set autoboot=true ..... sys config .... add net set physical=ce1 global# zlogin -C waszone2 set address=192.168.1.202/24 end waszone2 console login: root # Don't inherit /opt. Will install password: # WAS in local zone's own /opt Last login: Mon Nov 28 18:15:27 on console #add inherit-pkg-dir Sun Microsystems Inc. SunOS 5.10 Generic # set dir=/opt/IBM/WebSphere January 2005 #end verify waszone2# export DISPLAY=xserver1:1 commit waszone2# cd /net/nfs_server1/ibmsw/WAS60 waszone2# ./launchpad.sh # ...... # End of Script waszone2# /opt/IBM/WebSphere/AppServer/bin/\ # ProfileCreator/pctSolaris.bin global# zonecfg -z waszone2 -f /waszone/waszone2.cfg
Sun Customer and Partner Use Only

that zone

03/12/08

63

Scenario 4: Install WAS in a Whole-Root Zone and Create Profile(s) in
global# zoneadm -z waszone2 install global# vi /waszone/waszone2.cfg Preparing to install zone <waszone2>. # Creating list of files to copy from the global zone. # Script to create WAS Node2 Zone Copying <2579> files to the zone. # Initializing zone product registry. create Determining zone package initialization order. set zonepath=/export/zones/waszone2 Preparing to initialize <1032> packages on the zone. set autoboot=true global# zoneadm -z waszone2 boot # Make it a Whole-Root Zone remove inherit-pkg-dir dir=/lib ..... sys config .... remove inherit-pkg-dir dir=/usr #remove inherit-pkg-dir dir=/sbin global# zlogin -C waszone2 #remove inherit-pkg-dir dir=/platform #end waszone2 console login: root add net password: set physical=ce1 Last login: Mon Nov 28 18:15:27 on console set address=192.168.1.202/24 Sun Microsystems Inc. SunOS 5.10 Generic end January 2005 verify commit waszone2# export DISPLAY=xserver1:1 # waszone2# cd /net/nfs_server1/ibmsw/WAS60 waszone2# ./launchpad.sh # End of Script ...... # waszone2# /opt/IBM/WebSphere/AppServer/bin/\ global# zonecfg -z waszone2 -f ProfileCreator/pctSolaris.bin /waszone/waszone2.cfg
03/12/08

that zone

Sun Customer and Partner Use Only

64

Other IBM Software Components

03/12/08

Sun Customer and Partner Use Only

65

IBM HTTP Server (IHS) Deployment
• IHS v6.x can be installed in Non-Global Zones (Sparse-Root or Whole-Root) similar to the scenarios for WAS deployment
> IHS installer will create symbolic links for IBM Global Security
/usr/bin/gsk7capicmd -> /opt/ibm/gsk7/bin/gsk7capicmd /usr/bin/gsk7cmd -> /opt/ibm/gsk7/bin/gsk7cmd /usr/bin/gsk7ikm -> /opt/ibm/gsk7/bin/gsk7ikm /usr/bin/gsk7ver -> /opt/ibm/gsk7/bin/gsk7ver

Kit (GSK) (e.g. from /opt/ibm/gsk7, bin and lib directories) in /usr/bin and /usr/lib (See /opt/IBMIHS/gskitInstall.log)
/usr/lib/libgsk7cms.so -> /usr/lib/libgsk7dbfl.so -> /usr/lib/libgsk7drld.so -> /usr/lib/libgsk7iccs.so -> /usr/lib/libgsk7kicc.so -> /usr/lib/libgsk7kjni.so -> /usr/lib/libgsk7km.so -> /usr/lib/libgsk7krnc.so -> /usr/lib/libgsk7krrb.so -> /usr/lib/libgsk7krsw.so -> /usr/lib/libgsk7msca.so -> /usr/lib/libgsk7p11.so -> /usr/lib/libgsk7ssl.so -> /usr/lib/libgsk7sys.so -> /opt/ibm/gsk7/lib/libgsk7cms.so

/usr/lib/libgsk7acmeidup.so -> /opt/ibm/gsk7/lib/libgsk7acmeidup.so /opt/ibm/gsk7/lib/libgsk7dbfl.so /opt/ibm/gsk7/lib/libgsk7drld.so /opt/ibm/gsk7/lib/libgsk7iccs.so /opt/ibm/gsk7/lib/libgsk7kicc.so /opt/ibm/gsk7/lib/libgsk7kjni.so /opt/ibm/gsk7/lib/libgsk7km.so /opt/ibm/gsk7/lib/libgsk7krnc.so /opt/ibm/gsk7/lib/libgsk7krrb.so /opt/ibm/gsk7/lib/libgsk7krsw.so /opt/ibm/gsk7/lib/libgsk7msca.so /opt/ibm/gsk7/lib/libgsk7p11.so /opt/ibm/gsk7/lib/libgsk7ssl.so /opt/ibm/gsk7/lib/libgsk7sys.so /opt/ibm/gsk7/lib/libgsk7valn.so

03/12/08

/usr/lib/libgsk7valn.so -> Sun Customer and Partner Use Only

66

IBM HTTP Server (IHS) Deployment
• No issue with Whole-Root Zone since it has write privileges to /usr, but workaround is require for Sparse-Root Zones
> Per IBM IHS engineering, the best known solution (for now) is

to first install GSKit in the global zone to create the symbolic links in /usr before installing the IHS or WebSphere plug-in in the local zone
> Run gskit.sh from within the IHS or WebSphere plug-in installation image

> The maintenance level of GSKit in use is determined by what

is installed in the local zone, since no real code lives in /usr enabling to control the level of GSKit on a zone by zone basis > With a support contract, you can open a PMR with IBM Technical Support if more assistance is required
03/12/08

Sun Customer and Partner Use Only

67

IBM HTTP Server (IHS) Deployment
• Other considerations
> An alternative is to manually linking in /usr is to have

/opt/ibm/gsk7/bin in PATH and /opt/ibm/gsk7/lib in LD_LIBRARY_PATH shell environment variables for IHS processes > IHS can also be installed and run by a non-root user
➢ ➢ ➢

No GSKit will be installed (like Developer Install) No SSL capability (root privileges required to install gsk) Guide to SSL http://www.ibm.com/support/docview.wss?rs=177&uid=swg21179559
http://www.ibm.com/support/docview.wss?rs=177&uid=swg1PK08359 http://www.ibm.com/support/docview.wss?rs=177&uid=swg21173214
Sun Customer and Partner Use Only

> For non-root user to run IHS, port number must be > 1024

> IHS and GSK versions are described by IBM

03/12/08

68

Other IBM Software Deployment
• IBM WebSphere XD – do just like ND (e.g. Containers, LDoms, etc.) • IBM WebSphere MQ
> WMQ v6.0 can be deployed in Solaris Zones > Detail on various approaches is available
> http://www.ibm.com/support/docview.wss?rs=171&uid=swg21233258

• IBM WebSphere Message Broker > V6.x is supported by IBM in the Global zone or a whole root non-global zone, and must be installed separately in each (Defect 44094)
> http://www-1.ibm.com/support/docview.wss?rs=977&uid=swg27007091
Sun Customer and Partner Use Only

03/12/08

69

Other IBM Software Deployment
• IBM WebSphere Process Server > V6.0.2 is supported in Non-Global Zones
> http://www.ibm.com/support/docview.wss?rs=2307&context=SSQH9M&uid=swg27

008580

• IBM DB2 in Solaris Zone
> http://www.sun.com/bigadmin/features/articles/db2_containers.html

• IBM WebSphere Enterprise Service Bus > TBD

03/12/08

Sun Customer and Partner Use Only

70

WebSphere Performance Update

03/12/08

Sun Customer and Partner Use Only

71

WebSphere Performance Update
• SPECjAppServer 2004 Benchmark Results on Solaris 10 and per T2000 Server (1 Instance)
> UltraSPARC T1 1.2 Ghz

 615 JOPS (WebLogic 9, JDK 1.5_06 )  444 JOPS (WAS 6.0.2, JDK 1.4.2_08) on 1.2 Ghz > A world record published using WAS v6.1  616 JOPS (with JDK 1.5_06) on US-T1 1.2 Ghz (T2000) Internal test of T5220 shows 2x performance of T2000 • UltraSPARC T1 and T2 processors outperform competition for multithreaded applications like WebSphere and DB

http://www.spec.org/jAppServer2004/results/res2006q3
03/12/08

Sun Customer and Partner Use Only

72

IBM Software Licensing

03/12/08

Sun Customer and Partner Use Only

73

IBM WebSphere Licensing for Sun Servers
• IBM's new license scheme -Processor Value Unit (PVU)

WebSphere Product Update and New Licensing
03/12/08

Sun Customer and Partner Use Only

74

IBM WebSphere Licensing for Sun Servers

Sub-capacity licensing
• Supported Processor Technologies • Supported Virtualization Technologies

http://www-306.ibm.com/software/lotus/passportadvantage/subcaplicensing.html
WebSphere Product Update and New Licensing
03/12/08

Sun Customer and Partner Use Only

75

IBM WebSphere Licensing for Sun Servers
Description CPU Info # of Servers 1 1 20 1 1 1 1 # of WAS Nodes 2 1 20 2 1 1 1 Cores/ Server 8 8 2 4 2 2 4 JOPS 1232 616 4386 1197 349 404 618 JOPS/ JOPS/ PVU/ Server Node Core 1232 616 219 1197 349 404 618 616 616 219 599 349 404 618 50 30 50 100 100 100 100 PVU/ Server 400 240 100 400 200 200 400 Expected JOPS # of Servers Required PVU Required WAS License Cost Sun T5220 WAS 1x Sun US-T1 6.1 32-bit 1.2GHz 8 Cores Sun T2000 WAS 1x Sun US-T1 6.1 32-bit 1.2GHz 8 Cores IBM xSeries Blade Center WAS 6.1 64-bit IBM p570 WAS 6.1 32-bit IBM p505 WAS 6.1 64-bit IBM p505 WAS 6.1 32-bit Intel Xeon 2x 3.6GHz 1 Core IBM 2x p6 4.7GHz 2 cores IBM 1x p5+ 2.1GHz 2 cores IBM 1x p5+ 2.1GHz 2 cores

2000 2000 2000 2000 2000 2000 2000

2 4 10 2 6 5 4

800 960 1000 800 1200 1000 1600

$120,000 $144,000 $150,000 $120,000 $180,000 $150,000 $240,000

IBM p505Q WAS IBM 2x p5+ 6.1 64-bit 1.65GHz 2 cores IBM p595 BladeCenter JS22 WAS 6.1 64-bit
• •

IBM 2x p6 4.7GHz 2 cores

26

26

4

14004

539

539

100

400

2000

4

1600

$240,000

Based on the industry standard benchmark results from http://www.spec.org/jAppServer2004/results/jAppServer2004.html All are public results except the result of T5220 that is ased on a Sun Internal Test • Expected JOPS is a hypothetical target. The actual performance will depend on your applications and environment configuration
03/12/08

Sun Customer and Partner Use Only

76

WebSphere Application Server Performance on the Solaris OS
Albert Leigh, Solution Architect Dileep Kumar, Sr. Staff Engineer Sun IBM WebSphere Team Sun Microsystems, Inc.

Agenda
• Background • The Redbook • Solaris and WebSphere • Performance Tuning > WebSphere > Java > Solaris • Challenges on different H/W architecture
http://redbooks.ibm.com/redpieces/abstracts/sg247584.html
Sun Customer and Partner Use Only

78

Background
• Solaris is one of the many OS on which WAS is available > WAS features and functionalities same > Sun's JDK packaged and distributed by IBM >Some components replaced with IBM implementation • Performance is dependent on JVM • Considerations for > WAS and its JVM tuning on Solaris > Solaris on various hardware architectures
Sun Customer and Partner Use Only

79

Background
• Performance management is an iterative process and requires holistic approach • Good system performance leads to reliability, availability, and scalability resulting in
> > > > >

Higher up time Higher utilization of available resources Higher throughput to handle more workload Quicker responses to client requests Better Return On Investments (ROI)

• Ultimately to increase your company's business value and competitive advantage
Sun Customer and Partner Use Only

80

Background
The Big Picture

Source: IBM
Sun Customer and Partner Use Only

81

Background

Blackbox View

Source: IBM
Sun Customer and Partner Use Only

82

Background

Sub-system View

Source: IBM
Sun Customer and Partner Use Only

83

The Redbook
Very comprehensive material as result of joint Sun/IBM Team work > Detailed deployment topologies > Tools/Techniques described with samples > Performance Management explained in detail > 407 pages > Available at:
http://redbooks.ibm.com/redpieces/abstracts/sg247584.html

Sun Customer and Partner Use Only

84

Performance Dependencies
De-composition of the sub-system in Application Tier • WebSphere & its Fix Pack versions • The Java Platform • Operating System • Deployment hardware architecture • Virtualization

Sun Customer and Partner Use Only

85

Performance Dependencies
WebSphere & Fix Pack versions • WebSphere Application Server versions have varying Java versions

WAS
V6.1 V6.0.2 V5.1.1 V5.1

Java EE
1.4 1.4 1.3 1.3

Java SE (JDK)
5 1.4.2 1.4.2 1.4.1
Also available with 64-bit JVM

• Refresh Packs and Fix Packs can affect performance • WAS is the core for other WebSphere products
> Portal Server, Process Server, Customer Center, etc.
Sun Customer and Partner Use Only

86

Performance Dependencies
The Java Platform
• JDK bundled with WAS on Solaris (SPARC and x64) is Sun JDK with IBM modifications (i.e. ORB's, XML processors) • JIT, JVM (Memory Management, GC) operations make significant impact on WebSphere performance • With proper Fix Packs or JDK SR, JDK can be updated to later versions
WAS Version JDK Version on Solaris
6.1.0.x 1.5.0_06 6.0.2.x 1.4.2_08 * Solaris Container Support 6.0.1.x 1.4.2_07 6.0 1.4.2_05 5.1.1.x 1.4.2_05 5.1.1.x 1.4.2_11 5.1 1.4.1_05 5.0.2.x 1.3.1_08 http://www.ibm.com/support/docview.wss?rs=180&context=SSEQTP&uid=swg27005002 Sun Customer and Partner Use Only

87

Performance Dependencies
Operating System • Solaris versions > Solaris 8, Solaris 9, Solaris 10 > Solaris Updates (e.g. Solaris 10 11/06 vs 8/07) > Which Binaries > SPARC
– –

WAS is available with 32-bit or 64-bit JVM

WAS is available with 64-bit JVM • Keep system patches up to date > Some patches are targeted for Java
Sun Customer and Partner Use Only

> x64

88

Solaris Patches for Java
• Keep the Java Patches for Solaris up-to-date
>

http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE

Sun Customer and Partner Use Only

89

Performance Dependencies
Deployment hardware architecture • SPARC > Chip Multi-threading Technology (CMT)
> UltraSPARC T1 / T2
> Chip Multi-processing (CMP) > UltraSPARC IV+ and SPARC64 VI processors > AMD Opteron 64

• AMD/Intel > Opteron 64 > Intel Xeon 64
Sun Customer and Partner Use Only

90

Performance Dependencies
Virtualization • Solaris Containers
> OS virtualization based on single Solaris instance > Virtually no overhead

• Logical Domains
> Available on CMT based systems > Firmware based Hypervisor

• Dynamic System Domains (high-end systems) • Sun xVM (future)

Sun Customer and Partner Use Only

91

Java Technology Foundation
• WebSphere relies on the Java Technologies
> Java Standard Edition > JDK > JRE > Java Enterprise Edition > Components, API > Containers > Messaging > Transaction > Web Services > Application Programming Model
WebSphere Application Server

Java Virtual Machine

Sun Customer and Partner Use Only

92

Java Platform Standard Edition

Sun Customer and Partner Use Only

93

Java Virtual Machine (HotSpot)

Sun Customer and Partner Use Only

94

JDK 5 Improvements over JDK 1.4.2
• New Language Features:
> Generics, Autoboxing/Unboxing, Varargs > Enhanced for loop (“foreach”), Type-safe enumerations > printf, Static import, Metadata

• • • • • •

Performance, Scalability, Reliability JVM Ergonomics Class data sharing Monitoring & Manageability (JMX, MBean) New JVM profiling API Improved Diagnostic ability
Sun Customer and Partner Use Only

95

JVM Self Tuning (Ergonomics)
• Less reliance on command line flags • More support for adaptive self-tuning • Server class performance for Server class machines out of the box
> > > > >

2 CPU and 2 GB Ram Parallel (throughput) Collector (-XX:+UseParallelGC) Server compiler (-server) Max Heap (-Xmx) ¼ Max Memory or 1GB Initial Heap (-Xms) 1/64 Max Memory or Max Heap

Sun Customer and Partner Use Only

96

JVM Self Tuning (Ergonomics)
• Maximum GC pause time goal
> -XX:MaxGCPauseMillis=<nnn>

> This is a hint, not a guarantee > GC will adjust parameters to try and meet goal > Can adversely effect application throughput

• Throughput goal
> -XX:GCTimeRatio=<nnn>

> GC Time : Application time = 1 / (1 + nnn) > e.g. -XX:GCTimeRatio=19 (5% of time in GC)

Sun Customer and Partner Use Only

97

Java Performance Improvement

Sun Customer and Partner Use Only

98

WebSphere Performance Improvement

Note: Solaris SUT is not the recent hardware and not CMT as labeled. Source: IBM
Sun Customer and Partner Use Only

99

Deployment Considerations
• Standard vs Virtualized Configurations
> Sun Virtualization Technologies

• Resource Control • Solaris Schedulers (e.g. FSS, FX) • Understanding of the underlying H/W architecture > CPU (SPARC, Intel/AMD, CMT) > Network devices

Sun Customer and Partner Use Only

100

WebSphere Performance Issues
• Multi-tier environment with many inter-dependencies • Performance issues can be caused by
> > > >

User applications Underlying JVM Underlying Operating Systems Infrastructure
> Network, Firewall, Storage, etc.

> Other dependent tiers > Web Server, DB, ERP, Web Services

• Follow best practices to prevent from pitfalls
Sun Customer and Partner Use Only

101

Performance Tuning – Check List
Read the Redbook and IBM's WAS Info Center Documentation
http://www.redbooks.ibm.com/redpieces/abstracts/sg247584.html > http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com .ibm.websphere.nd.doc/info/ae/ae/rprf_hotparameters.html
>

• Review HW/SW prerequisites for WAS • Install the most current refresh pack, fix pack, and recommended interim fixes • Check HW configuration and settings • Review your application design • Tune the Solaris Operating System
Sun Customer and Partner Use Only

102

Performance Tuning – Check List
• Tune the Java Virtual Machine settings • Use a Type-4 (or pure Java) JDBC driver • Tune WAS JDBC Resources and associated connection pools • Enable the “Pass by Reference” option if applicable • Ensure that the transaction log is on a fast disk • Tune related components, such as DB, MQ, etc. • Disable functions that are not needed

Sun Customer and Partner Use Only

103

Performance Tuning – Solaris OS
• Still using Solaris 8? Upgrade to Solaris 10
> Make use of LWP or Alternate Thread Library > IBM Technote (SWG21107291) explains the details
http://www.ibm.com/support/docview.wss?rs=180&context=SSEQTP&uid=swg21 107291

• To examine, run the Solaris command
> pldd <PID of WAS java process>

• Check the output to verify path to libthread.so
> /usr/lib/libthread.so > /usr/lib/lwp/libthread.so

• Set env LD_LIBRARY_PATH in startServer.sh or set the JVM argument -XX:UseBoundThreads for older than JDK 5
Sun Customer and Partner Use Only

104

Performance Tuning – Solaris OS
• Detail explanation of the Java and Solaris Thread Models is available:
http://java.sun.com/docs/hotspot/threads/threads.html

• On Solaris 9, LWP or the Alternate Thread Library became standard • Use of Alternative Heap Allocator:
> LD_PRELOAD=/usr/libumem.so

> Then, run the WAS java process with this env setting
> http://java.sun.com/performance/reference/whitepapers/tuning.html

Sun Customer and Partner Use Only

105

Performance Tuning – Solaris OS
• Setting Solaris kernel parameters for /etc/system described in the IBM Info Center
set set set set set set set shmsys:shminfo_shmmax shmsys:shminfo_shmseg shmsys:shminfo_shmmni semsys:seminfo_semaem semsys:seminfo_semmni semsys:seminfo_semmap semsys:seminfo_semmns = = = = = = = 4294967295 1024 1024 16384 1024 1026 16384 set set set set set set set semsys:seminfo_semmsl semsys:seminfo_semopm semsys:seminfo_semmnu semsys:seminfo_semume msgsys:msginfo_msgmap msgsys:msginfo_msgmax rlim_fd_cur=1024 = = = = = = 100 100 2048 256 1026 65535

• Of all these parameters, you need set rlim_fd_cur=1024 • The rest are legacy from embedded messaging in WAS v5.x
Sun Customer and Partner Use Only

106

Performance Tuning – Solaris OS
• General tuning applied to all Sun servers: SPARC and Opteron
> Use Fixed Priority Scheduling Class (FX) (+~10%)

instead of the default FSS class

# /usr/bin/priocntl -s -c FX -m 59 -p 59 -i pid <PID of JAVA Process>

> > > > >

Mutex Contention (mpstat “smtx” column) Multiple WAS instances for better performance TCP tuning File system tuning Network Interrupts

• Specific tuning for UltraSPARC IV/IV+ servers
> Recommended network drivers tuning available
Sun Customer and Partner Use Only

107

Performance Tuning – Solaris OS
• Solaris TCP tunings
ndd ndd ndd ndd ndd ndd -set -set -set -set -set -set /dev/tcp /dev/tcp /dev/tcp /dev/tcp /dev/tcp /dev/tcp tcp_conn_req_max_q 8192 tcp_conn_req_max_q0 8192 tcp_max_buf 4194304 tcp_cwnd_max 2097152 tcp_recv_hiwat 400000 tcp_xmit_hiwat 400000

• These settings are a good start to handle thousands of connections and may require additional tuning • General/specific OS tuning discussed here are not uncommon or unique to Solaris

Sun Customer and Partner Use Only

108

WebSphere Tuning Checklist

Source: IBM

from IBM WebSphere Performance Tuning Guide

Performance Tuning -- WebSphere

Funnel Queuing Model
Source: IBM
Sun Customer and Partner Use Only

110

Performance Tuning -- WebSphere
• Thread Pool Sizes
> Fixed size pool gives better performance > Lower is better > Example Tuning Parameters:

WebContainer Min/Max: 30/30 Default Min/Max: 10/10 ORB Min/Max: 22/22

• Default Thread Pool
> Observe the spikes > Default value may be adequate as it does not require

much resources

Sun Customer and Partner Use Only

111

Performance Tuning -- WebSphere
• EJB Container
> Example Tuning Parameters:

Bean Cache: 30530 Timeout: 3000

• Web Container HTTP Transport
> Keep Alive > Buffer Size > Example Tuning Parameters:
set set set set set

keepAliveEnabled maxPersistentRequests maxPersistentTimeout maxReadTimeout maxWriteTimeout

true -1 3000 6000 6000
112

Sun Customer and Partner Use Only

Performance Tuning -- WebSphere
• JDBC
> Type 4 driver (pure Java) > Keep it low > Connections Min/Max: 100/100 > Set statement cache size properly > Statement Cache: 60

Sun Customer and Partner Use Only

113

Performance Tuning -- WebSphere
• Persistent Manager (CMP)
>

-Dcom.ibm.ws.pm.batch=true -Dcom.ibm.ws.pm.deferredcreate=true \ -Dcom.ibm.CORBA.FragmentSize=3000

• For SIB (Service Integration Bus) default settings are usually adequate • Disable unnecessary features for Production
> PMI (Performance Monitoring Infrastructure) > Debug logs > GC details/verbose

Sun Customer and Partner Use Only

114

Performance Tuning – JVM
• Proper heap sizing is key to good JVM performance
> MinHeap (-Xms),

• HotSpot Heap Layout and Generations
> Young Generation

MaxHeap (-Xmx) > Set -Xms and -Xmx the same for better performance

> Eden: new objects > 2 Survivor Spaces > Old Generation: survived partial GC cycles > Permanent Generation: JVM's reflective class and method objects

http://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf
Sun Customer and Partner Use Only

115

Performance Tuning – JVM

Choosing a Collector for Young and Old (Tenured) Generations

• Use the Serial Copying Collector (Default) for co-locating multiple instances of WAS (JVM's) on multi-CPU servers • Use the Parallel or Throughput Collector for better performance on multi-CPU servers (e.g. T2000)
> -XX:+UseParallelGC

> Set proper number of threads (-XX:ParallelGCThreads=16)

• Use the Concurrent Low Pause Collector for constant response time on multi-CPU servers
> -XX:+UseConcMarkSweepGC

• Use the Incremental Low Pause Collector for constant response time on servers that have few processors
> -XX:+UseTrainGC (* will be obsoleted in Java SE 6)
Sun Customer and Partner Use Only

116

Performance Tuning – JVM
> -XX:NewSize=512m > -XX:MaxNewSize=512m

http://java.sun.com/docs/hotspot/VMOptions.html

• The AggressiveOpts option turns on point performance compiler optimizations that are available in v1.5.0_06 (-XX:+AggressiveOpts) • Fixed Size Young Generation to better handle stress

(for 1.3)

-Xmn512m (for 1.4)

• Permanent Generation
> -XX:PermSize=<initial size> and -XX:MaxPermSize=<max size>

• Reduce Full GC cycle time
> http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html

> Choose suitable other options:
> -XX:MaxTenuringThreshold=3 > -XX:SurvivorRatio=8
Sun Customer and Partner Use Only

117

Performance Tuning – Samples
• Good place to see sample configurations and settings
> http://www.spec.org/jAppServer2004/results/jAppServer2004.html

• Example of WebSphere Tuning on Sun T2000 Server:
JVM Options: initialHeapSize="2880" maximumHeapSize="2880" verboseModeGarbageCollection="false” -server -Xmn780m -Xss128k -XX:-ScavengeBeforeFullGC -XX:+UseParallelGC -XX:ParallelGCThreads=24 -XX:PermSize=128m -XX:MaxTenuringThreshold=16 -XX:+UseParallelOldGC EJB Cache Size = 37543 HTTP Channel maximum persistent requests = -1 Web Container threads (Minumum/Maximum) = 56/56 HTTP Channel readTimeout/writeTimeout = 6000/6000 ORB threads (Minumum/Maximum) = 40/40 HTTP Channel persistentTimeout = 3000 Default threads (Minumum/Maximum) = 15/15

> Java process changed to run in FX scheduler class:
/usr/bin/priocntl -s -c FX -m 59 -p 59 -i <pid>
Sun Customer and Partner Use Only

118

Performance Tuning – Tools
• WebSphere Monitoring (Tivoli Perf. Viewer)
> Help locate the app server performance issues

• Solaris system monitoring
> Indicator of the system behavior
> vmstat, mpstat, prstat, iostat, netstat, DTrace
– – – –

Context switches Number of threads or lwp Disk contention for disk where bean passivation and transaction logs are logged Network activity

> http://developers.sun.com/solaris/articles/performance_tools.html > https://solaris10-dtrace-vm-agents.dev.java.net
119

Sun Customer and Partner Use Only

Performance Tuning – Tools
• JVM GC output (-verboseModeGarbageCollection=”true”)
> Frequency, Pause time, heap reclaimed
[GC 50650K->21808K(76868K), 0.0478645 secs] [GC 51197K->22305K(76868K), 0.0478645 secs] [GC 52293K->23867K(76868K), 0.0478645 secs] [Full GC 52970K->1690K(76868K), 0.54789968 secs]

• Thread Dump (kill -3) allows examining real-time thread activity within the server
> Take 3-4 dumps for few minutes apart > Look for problem trends > WebSphere Thread Analyzer (IBM download)

Sun Customer and Partner Use Only

120

Performance Tuning – Tools
• jvmstat Tool
> http://java.sun.com/performance/jvmstat

• Java heap analysis tool (HAT)
> https://hat.dev.java.net

• Profiling WebSphere Applications using Sun Studio Collector/Analyzer
> http://developers.sun.com/sunstudio/articles/profiling_websphere.html

• Other Tools
> http://java.sun.com/tools

> Wily Introscope > Quest PerformaSure > tuneWAS.jacl (ibm.com)
Sun Customer and Partner Use Only

121

Performance Tuning – Tools [DTrace]

Sun Customer and Partner Use Only

122

WebSphere with 64-bit JVM
• As of WAS v6.1, IBM provides added support for 64bit JVM on Solaris SPARC and x64 platforms • With 64-bit address space, more than 4GB of heap memory is available (“unlimited”) • Server VM (Client VM in 32-bit only) • Solaris OS must be installed with 64-bit mode • JNI code requires re-compilation

Sun Customer and Partner Use Only

123

WebSphere with 64-bit JVM
• Gain higher precision for encryption/decryption algorithms • Applications capable of taking advantage of WAS 64bit features may gain performance • Otherwise, adverse effect: performance loss
> All address references are 64-bit wide, twice the size

of address references in 32-bit deployments > An increased memory footprint reducing hardware cache efficiency and thus performance

Sun Customer and Partner Use Only

124

Summary
• Be aware of the WebSphere application environment design, configuration and implementation • Performance management is an iterative process and requires holistic approach • Capacity Planning for changes in workload conditions (Tools: TeamQuest, OpTier, etc.) • Good performance management will enable > better Return on your Investments > higher competitive advantage

Sun Customer and Partner Use Only

125

References
• Sun WebSphere Blogs
http://blogs.sun.com/dkumar > http://blogs.sun.com/sunabl
>

• IBM WebSphere Info Center
>

http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.nd .doc/info/ae/ae/welc6toptuning.html

• IBM WebSphere Redbooks (SG247584)
>

http://www.redbooks.ibm.com/redpieces/abstracts/sg247584.html

• HotSpot VM and Java Tuning
>

http://java.sun.com/javase/technologies/hotspot

> >

http://java.sun.com/performance/reference/whitepapers/tuning.html http://java.sun.com/performance/reference/whitepapers/5.0_performance.html

• Solaris Tuning
>

http://developers.sun.com/solaris/articles/tuning_solaris.html

Sun Customer and Partner Use Only

126

Q&A
Thank You.
Albert.Leigh@Sun.COM Dileep.Kumar@Sun.COM

Performance Tuning – Tools [vmstat]
• Reports virtual memory statistics regarding kernel thread, virtual memory, disk, interrupts, and CPU activity (e.g. vmstat 5 10)

• On multi-processor (MP) systems, vmstat averages the number of CPUs into the output
• This command can used to get a the monitoring data about: > Kernel Threads > Memory > Paging > CPU Utilization

Performance Tuning – Tools [vmstat]
kthr memory page disk faults cpu r b w swap free re mf pi po fr de sr s0 s2 s4 -- in sy cs us sy id 46 0 0 23158808 8700152 0 5 0 10 10 0 0 0 5 0 0 9750 66324 22325 62 19 18 46 0 0 23154296 8682592 0 6 0 12 12 0 0 0 4 0 0 8855 66115 21963 63 19 18 28 0 0 23146520 8653920 0 13 0 3 3 0 0 0 2 0 0 8519 64506 20813 63 19 18 53 0 0 23143616 8636272 0 7 0 3 3 0 0 0 3 0 0 8987 65462 21436 62 19 19 47 0 0 23139520 8616152 0 12 0 3 3 0 0 0 3 0 0 7747 66572 20841 65 19 16 38 0 0 23123136 8583000 0 5 0 9 9 0 0 0 4 0 0 7436 65995 21025 64 19 17 40 0 0 23119856 8564560 0 9 0 3 3 0 0 0 3 0 0 8624 66608 22553 64 19 17

Performance Tuning – Tools [mpstat]
• Reports processor the activity statistics of processors where each row represents a processor (e.g. mpstat 5 10) • The first table summarizes all activity since boot and each subsequent table summarizes activity for the preceding interval • All values are rates listed as events per second unless otherwise noted

Performance Tuning – Tools [mpstat]
0 1 0 944 458 180 1472 54 323 683 0 1389 55 304 784 1 1 0 82 216 0 5172 67 17 0 16 2 3 8 9 10 11 16 17 18 19 24 25 26 27 1 0 78 223 0 0 65 182 1 0 60 239 1 0 68 183 1 0 54 200 1 0 74 172 1 0 57 232 1 0 67 181 1 0 85 190 1 0 57 171 1 0 89 189 4 0 58 164 1 0 71 145 0 1460 60 302 722 0 1394 50 283 641 2 1549 64 317 717 2 1767 53 293 656 0 1558 55 297 691 0 1390 53 270 657 1 1507 63 303 723 0 1565 53 279 683 0 1507 51 286 643 0 1346 53 267 643 0 1445 51 295 565 0 1379 48 281 588 0 1159 48 254 457

CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 0 5062 69 17 0 14

0 4864 68 15 0 17 0 5089 68 14 0 18 0 5319 69 16 0 16 0 5256 69 14 0 17 0 5345 69 15 0 17 0 5314 67 14 0 18 0 5549 69 15 0 16 0 5109 68 15 0 17 0 4847 69 14 0 17 0 4799 67 14 0 19 0 4934 71 12 0 17 0 5066 70 12 0 18 0 4372 70 14 0 16 0 385 7 93 0 0

0 0 1576 4874 4840 335 91 34 2260

Performance Tuning – Tools [intrstat]
• Reports the interrupt distribution over the CPU cores • The output is a table of device names and CPU IDs, where each row of the table denotes a device, and each column of the table denotes a CPU • Each cell in the table contains both the raw number of interrupts for the given device on the given CPU, and the percentage of absolute time spent in that device's interrupt handler on that CPU.

Performance Tuning – Tools [iostat]

Performance Tuning – Tools [netstat]

Performance Tuning – Tools [corestat]

Performance Tuning – Tools [plockstat]

Performance Tuning – Tools [intrstat]
device | cpu16 %tim cpu17 %tim cpu18 %tim -------------+-----------------------------------------------------------e1000g#0 | e1000g#1 | e1000g#2 | mpt#0 | device | 0 0.0 0 0.0 0 0.0 0 0.0 cpu24 %tim 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 cpu25 %tim cpu26 %tim -------------+-----------------------------------------------------------e1000g#0 | e1000g#1 | e1000g#2 | mpt#0 | device | 0 0.0 0 0.0 0 0.0 0 0.0 cpu0 %tim 0 0.0 0 0.0 0 0.0 0 0.0 cpu1 %tim 0 0.0 0 0.0 0 0.0 0 0.0 1726 88.7 0 0.0 0 0.0 0 0.0

cpu19 %tim

cpu27 %tim

cpu2 %tim

cpu3 %tim

-------------+-----------------------------------------------------------e1000g#0 | e1000g#1 | e1000g#2 | mpt#0 | 0 0.0 0 0.0 0 0.0 1 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0

Performance Tuning – Tools [DTrace]

Sign up to vote on this title
UsefulNot useful