Monitoring Application Server performance through monitoring tools

You can obtain various Application Server performance statistics through a pair of monitoring tools that are available at any BMC Sever Automation Console installation — the BladeLogic JConsole (a GUI) and the JMXCLI (a command line interface). These monitoring tools retrieve data from the Application Server using the Java Management Extensions (JMX) protocol, by listening to the JMX port defined for the Application Server. Alternatively, you can obtain Application Server performance statistics by monitoring the Application Server log file.

You can direct the retrieved performance statistics to more advanced monitoring systems for further analysis, as performed by BMC products BMC PATROL for BMC Server Automation and BMC ProactiveNet Automation Server Monitoring, which poll the JMX port of an Application Server instance at periodic intervals. Such monitoring systems enable you to configure threshold settings for the various performance statistics, so that you can receive warnings and alerts when measured statistics fall beyond acceptable performance values for a certain length of time. (See, for example, the list of statistics monitored by BMC ProactiveNet Automation Server Monitoring.)

Before you begin

Ensure that the user that you plan to use with the BladeLogic JConsole or the JMXCLI is associated with a role that has the BL_Administration.read authorization.

Using the BladeLogic JConsole

The BladeLogic JConsole (bljconsole) is a performance monitoring tool that you can use to monitor the Java process of your BMC Server Automation Application Server. The BladeLogic JConsole is based on the JConsole tool provided by Oracle, which uses Java Management Extensions (JMX) technology to monitor performance and resource consumption of applications running on the Java platform.

To execute the BladeLogic JConsole

  1. Run the bljconsole.bat or bljconsole script found within the bin directory in the BladeLogic installation directory (typically C:\Program Files\BMC Software\BladeLogic\NSH\bin or /opt/bmc/bladeLogic/NSH/bin). 
  2. Select Connection > New Connection.
  3. Select the Authentication Profile for the environment to which you want to connect.  Note that the RMI Registry port (typically base port + 36) must be open from the system running the bljconsole to the application server.

For more information about the display of performance data in the JConsole, see the Oracle documentation for the JConsole tool of Java 1.5.

Using the JMXCLI utility

The JMXCLI is a command line interface that retrieves performance statistics from the BMC Server Automation Application Server and displays them through the command line as a comma delimited list. Retrieval of statistics is controlled by an associated properties file, which regulates the frequency and total length of data polling, as well as the exact statistics to be retrieved. You can save the output to various formats; for example, as a CSV file, which can then be consumed by a spreadsheet application and presented in tabular format.

To prepare the properties file

A default properties file named bl_jmx_monitor.properties is provided together with the JMXCLI utility, in the the br directory in the BladeLogic installation directory (typically C:\Program Files\BMC Software\BladeLogic\NSH\br or /opt/bmc/bladeLogic/NSH/br). You can edit the contents of this file according to your needs. The properties file contains the following types of settings:

  • Data polling settings —  control the frequency and total length of data polling
  • Default statistics — performance metrics to retrieve; each defined with 4 lines of attributes. You can comment out any statistics that you are not interested in, by inserting a pound (hash) character at the beginning of each line.

The following table lists the settings in the default properties file:

Data polling
SettingDescription
refresh_interval_millis

Length of data polling interval, in milliseconds. That is, the frequency of refreshing the data from the Application Server.

The default value is 60000 milliseconds (1 minute).

refresh_count

The number of intervals, that is, the total number of times to poll the Application Server for data (at the frequency specified by the previous setting).

The default value is 2000 times. Default values for these two settings result in the JMXCLI running for 2000 minutes (almost a day and a half).

