Workload Characterisation of WAS Server
Workload Characterisation of WAS Server
Performance Professionals
The Computer Measurement Group, commonly called CMG, is a not for profit, worldwide organization of data processing professionals committed to the
measurement and management of computer systems. CMG members are primarily concerned with performance evaluation of existing systems to maximize
performance (eg. response time, throughput, etc.) and with capacity management where planned enhancements to existing systems or the design of new
systems are evaluated to find the necessary resources required to provide adequate performance at a reasonable cost.
This paper was originally published in the Proceedings of the Computer Measurement Group’s 2004 International Conference.
Copyright 2004 by The Computer Measurement Group, Inc. All Rights Reserved. Published by The Computer Measurement Group, Inc. (CMG), a non-profit
Illinois membership corporation. Permission to reprint in whole or in any part may be granted for educational and scientific purposes upon written application to
the Editor, CMG Headquarters, 151 Fries Mill Road, Suite 104, Turnersville , NJ 08012.
BY DOWNLOADING THIS PUBLICATION, YOU ACKNOWLEDGE THAT YOU HAVE READ, UNDERSTOOD AND AGREE TO BE BOUND BY THE
FOLLOWING TERMS AND CONDITIONS:
License: CMG hereby grants you a nonexclusive, nontransferable right to download this publication from the CMG Web site for personal use on a single
computer owned, leased or otherwise controlled by you. In the event that the computer becomes dysfunctional, such that you are unable to access the
publication, you may transfer the publication to another single computer, provided that it is removed from the computer from which it is transferred and its use
on the replacement computer otherwise complies with the terms of this Copyright Notice and License.
Copyright: No part of this publication or electronic file may be reproduced or transmitted in any form to anyone else, including transmittal by e-mail, by file
transfer protocol (FTP), or by being made part of a network-accessible system, without the prior written permission of CMG. You may not merge, adapt,
translate, modify, rent, lease, sell, sublicense, assign or otherwise transfer the publication, or remove any proprietary notice or label appearing on the
publication.
Disclaimer; Limitation of Liability: The ideas and concepts set forth in this publication are solely those of the respective authors, and not of CMG, and CMG
does not endorse, approve, guarantee or otherwise certify any such ideas or concepts in any application or usage. CMG assumes no responsibility or liability
in connection with the use or misuse of the publication or electronic file. CMG makes no warranty or representation that the electronic file will be free from
errors, viruses, worms or other elements or codes that manifest contaminating or destructive properties, and it expressly disclaims liability arising from such
errors, elements or codes.
General: CMG reserves the right to terminate this Agreement immediately upon discovery of violation of any of its terms.
Learn the basics and latest aspects of IT Service Management at CMG's Annual Conference - www.cmg.org/conference
Buy the Latest Conference Proceedings and Find Latest Computer Performance Management 'How To' for All Platforms at www.cmg.org
SERVER
Yefim Somin
BMC Software, Inc.
Join over 14,000 peers - subscribe to free CMG publication, MeasureIT(tm), at www.cmg.org/subscribe
Abstract
Workload characterization is a process providing Currently, there are two main versions of
Buy the Latest Conference Proceedings and Find Latest Computer Performance Management 'How To' for All Platforms at www.cmg.org
information on how computing resources are WebSphere deployed in the field: WebSphere 4
used for distinct business tasks or by different and WebSphere 5. They differ in management
groups of users. Knowledge of workloads makes utilities, partitioning hierarchies and
it possible to address critical performance nomenclature. A good comparison from the point
management and capacity planning questions, of view of a systems administrator is given in
such as: [NEAT04]. For the purposes of this paper, most
of these differences are not important, and the
Join over 14,000 peers - subscribe to free CMG publication, MeasureIT(tm), at www.cmg.org/subscribe
- what applications are responsible for following discussion applies to both. It is duly
current resource use and possibly noted when information specific to WebSphere 5
immediate performance problems is given. This version is expected to dominate in
(account balancing vs. online queries, or the coming future. The whole discussion is
customer browsing vs. supplier dedicated to WebSphere on distributed systems.
requests) The mainframe environment is significantly
- immediate and longer term planning: different.
o current modifications/upgrades
to solve service problems 3.2 WebSphere Environment Tiers
o capacity necessary to
accommodate business growth WebSphere environment has a multi-tier
configuration. There could be up to 4 tiers. The
Workloads have attracted a lot of attention at tiers are logical and could be distributed over a
CMG’03 as a critical element in the performance multi-node configuration either vertically
analysis practice. For an extensive coverage of (different tiers in different physical locations) or
workloads as a science and an art see [KAMI03]. horizontally (peer components of the same tier
The first step in analyzing WebSphere workloads could run on parallel nodes). The tiers are:
is to determine what resources are used by
WebSphere-related activities, as distinct from • Web Clients
other tasks present in the systems in question. • HTTP Servers
However, it is not sufficient. Today’s computing • Application Servers
environment management is business user- • Database Servers
oriented, hence, specific application analysis is
required. This, in turn, demands knowledge of In a variety of configurations available from IBM,
what applications and preferably their some tiers can collapse into others, e.g., an
components consume resources in which part of HTTP Server can be embedded into an
a distributed environment. To continue the Application Server.
discussion in more technical detail, the
architecture of the environment needs to be 3.2.1 Web Client Tier
addressed.
Clients are remote and connected to the
services using Web Browsers. For the purposes
Workload characterization consists of breaking
of workload groupings, identities of the clients
down resource utilization in a computing
are difficult if not impossible to trace through all
environment and assigning the work to
the tiers of the environment. This task is beyond
appropriate categories. While determination of
the scope of the present paper.
what constitutes a workload in a particular
environment is in the eye of the analyst, it also
depends on the kind of statistics available for
3.2.2 HTTP Server Tier
this purpose.
environments. They are covered in literature and administrative grouping of WebSphere runtime
are not addressed in detail here. Generally, for a components, usually over a distributed
Buy the Latest Conference Proceedings and Find Latest Computer Performance Management 'How To' for All Platforms at www.cmg.org
given amount of end-user requests, the resource configuration. Node is a subset of a Cell located
consumption by HTTP Services is significantly on one physical node (another terminology
smaller than for the application specific overload). One WAS runs within one JVM (Java
processing on an Application Server. When Virtual Machine), a standard environment for an
carried out separately, HTTP processing is done interrelated set of Java programs to run in and
by processes with well-known command names. use a set of Java services. On distributed
systems, one JVM is implemented within one OS
Join over 14,000 peers - subscribe to free CMG publication, MeasureIT(tm), at www.cmg.org/subscribe
Buy the Latest Conference Proceedings and Find Latest Computer Performance Management 'How To' for All Platforms at www.cmg.org
Web Web Web Web
Client Client Client Client
Join over 14,000 peers - subscribe to free CMG publication, MeasureIT(tm), at www.cmg.org/subscribe
Database
Server
WAS “Server1”
Buy the Latest Conference Proceedings and Find Latest Computer Performance Management 'How To' for All Platforms at www.cmg.org
Web Container
JSP
Join over 14,000 peers - subscribe to free CMG publication, MeasureIT(tm), at www.cmg.org/subscribe
JSP JSP
Servlet
EJB Container
EJB
EJB
EJB
EJB
rver/properties:/usr/WebSphere/AppSe
rver/lib/bootstrap.jar:/usr/WebSpher
e/AppServer/lib/j2ee.jar:/usr/WebSph
Buy the Latest Conference Proceedings and Find Latest Computer Performance Management 'How To' for All Platforms at www.cmg.org
4.3 Workload allocation by server
ere/AppServer/lib/lmproxy.jar:/usr/W
ebSphere/AppServer/lib/urlprotocols.
In many environments a WAS server is assigned
jar -Xms50m -Xmx256m -Dws.ext.dirs=/
to one particular application. Indeed, in large usr/WebSphere/AppServer/java/lib:/us
environments one application may be spread r/WebSphere/AppServer/classes:/usr/W
over a number of WAS servers. In a simplified ebSphere/AppServer/classes:/usr/WebS
example on Fig.3 the application assignment is phere/AppServer/lib:/usr/WebSphere/A
Join over 14,000 peers - subscribe to free CMG publication, MeasureIT(tm), at www.cmg.org/subscribe
as follows: ppServer/lib/ext:/usr/WebSphere/AppS
erver/web/help:/usr/WebSphere/AppSer
• Petstore: WAS Server1, PID 18284 ver/deploytool/itp/plugins/com.ibm.e
• FlowerShop: WAS Server2, PID 19888 tools.ejbdeploy/runtime -Dserver.roo
t=/usr/WebSphere/AppServer -Ddb2j.sy
As has already been mentioned, each WAS stem.home=/usr/WebSphere/AppServer/c
loudscape -Duser.install.root=/usr/W
server is implemented as a JVM within an OS
ebSphere/AppServer -Dcom.ibm.itp.loc
process. It is therefore sufficient to find which ation=/usr/WebSphere/AppServer/bin -
process implements which application to have a Dwas.install.root=/usr/WebSphere/App
set of metrics reflecting resource consumption Server -Djava.security.auth.login.co
for that application. This turns out to be a less nfig=/usr/WebSphere/AppServer/proper
than trivial task. PID’s (Process ID numbers) for ties/wsjaas.conf -Djava.security.pol
the example above are included for information icy=/usr/WebSphere/AppServer/propert
purposes, but in fact the connection between an ies/server.policy com.ibm.ws.bootstr
application and a corresponding OS process is ap.WSLauncher com.ibm.ws.runtime.WsS
not readily available. The problem with erver /usr/WebSphere/AppServer/confi
establishing such a connection is that the visible g aix-pmw-qa-s2Network aix-pmw-qa-s2
short command name for each of the processes server1
involved is simply java.
The following observations can be made:
Can a full command name help in identifying
processes with applications? • WebSphere command names are very long
– this one is over 1KB in length
4.4 Using full command names for workload • The short command name is still java (see
identification the last token of the leading path string)
• It seems to contain strings identifying it as
The following two questions need to be WebSphere-related, namely WebSphere (in
answered to determine if full command names other cases WebAS may appear)
could be used for workload identification: • It contains strings matching WebSphere 5
configuration objects: aix-pmw-qa-
• Does the full command name contain the s2Network aix-pmw-qa-s2 server1 happen
necessary info? to be the names of Cell, Node, and Server
• Can this info actually be obtained? for the examined configuration.
To address both of these questions let us look at Thus, the answer to the question about the
a typical example of a full command name for a presence of useful information seems to be yes.
process implementing a WAS server: In fact, by using a pattern-matching algorithm,
one can progressively narrow the granularity of
/usr/WebSphere/AppServer/java/bin/ja the workload characterization:
va -Djava.net.preferIPv4Stack=true -
Dwas.status.socket=57972 –Xbootclass • Total Java work is obtained by filtering for
path/p:/usr/WebSphere/AppServer/java java
/jre/lib/ext/ibmorb.jar:/usr/WebSphe
• Overall WebSphere work is separated by
re/AppServer/java/jre/lib/ext/ibmext
.jar -classpath /usr/WebSphere/AppSe filtering for WebSphere or WebAS
rver/properties:/usr/WebSphere/AppSe • A specific WAS server can be identified by
filtering for its configured name
WAS Server1
Buy the Latest Conference Proceedings and Find Latest Computer Performance Management 'How To' for All Platforms at www.cmg.org
Petstore
Command: java
PID: 18284
Join over 14,000 peers - subscribe to free CMG publication, MeasureIT(tm), at www.cmg.org/subscribe
WAS Server2
FlowerShop
Command: java
PID: 19888
The potential problem is that the strings listed candidate. However, unless it’s used with
above are included in the full command name appropriate switches, the length of the command
with a diminishing degree of certainty. The word name string is truncated far short of the size
java is always present in Java processes. The needed. It is recommended, therefore, to use
strings WebSphere or WebAS are included something like
based on the installation directory path, which is
set by default, but could theoretically be /usr/ucb/ps -auxww
changed. Finally, although Cell, Node, and
Server names have been found in all although the specifics of the switches may be
environments we observed, there is no platform dependent.
documentation or statement from IBM that
certifies or guarantees this fact. On a Windows platform, there is no user level
utility that delivers a full command name string.
Let us assume, however, that the appropriate
strings are present in the full command name. These strings are kept in special kernel
Can we obtain this extremely long command structures, and appropriately written tools can
name? deliver them to the user. If such tools can also
facilitate filtering based on specified patterns, all
One approach would be to use standard OS the better.
utilities. Under UNIX, ps command is the prime
Buy the Latest Conference Proceedings and Find Latest Computer Performance Management 'How To' for All Platforms at www.cmg.org
PID for a specific server and thus can tie a EJB)
process to the server and hence to an • After completing a chunk of work a thread
application. The catch is that a tool employing can be idle for a while and then be assigned
this interface and conveying this information to another chunk of work (e.g., a Servlet)
the user needs to be engaged.
To track and attribute work to workloads,
4.5 Workload Characterization based on OS resource consumption must be collected from
Join over 14,000 peers - subscribe to free CMG publication, MeasureIT(tm), at www.cmg.org/subscribe
WAS Server1
Buy the Latest Conference Proceedings and Find Latest Computer Performance Management 'How To' for All Platforms at www.cmg.org
Petstore
FlowerShop
Join over 14,000 peers - subscribe to free CMG publication, MeasureIT(tm), at www.cmg.org/subscribe
Command: java
PID: 18284
WAS Server2
Autoparts
Personals
Command: java
PID: 19888
JSP X
EJB1 (Petstore Servlet A (Personals)
Front End) (Flowershop)
Thread 1
Buy the Latest Conference Proceedings and Find Latest Computer Performance Management 'How To' for All Platforms at www.cmg.org
Servlet Y EJB53 Servlet 28
Join over 14,000 peers - subscribe to free CMG publication, MeasureIT(tm), at www.cmg.org/subscribe
Thread 2