Вы находитесь на странице: 1из 138

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
http://money.cnn.com/news/newsfeeds/articles/marketwire/0334437.htm

03/12/08 Sun Customer and Partner Use Only 6


WebSphere Product Overview

03/12/08 Sun Customer and Partner Use Only 7


IBM WebSphere Product Portfolio

Source: IBM 8
03/12/08 Sun Customer and Partner Use Only
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

03/12/08 Sun Customer and Partner Use Only 9


IBM WebSphere Products on Sun Solaris
IBM WebSphere Product Solaris 10/SPARC Solaris 10/x64 Solaris 9/SPARC
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 √ √ √
• 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
03/12/08 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
WebSphere Application Server
> JRE
> Java Enterprise Edition
> Components, API
> Containers
> Messaging
> Transaction
> Web Services
Java Virtual Machine
> Application
Programming Model
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 Java EE Java SE (JDK)
V6.1 1.4 5 Also available with 64-bit JVM
V6.0.2 1.4 1.4.2
V5.1.1 1.3 1.4.2
V5.1 1.3 1.4.1
• 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 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 * Solaris 10 Support
5.1.1.x 1.4.2_11 (with SR4 06/2006)
5.1 1.4.1_05
5.0.2.x 1.3.1_08
5.0.1 1.3.1_07
5.0 1.3.1_05
http://www.ibm.com/support/docview.wss?rs=180&context=SSEQTP&uid=swg27005002
Sun Customer and Partner Use Only 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

03/12/08 Sun Customer and Partner Use Only 19


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 Sun Fire Sun Fire Sun Fire Sun Fire Sun Fire Sun Blade 8000 Sun Grid Rack
X2100 X4100 X4200 X4500 V40z X4600 Systems
Sun Fire
CoolThreadsTM Sun SPARC
Servers Enterprise
Servers M4000 M5000
Sun Fire T2000 Sun Fire T5220 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 Single OS


Trend to flexibility Trend to isolation
Dynamic System Logical Domains Solaris Containers Solaris Resource
Domains Sun xVM Manager (SRM)
VirtualBox Solaris Containers
for Linux Applications
VMware
Solaris Trusted Extensions

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 SF4900
M5000 SF6900
Domain 1

Domain 2

Domain 1

Domain 2

M8000 SF20K
M9000 SF25K

03/12/08 Sun Customer and Partner Use Only 29


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 Web Mail
Server Server Server Application

OS
Control
Domain

Ultra Server
lightweight
Hypervisor in
the firmware
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 WAS v6.1
configuration
• Solaris 8 Migration Assistant to
host Solaris 8 Containers on WAS v5.1.1
Solaris 8
Solaris 10

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
> Causing resource starvation in
other applications
• With Resource Management
> Different resource management
policies can be put in place
> System utilization is more
predictable (meeting SLA)
> Available for various scopes

