This file contains step-by-step instructions for monitoring data with Resource Analyzer. It contains the following topics:
The following instructions describe how to display current performance data in the Data Monitoring pane.
To start data retrieval, do the following:
Performance data for a servlet is collected only if the servlet is loaded when the application server is started. To ensure that data is collected for a servlet, do the following:
The Load at startup option is set to true only for default servlets, for example, the ErrorReporter servlet in the Default application server. The option is set to false for other servlets.
To stop data retrieval, do the following:
If you want to stop data reporting for all resources, click Actions --> Stop All.
When a running application server is stopped in the administrative console, the Resource Analyzer icon for the server turns from green to red. In addition, data reporting for this server automatically stops, and icons for the server's resources turn red.
New performance data can become available in either of the following situations:
In both cases, if the resource in question is already being polled by the Resource Analyzer (or the parent of the resource is being polled), the system is automatically refreshed. That is, if more counters are added for a group that the Resource Analyzer is already polling, the Resource Analyzer automatically detects this and adds the counters to the table or chart views. If the parent of the newly added resource is being polled, the new resource is detected automatically and added to the Resource Selection tree. Otherwise, the Resource Selection tree, or parts of it, can be refreshed manually by selecting the appropriate node and clicking the Refresh icon (or by right-clicking a resource and choosing Refresh).
When an application server is running, Resource Analyzer automatically updates the server's local structure (its containers and enterprise beans) to reflect changes on the server. However, if a stopped server is started after the Resource Analyzer starts, a manual refresh operation is required so that the server is accurately reflected in the Resource Selection tree.
To query the administrative server for new resources or counters, do the following:
Note that the refresh operation is a local, not global, operation. It applies only to those resources that are selected.
To obtain the current values for all counters that belong to a resource:
The values are displayed independently of the refresh rate. The resource does not need to be running in order to get the values of the counters.
After stopping a resource, you can use the Clear Values operation to remove remaining data from a table or chart. You can then begin populating the table or chart with new data. To clear the values currently displayed, do the following:
To reset the start time for calculating aggregate data, do the following:
The reset operation sets the "clock" used for reporting aggregate data for counters of the selected performance category. Instead of reporting data from the time the server was started, reporting now begins from the time of the reset action. Not all counters can be reset. If you use the reset operation for a group containing nonresettable counters, the reset action has no effect. You can select multiple performance groups and reset them simultaneously.
The Time Series tab displays values for counters at each refresh interval. For example, if the refresh rate is 5 seconds, a value is displayed every 5 seconds. The value displayed depends on the display mode in effect at the time. The meaning of the display modes is as follows:
To view time series data, do the following:
The Snapshot tab displays performance data over time. The data is displayed in a table, with each row representing a counter and each column representing one of four time intervals. The values displayed depend on the display mode in effect at the time. The meaning of the display modes is as follows:
To view snapshot data, do the following:
The Details view contains a brief description of each counter and its current value. To view Details data, do the following:
The Descendants tab contains performance data about subgroups of the selected group. To view Descendant data, do the following:
The Descendants tab displays data for all descendants of a selected group. For example, if you want to examine performance data for enterprise beans, and you select a container instance, the Descendants tab shows the group name (for example, container1) and two family tables: entity bean data and stateless bean data (if both types of enterprise beans are running in the container). Each family table contains the enterprise bean names in rows and the counters for those beans in columns. Totals for the counter values are also shown. If you select an enterprise bean method, no tables are shown in the Descendants view because there are no descendants of method groups.
If you select two or more resources, a data sheet is displayed. No other table or chart views are available. The data sheet contains the same information as the Descendants tab (but for multiple resources).
The Chart tab displays a graph with time as the x axis and the performance value as the y axis. To view data in a chart, do the following:
The table displayed below the chart contains the following columns:
The default scale is 1.0. The maximum possible range is <-100, 100>. If needed, you can manually adjust the scale by editing the value of the Scale field. Three actions can cause automatic scaling to take place:
In these cases, Resource Analyzer determines whether, given the current scale, a counter value fits within the permissible range.
Some examples of automatic scaling are as follows:
The Resource Analyzer can be used to both store and view data saved in previous sessions.
All data being reported by the Resource Analyzer can be saved in a log file. The data is written to the log as serialized Java objects. To start recording data, do the following:
Data is stored in a file with the extension .lra (log resource analyzer)
To stop recording data, click Logging --> Stop.
To replay a log file, do the following:
By default, the data is replayed at the same rate it was collected (written to the log). If data was collected every minute, it is displayed every minute. You can change the speed at which the log is replayed by clicking Options --> Change Log Speed. If the data was collected every minute and the speed factor is set to 60x, then data is displayed every second.
While replaying the log, you can choose different groups to view by selecting them in the Resource Selection pane. You can also view the data in any of the five views available in the tabbed Data Monitoring pane.
You can stop and resume the log at any point. However, data cannot be replayed in reverse.
The log speed is used to control how fast to replay a log file. The available speeds are 1x, 5x, 20x, and 60x. The 1x speed plays the log at the same speed at which the data was originally collected (written to the log). The 5x speed plays the log 5 times the rate at which the data was collected, and so on. To change the log speed, do the following:
To rewind the log file, click Actions --> Rewind. Alternatively, use the Rewind icon on the toolbar.
You can change several aspects of data monitoring, such as the frequency with which data is retrieved or replayed from a log, and the time intervals for which data is reported.
The display mode determines whether counter values represent real-time values, changes in values, or rates of change. The display mode meanings differ slightly depending on where you are viewing data. See detailed descriptions of the display mode in Viewing Time Series data and Viewing Snapshot data. The choices are:
The snapshot interval specifies the time interval for which data is reported (displayed). For example, data can be reported for the last 30 seconds, 60 seconds, 150 seconds, and 300 seconds. The interval for which the data is reported is a multiple of the polling interval (refresh rate). That is, if data is refreshed every minute and the snapshot interval is short, data is reported for the last minute, the last 2 minutes, the last 5 minutes, and the last 10 minutes. The available snapshot intervals are as follows:
To change the snapshot interval, do the following:
The snapshot interval can be used in either current mode or log mode.
By default, the Resource Analyzer polls the administrative server every 10 seconds. To change the rate at which data is retrieved from the server, do the following:
By default, the Time Series and Snapshot tabs display 40 rows, corresponding to the values of the last 40 data points retrieved from the administrative server. To change the size of the table (number of rows displayed), do the following:
The following tables describe the counters for each performance category. Each table includes the name of the counter, its level of impact on performance, and a description.
Each performance category has a default instrumentation level. The instrumentation level determines which counters are being collected for that category. Each counter has a cost rating (high, medium, or low), indicating its impact on an application's performance if data is collected for that counter. If a performance category has a default instrumentation level of high, for example, all counters in that category with a high cost rating and lower are collected. The default instrumentation levels for each performance category are as follows:
These levels can be changed in the WebSphere Advanced Administrative Console by using the Performance dialog box. See Setting levels for data collection.
The following tables describe the counters for each performance category. Each table includes the name of the counter, its granularity, its level of impact on performance, its data type, and its description.
Each performance category has a default instrumentation level. The instrumentation level determines which counters are being collected for that category. Each counter has a cost rating (high, medium, or low), indicating its impact on an application's performance if data is collected for that counter. If a performance category has a default instrumentation level of high, for example, all counters in that category with a high cost rating and lower are collected. The default instrumentation levels for each performance category are as follows:
These levels can be changed in the WebSphere Advanced Administrative Console by using the Performance dialog box. See Setting levels for data collection.
The performance data for JVM memory is listed in the following
table. The default instrumentation level is low.
Name of counter | Granularity | Impact on performance | Data type | Description |
---|---|---|---|---|
memFree | Per JVM | Low | long | The amount of free memory(in KB?) in JVM runtime. |
memSize | Per JVM | Low | long | The amount of used memory (in KB?) in JVM runtime. |
memTotal | Per JVM | Low | long | The total amount of memory (in KB?) in JVM runtime. |
The available performance data for enterprise beans depends on the type of bean: entity bean, stateful session bean, or stateless session bean. Every enterprise bean home interface has a single module of performance data, and all bean instances of that home are reflected in the statistics for that home (the instances update the same set of counters).
The performance data for enterprise beans is listed in the following
table. The default instrumentation level is high.
Name of counter | Impact on performance | Bean type | Description |
---|---|---|---|
creates | Low | Entity and stateful session | Number of create calls. |
removes | Low | Entity and stateful session | Number of remove calls. |
passivations | Low | Entity and stateful session | Number of times a bean instance was passivated. |
activations | Low | Entity and stateful session | Number of times a bean instance was activated. |
loads | Low | Entity | Number of times bean data was loaded. |
stores | Low | Entity | Number of times bean data was written to the database. |
instantiates | Low | All | Number of times bean objects were created. |
destroys | Low | All | Average number of times bean objects were destroyed (garbage collected). |
BeansActive | High | Entity and stateful session | Average number of active beans. This is a load value providing data on the average level as a function of time. It is the average number of bean instances of the home that are in the ready state. This is a measure of how busy the server is. |
BeansLive | High | All | Average number of live bean objects (objects that were instantiated but not yet destroyed). This is a load value providing data on the average level as a function of time. It is the average number of bean objects that exist in the run time, whether active or pooled. This is a measure of how many resources the home interface is consuming. |
methodRt | Medium | All | Average response time, in milliseconds, on all methods of the remote interface for this bean. |
methodCalls | High | All | Average number of methods being processed concurrently. This is a load value providing data on the average level as a function of time. This is a measure of how busy the server is. |
methodLoad | High | All | The average number of invocations being processed concurrently for all the methods. |
The available performance data for enterprise beans depends on the type of bean: entity bean, stateful session bean, or stateless session bean. Every enterprise bean home interface has a single module of performance data, and all bean instances of that home are reflected in the statistics for that home (the instances update the same set of counters).
The performance data for enterprise beans is listed in the following
table. The default instrumentation level is high.
Name of counter | Granularity | Impact on performance | Bean type | Data type | Description |
---|---|---|---|---|---|
creates | Per type/per home | Low | Entity and stateful session | long | Number of create calls. |
removes | Per type/per home | Low | Entity and stateful session | long | Number of remove calls. |
passivations | Per type/per home | Low | Entity and stateful session | long | Number of times a bean instance was passivated. |
activations | Per type/per home | Low | Entity and stateful session | long | Number of times a bean instance was activated. |
loads | Per type/per home | Low | Entity | long | Number of times bean data was loaded. |
stores | Per type/per home | Low | Entity | long | Number of times bean data was written to the database. |
instantiates | Per type/per home | Low | All | long | Number of times bean objects were created. |
destroys | Per type/per home | Low | All | long | Average number of times bean objects were destroyed (garbage collected). |
BeansActive | Per type/per home | High | Entity and stateful session | load | Average number of active beans. This is a load value providing data on the average level as a function of time. It is the average number of bean instances of the home that are in the ready state. This is a measure of how busy the server is. |
BeansLive | Per type/per home | High | All | load | Average number of live bean objects (objects that were instantiated but not yet destroyed). This is a load value providing data on the average level as a function of time. It is the average number of bean objects that exist in the run time, whether active or pooled. This is a measure of how many resources the home interface is consuming. |
avgCreateTime | Per persister/per home | Medium | All | stat | Average method response time for create. |
avgLoadTime | Per persister/per home | Medium | Entity | stat | Average method response time for load. |
avgStoreTime | Per persister/per home | Medium | Entity | stat | Average method response time for store. |
avgRemoveTime | Per persister/per home | Medium | All | stat | Average method response time for remove. |
methodRt | Per type/per home | Medium | All | stat | Average response time, in milliseconds, on all methods of the remote interface for this bean. from preinvoke?? |
methodCalls | Per type/per home | High | All | load?? | Average number of methods being processed concurrently. This is a load value providing data on the average level as a function of time. It is a measure of how busy the server is. |
methodLoad | Per type/per home | High | All | load | The average number of invocations being processed concurrently for all the methods. |
In addition to enterprise bean data, data is collected for every method of
a bean's remote interface. The performance data for enterprise
bean methods is listed in the following table. The default
instrumentation level is none.
Name of counter | Impact on performance | Description |
method-calls | Low | Number of times the method was called. |
method-RT | Medium | Average response time, in milliseconds, for the method. |
In addition to enterprise bean data, data is collected for every method of
a bean's remote interface. The performance data for enterprise
bean methods is listed in the following table. The default
instrumentation level is none.
Name of counter | Granularity | Impact on performance | Data type | Description |
---|---|---|---|---|
method-calls | Per method/per type/per home | Max | stat | Number of times the method was called. |
method-RT | Per method/per type/per home | Max | stat | Average response time, in milliseconds, for the method. |
Each data source (database instance) has a connection pool.
Performance data for database connection pools is listed in the following
table. The default instrumentation level is medium.
Name of counter | Impact on performance | Description |
numCreates | Low | Number of connections created. |
numDestroys | Low | Number of connections released. |
numAllocates | Low | Number of connections allocated. |
numTimeoutWaiters | Low | Number of threads that time out while waiting for a connection. |
poolSize | Medium | Average size of the pool (number of connections). |
numWaiters | Medium | Average number of threads waiting for a connection. |
avgWaitTime | Medium | Average time in milliseconds that a client waited to be granted a connection. |
avgTimeHeld | Low | Average time in milliseconds that a connection was in use. |
percentUsed | High | Average percent of the connection pool that is in use. |
percentMaxed | Medium | Average percent of time that the number of connections in the pool reached the maximum number. |
Each data source (database instance) has a connection pool.
Performance data for database connection pools is listed in the following
table. The default instrumentation level is medium.
Name of counter | Granularity | Impact on performance | Data type | Description |
---|---|---|---|---|
numCreates | Per connection pool | Low | long | Number of connections created. |
numDestroys | Per connection pool | Low | long | Number of connections released. |
numAllocates | Per connection pool | Low | long | Number of connections allocated. |
numTimeoutWaiters | Per connection pool | Low |
| Number of threads that time out while waiting for a connection. |
poolSize | Per connection pool | High | load | Average size of the pool (number of connections). |
numWaiters | Per connection pool | High | load | Average number of threads waiting for a connection. |
faults | Per connection pool | Low | long | Number of connection pool errors. |
avgWaitTime | Per connection pool | Medium | stat | Average time in milliseconds that a client waited to be granted a connection. |
percentUsed | Per connection pool | High | load | Average percent of the connection pool that is in use. |
percentMaxed | Per connection pool | Medium | load | Average percent of time that the number of connections in the pool reached the maximum number. |
prepStmtCacheDiscards | Per connection pool | Low | long | Number of prepared statements discarded from the cache. |
The performance data for ORB thread pools is listed in the following
table. The default instrumentation level is high.
Name of counter | Impact on performance | Description |
threadCreates | Low | Number of threads created. |
threadDestroys | Low | Number of threads destroyed. |
configuredMaxSize | Low | Configured maximum number of pooled threads. |
numActiveThreads | High | Average number of active threads in the pool. |
totalNumThreads | High | Average number of threads in the pool. |
percentTimeMaxed | High | Average percent of the time the number of threads in the pool reached or exceeded the desired maximum number. |
The performance data for ORB thread pools is listed in the following
table. The default instrumentation level is high.
Name of counter | Granularity | Impact on performance | Data type | Description |
---|---|---|---|---|
threadCreates | Per ORB thread pool | Low | long | Number of threads created. |
threadDestroys | Per ORB thread pool | Low | long | Number of threads destroyed. |
numActiveThreads | Per ORB thread | High | load | Average number of active threads in the pool. |
totalNumThreads | Per ORB thread pool | High | load | Average number of threads in the pool. |
percentTimeMaxed | Per ORB thread pool | High | load | Average percent of the time the number of threads in the pool reached or exceeded the desired maximum number. |
An object pool is a cache of bean objects. There is a cache for each home interface. Performance data for an object pool can be used to determine how effective the pool is (how often a bean object was available in the pool) and how many resources the pool used.
The performance data for bean object pools is listed in the following
table. The default instrumentation level is high.
Name of counter | Impact on performance | Description |
numGets | Low | Number of calls retrieving an object from the pool. |
numGetFound | Low | Number of times a retrieval call found an object available in the pool. |
numPuts | Low | Number of calls returning an object to the pool. |
numPutDiscarded | Low | Number of times the returned object was discarded because the pool was already full. |
numDrains | Low | Number of times the pool was found idle and an attempt was made to remove idle objects. |
avgDrainSize | Medium | Average number of objects discarded each time the pool was emptied of idle objects. |
poolSize | High | Average number of objects in the pool. |
An object pool is a cache of bean objects. There is a cache for each home interface. Performance data for an object pool can be used to determine how effective the pool is (how often a bean object was available in the pool) and how many resources the pool used.
The performance data for bean object pools is listed in the following
table. The default instrumentation level is high.
Name of counter | Granularity | Impact on performance | Data type | Description |
---|---|---|---|---|
numGets | Per home/object pool | Low | long | Number of calls retrieving an object from the pool. |
numGetFound | Per home/object pool | Low | long | Number of times a retrieval call found an object available in the pool. |
numPuts | Per home/object pool | Low | long | Number of calls returning an object to the pool. |
numPutDiscarded | Per home/object pool | Low | long | Number of times the returned object was discarded because the pool was already full. |
numDrains | Per home/object pool | Low | long | Number of times the pool was found idle and an attempt was made to remove idle objects. |
avgDrainSize | Per home/object pool | High | load | Average number of objects discarded each time the pool was emptied of idle objects. |
poolSize | Per home/object pool | High | load | Average number of objects in the pool. |
The following performance data is available for container
transactions. The default instrumentation level is high.
Name of counter | Impact on performance | Description |
numTransactions | Low | Number of transactions processed. |
numTransCommitted | Low | Number of transactions committed. |
numTransRolledback | Low | Number of transactions rolled back. |
activeTrans | High | Average number of active transactions. |
avgTranDuration | Medium | Average duration of transactions. |
numBeansPerTran | Medium | Average number of bean objects per transaction. |
numMethodsPerTran | Medium | Average number of methods per transaction. |
The following performance data is available for container transactions. The default instrumentation level is high.
Note to Reviewer==>***Three counters appear in the spec (Chapter 7) but do
NOT appear in the appendix. They are: globalPrepareDuration,
globalCommitDuration, and localCommitDuration.***
Name of counter | Granularity | Impact on performance | Data type | Description |
---|---|---|---|---|
globalTransBegun | Per transaction manager/server | Low | long | Total number of global transactions begun at the server. |
globalTransInvolved | Per transaction manager/server | Low | long | Total number of global transactions involved at the server (begun and imported). |
localTransBegun | Per transaction manager/server | Low | long | Total number of local transactions begun at the server. |
activeGlobalTrans | Per transaction manager/server | High | load | Average number of concurrently active global transactions. |
activeLocalTrans | Per transaction manager/server | High | load | Average number of concurrently active local transactions. |
globalTranDuration | Per transaction manager/server | Medium | stat | Average duration of global transactions. |
localTranDuration | Per transaction manager/server | Medium | stat | Average duration of local transactions. |
localBeforeCompletionDuration | Per transaction manager/server | Medium | stat | Average duration for before_completion, commit for local transactions. |
globalBeforeCompletionDuration | Per transaction manager/server | Medium | stat | Average duration for before_completion, prepare, commit for global transactions. |
globalTransCommitted | Per transaction manager/server | Low | long | Total number of global transactions committed. |
globalTransRolledBack | Per transaction manager/server | Low | long | Total number of global transactions rolled back. |
numOptimization | Per transaction manager/server | Low | long | Number of global transactions converted to single phase for optimization. |
localTransCommitted | Per transaction manager/server | Low | long | Number of local transactions committed. |
localTransRolledBack | Per transaction manager/server | Low | long | Number of local transactions rolled back. |
***NOT in Chap 7 of spec, but in appendix | Per transaction manager/server | High | load | Average number of resources/sync registered with Server |
***NOT in Chap 7 of spec, but in appendix | Per home | High | load | Average number of objects per home per transaction. |
globalTransTimeout | Per transaction manager/server | Low | long | Number of global transactions timed out. |
localTransTimeout | Per transaction manager/server | Low | long | Number of local transactions timed out. |
| Per transaction manager/server | Low | long | Number of global transactions suspended. |
Performance data for servlets and Java Servlet Pages (JSPs) is listed in the following table. The default instrumentation level is high.
Performance data for a servlet is collected only if the servlet is loaded when the application server is started. To ensure that data is collected for a servlet, do the following:
The Load at startup option is set to true only for default servlets, for
example, the ErrorReporter servlet in the Default application server.
The option is set to false for other servlets.
Name of counter | Impact on performance | Description |
numErrors | Low | Number of errors or exceptions that have occurred in the servlet. |
totalRequests | Low | Total number of requests for the servlet. |
numConcurrentRequests | High | Average number of concurrent requests for the servlet. |
responseTime | Medium | Amount of time it takes, in milliseconds, for a servlet to perform a request. |
loadedSince | Low | Time in milliseconds since the servlet was loaded. |
Performance data for Web applications is as follows. Note that the
first four counters are simply aggregate values for all of the servlets in the
application. The default instrumentation level is high.
Name of counter | Impact on performance | Description |
numErrors | Low | Number of errors or exceptions that have occurred in the servlets. |
totalRequests | Low | Total number of requests for the servlet. |
numConcurrentRequests | High | Average number of concurrent requests for the servlet. |
responseTime | Medium | Amount of time it takes, in milliseconds, for the servlet to perform a request. |
numLoadedServlets | Low | Current number of loaded servlets. |
numReloads | Low | Number of reloaded servlets. |
Performance data for HTTP sessions is listed in the following table.
Note that some values are valid only if in-memory session state is
used. The default instrumentation level is high.
Name of counter | Impact on performance | Descripton |
sessionsCreated | Low | Number of sessions created. |
invalidatedSessions | Low | Number of sessions invalidated. |
finalizedSessions | Low | Number of sessions finalized. |
sessionLifeTime | Medium | Lifetime of sessions (the time in milliseconds between creation and invalidation). |
invalidatedSessionTime | Medium | Time interval, in milliseconds, from when a session was invalidated to when it was finalized. |
activeSessions | High | Average number of concurrently active sessions. |
liveSessions | High | Average number of concurrently live sessions. |
Performance data for servlets and Java Servlet Pages (JSPs) is listed in the following table. The default instrumentation level is high.
Performance data for a servlet is collected only if the servlet is loaded when the application server is started. To ensure that data is collected for a servlet, do the following:
The Load at startup option is set to true only for default servlets, for
example, the ErrorReporter servlet in the Default application server.
The option is set to false for other servlets.
Name of counter | Granularity | Impact on performance | Data type | Description |
---|---|---|---|---|
numErrors | Per servlet | Low | long | Number of errors or exceptions that have occurred in the servlet. |
totalRequests | Per servlet | Low | long | Total number of requests for the servlet. |
numConcurrentRequests | Per servlet | High | load | Average number of concurrent requests for the servlet. |
responseTime | Per servlet | Medium | stat | Amount of time it takes, in milliseconds, for a servlet to perform a request. |
loadedSince | Per servlet | Low | long | Time in milliseconds since the servlet was loaded. |
Performance data for Web applications is as follows. Note that the
first four counters are simply aggregate values for all of the servlets in the
application. The default instrumentation level is high.
Name of counter | Granularity | Impact on performance | Data type | Description |
---|---|---|---|---|
numErrors | Per servlet | Low | long | Number of errors or exceptions that have occurred in the servlets. |
totalRequests | Per servlet | Low | long | Total number of requests for the servlet. |
numConcurrentRequests | Per servlet | High | load | Average number of concurrent requests for the servlet. |
responseTime | Per servlet | Medium | stat | Amount of time it takes, in milliseconds, for the servlet to perform a request. |
numLoadedServlets | Per Web application | Low | long | Current number of loaded servlets. |
numReloads | Per Web application | Low | long | Number of reloaded servlets. |
Performance data for HTTP sessions is listed in the following table.
Note that some values are valid only if in-memory session state is
used. The default instrumentation level is high.
Name of counter | Granularity | Impact on performance | Data type | Descripton |
---|---|---|---|---|
sessionsCreated | Per session manager | Low | long | Number of sessions created. |
invalidatedSessions | Per session manager | Low | long | Number of sessions invalidated. |
finalizedSessions | Per session manager | Low | long | Number of sessions finalized. |
sessionLifeTime | Per session manager | Medium | stat | Lifetime of sessions (the time in milliseconds between creation and invalidation). |
invalidatedSessionTime | Per session manager | Medium | stat | Time interval, in milliseconds, from when a session was invalidated to when it was finalized. |
activeSessions | Per session manager | High | load | Average number of concurrently active sessions. |
liveSessions | Per session manager | High | load | Average number of concurrently live sessions. |