84 IBM Enterprise Workload Manager
Service class
A service class is a central concept to EWLM and represents a group of work that has similar
performance goals or business requirements. You must define a specific goal as well as an
importance factor. A service class contains only one goal and one importance factor. The
supported performance goals are the following:
? Percentile Response Time: What percentile of work requests should complete in a
specified amount of time. The specified value is given as a percentage. The time value
can be in hours, minutes, seconds, and microseconds.
? Average Response Time: The average amount of time in which work in the service class
should complete. It is specified in hours, minutes, seconds, or microseconds.
? Velocity: Defines how fast work should run relative to other work requests when ready,
without being delayed for CPU, storage, and I/O. Velocity goals are intended for work for
which response time goals are not appropriate. In particular, this is the case for all kinds of
processes which are not instrumented, such as server processes, daemons, or long
running batch-like work. The following are some velocity type values:
–Fastest
–Fast
– Moderate
–Slow
–Slowest
? Discretionary: Low priority work for which you do not have any particular performance goal
or importance. EWLM processes discretionary work using resources not required to meet
the goals of other service classes. It is used for workloads whose completion time is
unimportant.
In addition, you must also specify how important it is to your business that the assigned goal
is met through the
Importance factor. Importance plays a role only when a service class is not
achieving its goal. For instance, resources may be taken away from a less important service
Tip: While it should not be a performance issue, we recommend that you limit the number
of service classes to reflect real differences in performance objectives. This will be good
positioning for later, when EWLM introduces the management functions. It is hard to be
precise at this point in time, but we suggest that a good rule of thumb is to limit your service
classes to around 30 for ARM transactional work. If you have hundreds of service classes
in mind, you might be trying to micro-manage the environment.
The number of transaction and process classes should be limited to what is meaningful
and manageable from a reporting perspective. The number of service classes should be
limited to the classes of work that have distinguishably different performance objectives. If
considering usage of more than 100 transaction, process, or service classes, start
monitoring memory and processor usage on the domain manager as the configuration
approaches 100 managed servers.
Regarding transaction classes, what it important from a performance point of view is the
number of transaction classes active on each server. If there are lots of transaction classes
in the policy, but only a few are active on each server, there should not be much of a
performance impact. On the other hand, if there are lots of transaction classes with every
transaction class active on every server there might be a performance impact.
Start with simple policy and grow as required.