Performance metrics
NumberStatisticDescription
1CurrentTimeCurrent time at the Application Server.
2ResidentSetSizeResident set size (RSS) of the Java process in the main memory. Total physical (non-virtual) memory used.
3VirtualSizeTotal memory used by the Java process (virtual + resident).
4TotalJvmMemoryTotal amount of memory (used + free) reserved from the operating system for the JVM.
5UsedJvmMemoryAmount of memory currently used on the java heap.
6FreeJvmMemoryAmount of memory available (not currently used) on the java heap.
7NumberOfRunningJobsNumber of running jobs on the Application Server.
8NumOfWorkItemsCachedNumber of work items that were cached.
9ClientConnectionPool : NumAvailableConnectionsNumber of available database connections created for clients.
10ClientConnectionPool : NumConnectionsNumber of database connections currently in use by clients.
11GeneralConnectionPool : NumAvailableConnectionsNumber of available database connections created in the general connection pool, a default pool used by various Application Server activities (not including job-related or client-related activities).
12GeneralConnectionPool : NumConnections

Number of database connections from the general connection pool that are currently in use.

13JobConnectionPool : NumAvailableConnections

Number of available database connections created for jobs.

14JobConnectionPool : NumConnections

Number of database connections currently in use by jobs.

15NumIdleClientWorkerThreadsNumber of idle work item threads that are available. This represents the available capacity to do work when physical resources are free.
16ActiveConnectionsNumber of connections that are open and are active.

To execute the JMXCLI

  1. Before running the JMXCLI, use the blcred command line utility to acquire a session credential. For more information about using blcred, see Using the blcred utility.
    Base your session on any profile that is authorized to connect to the Application Server and run BLCLI commands. If necessary, prepare such a profile before you acquire the session credential, as described in Setting up an authentication profile.
  2. Run the JMXCLI from within the bin directory in the BladeLogic installation directory (typically C:\Program Files\BMC Software\BladeLogic\NSH\bin or /opt/bmc/bladeLogic/NSH/bin).
    For a typical case, use the following command syntax:

    jmxcli -v <profile name> -d <RMI registry port> -r <role> <properties file name>
    

    For example:

    jmxcli -v defaultProfile -d 9836 -r BLAdmins bl_jmx_monitor.properties

    Note

    In order to connect to a system that does not run authentication services (for example, a server of type JOB), specify a default profile that authenticates you to a server of type CONFIG or ALL in the environment, and then use the RMI registry port (specified by the -d option) for the particular instance in the environment and if the instance is on a separate host use the -a option to specify the hostname of the other system.

    For information about additional options, run JMXCLI with the -h option (or without any options).

    The JMXCLI starts running and the output is displayed as a comma-delimited list.

Using the Application Server log file

The Application Server log file contains much of the information that is available through the other monitoring tools described on this page. This information appears in the log within the Memory Monitor line. You can direct this information to a monitoring agent or feed it into a monitoring system for analysis. Note that the contents of the log file cannot be customized (as opposed to the other monitoring tools described here).

By default, the Application Server log file, appserver.log, is located in /opt/bmc/bladeLogic/NSH/br (on UNIX) or installationDirectory\BladeLogic\NSH\br (on Windows).

This log file contains various memory usage statistics, including statistics for the following items:

  • JVM memory
  • File descriptors
  • Work item threads
  • NSH proxy threads
  • Client connections
  • Database connections — from the client-connection pool, job-connection pool, and general-connection pool

Example

Below is an example of the Memory Monitor entries in the log file:

[20 Oct 2014 15:18:52,140] [Scheduled-System-Tasks-Thread-18] [INFO] [System:System:] 
[Memory Monitor] 
Total JVM (B): 328269824
Free JVM (B): 156032944
Used JVM (B): 172236880
VSize (B): 613498880
RSS (B): 469307392
Used File Descriptors: 2403
Used Work Item Threads: 0/50 
Used NSH Proxy Threads: 0/15
Used Client Connections: 2/200
DB Client-Connection-Pool: 1/1/0/100
DB Job-Connection-Pool: 0/0/0/100
DB General-Connection-Pool: 1/1/0/100

Note that the numbers of used threads and used client connections are presented as number of used out of total number of items available. For database connections from the pools, the numbers are number of connections / available connections / used connections / maximum connections.

Was this page helpful? Yes No Submitting... Thank you

Comments