Example: Enabling the Runtime Performance Advisor tool using wsadmin
The Runtime Performance Advisor tool provides advice to help tune systems for optimal performance. You can configure the Runtime Performance Advisor using the wsadmin tool or the administrative console. See the Using the Runtime Performance Advisor article for more information on how to enable this tool using the administrative console. The recommendations display as text in the SystemOut.log file.
The Runtime Performance Advisor (RPA) requires that the Performance Monitoring Service (PMI) is enabled. It does not require that individual counters be enabled. When a counter that is needed by the RPA is not enabled, the RPAr will enable it automatically.
There is no MBean/object available for wsadmin to create a RPA configuration. You can use wsadmin to change the settings and make them effective at runtime. These changes will not be persisted. The changes remain until you stop the server. Since the RPA is disabled once you stop the server, you may want to disable the PMI Service or the counters that were enabled while it was active. You can enable the following counters using the Runtime Performance Advisor:
ThreadPools (module) Web Container (module) Pool Size Active Threads Object Request Broker (module) Pool Size Active Threads JDBC Connection Pools (module) Pool Size Percent used Prepared Statement Discards Servlet Session Manager (module) External Read Size External Write Size External Read Time External Write Time No Room For New Session System Data (module) CPU Utilization Free Memory
The following provides an explanation for some of the settings that you can use:
- Calculation interval PMI data - This setting is taken over an interval of time and averaged to provide advice. The calculation interval specifies the length of the time over which data is taken for this advice. Details within the advice messages will appear as averages over this interval.
- Maximum warning sequence - This setting refers to the number of consecutive warnings issued before the threshold is relaxed. For example, if the maximum warning sequence is set to 3, then the advisor only sends three warnings to indicate that the prepared statement cache is overflowing. After that, a new alert is only issued if the rate of discards exceeds the new threshold setting.
- Number of processors - This setting specifies the number of processors on the server. It is critical in order to ensure accurate advice for the specific configuration of the system.
To enable the Runtime Performance Advisor tool using the wsadmin tool, perform the following steps:
- Enable the Performance Monitoring Service (PMI), for example:
Using Jacl:
set s1 [$AdminConfig getid /Node:wandNode51/Server:server1/] server1(cells/wandCell51/nodes/wandNode51/servers/server1:server .xml#Server_1) set pmis1 [$AdminConfig list PMIService $s1](cells/wandCell51/ nodes/wandNode51/servers/server1:server.xml#PMIService_1) $AdminConfig modify $pmis1 {{enable true}{initialSpecLevel beanModule=H:cacheModule=H:connectionPoolModule=H:j2cModule=H:jv mRuntime Module=H:orbPerfModule=H:servletSessionsModule=H:systemModule=H: threadPoolModule=H:transactionModule=H:webAppModule=H:webServicesModule= H:wlmModule=H:wsgwModule=H}} $AdminConfig save
Using Jython:
s1 = AdminConfig.getid('/Node:wandNode51/Server:server1/', '[ server1(cells/wandCell51/nodes/wandNode51/servers/server1:server .xml#Server_1)]') print s1 pmis1 = AdminConfig.list('PMIService', s1, 'cells/wandCell51/ nodes/wandNode51/servers/server1:server.xml#PMIService_1') print pmis1 AdminConfig.modify(pmis1, [['enable', 'true'], ['initialSpecLevel', 'beanModule=H:cacheModule=H:connectionPoolModule=H:j2cModule=H:jv mRuntime Module=H:orbPerfModule=H:servletSessionsModule=H:systemModule=H: threadPoolModule=H:transactionModule=H:webAppModule=H:webServicesModule= H:wlmModule=H:wsgwModule=H']]) AdminConfig.save()
- Setup the Runtime Performance Advisor (RPA), for example:
Using Jacl:
set perf [$AdminControl queryNames mbeanIdentifier=ServerRuleDriverMBean,process=server1,*] $AdminControl setAttribute $perf {{enable true}} $AdminControl invoke $perf reInit $AdminConfig save
Using Jython:
perf = AdminControl.queryNames('mbeanIdentifier=ServerRuleDriverMBean,process=server1,*') AdminControl.setAttribute(perf, [['enabled', 'true']]) AdminControl.invoke(perf, 'reInit') AdminConfig.save()
After completing the previous steps, start the server and monitor RPA.