03/12/08 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)
• But, no sub-capacity licensing eligible per IBM (Need to have
03/12/08 a complete Solaris Container i.e.UseZone+Resource
Sun Customer and Partner Only Control) 61
Scenario 2: Install WAS in Global Zone, Inherit the base installation in
a Sparse-Root Zone, Create Profile(s) in that zone
global# cd /net/nfs_server1/ibmsw/WAS60global# zonecfg -z waszone2 -f
global# export DISPLAY=xserver1:1 /waszone/waszone2.cfg
global# ./launchpad.sh global# zoneadm -z waszone2 install
....... Preparing to install zone <waszone2>.
global# zoneadm list -cv Creating list of files to copy from the global
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
..... 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
#
03/12/08 Sun Customer and Partner Use Only 62
Scenario 3: Install WAS in a Sparse-Root Zone and Create Profile(s) in
that zone
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/\
global# zonecfg -z waszone2 -f ProfileCreator/pctSolaris.bin
/waszone/waszone2.cfg
03/12/08 Sun Customer and Partner Use Only 63
Scenario 4: Install WAS in a Whole-Root Zone and Create Profile(s) in
that zone
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
# End of Script waszone2# ./launchpad.sh
# ......
global# zonecfg -z waszone2 -f waszone2# /opt/IBM/WebSphere/AppServer/bin/\
/waszone/waszone2.cfg ProfileCreator/pctSolaris.bin
03/12/08 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
Kit (GSK) (e.g. from /opt/ibm/gsk7, bin and lib directories) in
/usr/bin and /usr/lib (See /opt/IBMIHS/gskitInstall.log)
/usr/bin/gsk7capicmd -> /opt/ibm/gsk7/bin/gsk7capicmd
/usr/bin/gsk7cmd -> /opt/ibm/gsk7/bin/gsk7cmd /usr/lib/libgsk7acmeidup.so -> /opt/ibm/gsk7/lib/libgsk7acmeidup.so
/usr/bin/gsk7ikm -> /opt/ibm/gsk7/bin/gsk7ikm /usr/lib/libgsk7cms.so -> /opt/ibm/gsk7/lib/libgsk7cms.so
/usr/bin/gsk7ver -> /opt/ibm/gsk7/bin/gsk7ver /usr/lib/libgsk7dbfl.so -> /opt/ibm/gsk7/lib/libgsk7dbfl.so
/usr/lib/libgsk7drld.so -> /opt/ibm/gsk7/lib/libgsk7drld.so
/usr/lib/libgsk7iccs.so -> /opt/ibm/gsk7/lib/libgsk7iccs.so
/usr/lib/libgsk7kicc.so -> /opt/ibm/gsk7/lib/libgsk7kicc.so
/usr/lib/libgsk7kjni.so -> /opt/ibm/gsk7/lib/libgsk7kjni.so
/usr/lib/libgsk7km.so -> /opt/ibm/gsk7/lib/libgsk7km.so
/usr/lib/libgsk7krnc.so -> /opt/ibm/gsk7/lib/libgsk7krnc.so
/usr/lib/libgsk7krrb.so -> /opt/ibm/gsk7/lib/libgsk7krrb.so
/usr/lib/libgsk7krsw.so -> /opt/ibm/gsk7/lib/libgsk7krsw.so
/usr/lib/libgsk7msca.so -> /opt/ibm/gsk7/lib/libgsk7msca.so
/usr/lib/libgsk7p11.so -> /opt/ibm/gsk7/lib/libgsk7p11.so
/usr/lib/libgsk7ssl.so -> /opt/ibm/gsk7/lib/libgsk7ssl.so
/usr/lib/libgsk7sys.so -> /opt/ibm/gsk7/lib/libgsk7sys.so
03/12/08 Sun Customer and Partner Use Only
/usr/lib/libgsk7valn.so -> /opt/ibm/gsk7/lib/libgsk7valn.so 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
> For non-root user to run IHS, port number must be > 1024
➢ http://www.ibm.com/support/docview.wss?rs=177&uid=swg1PK08359
> IHS and GSK versions are described by IBM
➢ http://www.ibm.com/support/docview.wss?rs=177&uid=swg21173214

03/12/08 Sun Customer and Partner Use Only 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

03/12/08 Sun Customer and Partner Use Only 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 multi-
threaded 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
# of # of WAS
# of Cores/ JOPS/ JOPS/ PVU/ PVU/ Expected PVU
Description CPU Info WAS JOPS Servers License
Servers Server Server Node Core Server JOPS Required
Nodes Required Cost
Sun T5220 WAS 1x Sun US-T1
6.1 32-bit 1.2GHz 8 Cores
1 2 8 1232 1232 616 50 400 2000 2 800 $120,000

Sun T2000 WAS 1x Sun US-T1


6.1 32-bit 1.2GHz 8 Cores
1 1 8 616 616 616 30 240 2000 4 960 $144,000

IBM xSeries
Intel Xeon 2x
Blade Center
3.6GHz 1 Core
20 20 2 4386 219 219 50 100 2000 10 1000 $150,000
WAS 6.1 64-bit
IBM p570 WAS IBM 2x p6
6.1 32-bit 4.7GHz 2 cores
1 2 4 1197 1197 599 100 400 2000 2 800 $120,000

IBM p505 WAS IBM 1x p5+


6.1 64-bit 2.1GHz 2 cores
1 1 2 349 349 349 100 200 2000 6 1200 $180,000

IBM p505 WAS IBM 1x p5+


6.1 32-bit 2.1GHz 2 cores
1 1 2 404 404 404 100 200 2000 5 1000 $150,000

IBM p505Q WAS IBM 2x p5+


6.1 64-bit 1.65GHz 2 cores
1 1 4 618 618 618 100 400 2000 4 1600 $240,000

IBM p595
BladeCenter IBM 2x p6
JS22 WAS 6.1 4.7GHz 2 cores
26 26 4 14004 539 539 100 400 2000 4 1600 $240,000
64-bit

• 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 Java EE Java SE (JDK)
V6.1 1.4 5 Also available with 64-bit JVM
V6.0.2 1.4 1.4.2
V5.1.1 1.3 1.4.2
V5.1 1.3 1.4.1
• 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
> x64
–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 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
WebSphere Application Server
> JRE
> Java Enterprise Edition
> Components, API
> Containers
> Messaging
> Transaction
> Web Services
Java Virtual Machine
> Application
Programming Model
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 shmsys:shminfo_shmmax = 4294967295 set semsys:seminfo_semmsl = 100
set shmsys:shminfo_shmseg = 1024 set semsys:seminfo_semopm = 100
set shmsys:shminfo_shmmni = 1024 set semsys:seminfo_semmnu = 2048
set semsys:seminfo_semaem = 16384 set semsys:seminfo_semume = 256
set semsys:seminfo_semmni = 1024 set msgsys:msginfo_msgmap = 1026
set semsys:seminfo_semmap = 1026 set msgsys:msginfo_msgmax = 65535
set semsys:seminfo_semmns = 16384 set rlim_fd_cur=1024

• 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 -set /dev/tcp tcp_conn_req_max_q 8192
ndd -set /dev/tcp tcp_conn_req_max_q0 8192
ndd -set /dev/tcp tcp_max_buf 4194304
ndd -set /dev/tcp tcp_cwnd_max 2097152
ndd -set /dev/tcp tcp_recv_hiwat 400000
ndd -set /dev/tcp 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 keepAliveEnabled true
set maxPersistentRequests -1
set maxPersistentTimeout 3000
set maxReadTimeout 6000
set maxWriteTimeout 6000
Sun Customer and Partner Use Only 112
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 • HotSpot Heap Layout and
to good JVM performance Generations
> MinHeap (-Xms), > Young Generation
MaxHeap (-Xmx) > Eden: new objects
> Set -Xms and -Xmx the
> 2 Survivor Spaces
same for better
performance > 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
http://java.sun.com/docs/hotspot/VMOptions.html

Performance Tuning – JVM


• 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
> -XX:NewSize=512m
> -XX:MaxNewSize=512m (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

Sun Customer and Partner Use Only 119


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 64-
bit 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 64-
bit 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
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl

[mpstat]
0
1
1 0 944 458 180 1472 54 323 683
1 0 82 216 0 1389 55 304 784
0 5062 69 17 0 14
0 5172 67 17 0 16
2 1 0 78 223 0 1460 60 302 722 0 4864 68 15 0 17
3 0 0 65 182 0 1394 50 283 641 0 5089 68 14 0 18
8 1 0 60 239 2 1549 64 317 717 0 5319 69 16 0 16
9 1 0 68 183 2 1767 53 293 656 0 5256 69 14 0 17
10 1 0 54 200 0 1558 55 297 691 0 5345 69 15 0 17
11 1 0 74 172 0 1390 53 270 657 0 5314 67 14 0 18
16 1 0 57 232 1 1507 63 303 723 0 5549 69 15 0 16
17 1 0 67 181 0 1565 53 279 683 0 5109 68 15 0 17
18 1 0 85 190 0 1507 51 286 643 0 4847 69 14 0 17
19 1 0 57 171 0 1346 53 267 643 0 4799 67 14 0 19
24 1 0 89 189 0 1445 51 295 565 0 4934 71 12 0 17
25 4 0 58 164 0 1379 48 281 588 0 5066 70 12 0 18
26 1 0 71 145 0 1159 48 254 457 0 4372 70 14 0 16
27 0 0 1576 4874 4840 335 91 34 2260 0 385 7 93 0 0
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
device | cpu16 %tim cpu17 %tim cpu18 %tim
-------------+------------------------------------------------------------
cpu19 %tim

[intrstat]
e1000g#0 | 0 0.0 0 0.0 0 0.0 0 0.0
e1000g#1 | 0 0.0 0 0.0 0 0.0 0 0.0
e1000g#2 | 0 0.0 0 0.0 0 0.0 0 0.0
mpt#0 | 0 0.0 0 0.0 0 0.0 0 0.0
device | cpu24 %tim cpu25 %tim cpu26 %tim cpu27 %tim
-------------+------------------------------------------------------------
e1000g#0 | 0 0.0 0 0.0 0 0.0 1726 88.7
e1000g#1 | 0 0.0 0 0.0 0 0.0 0 0.0
e1000g#2 | 0 0.0 0 0.0 0 0.0 0 0.0
mpt#0 | 0 0.0 0 0.0 0 0.0 0 0.0
device | cpu0 %tim cpu1 %tim cpu2 %tim cpu3 %tim
-------------+------------------------------------------------------------
e1000g#0 | 0 0.0 0 0.0 0 0.0 0 0.0
e1000g#1 | 0 0.0 0 0.0 0 0.0 0 0.0
e1000g#2 | 0 0.0 0 0.0 0 0.0 0 0.0
mpt#0 | 1 0.0 0 0.0 0 0.0 0 0.0
Performance Tuning – Tools
[DTrace]

Вам также может понравиться