确定在 z/OS 上的 WebSphere Application Server 中运行的应用程序的 CPU 使用情况
简介
IBM WebSphere Application Server 环境常常托管着多个不同类型的企业应用程序,它们受不同的 Java EE 技术支持。这些应用程序通常会并发运行,每个都会消耗与它们执行的工作相对应的系统资源,比如 CPU 周期和内存。在性能测试和生产使用期间,查看每个应用程序(而不是仅查看整个应用服务器)消耗的资源常常很有用。
有许多工具可用于监视 WebSphere Application Server 内的性能统计信息。一个基本示例是 WebSphere Application Server Performance Monitoring Infrastructure (PMI)。它使您能够监视线程池和连接池等关键区域,这些区域可提供哪些应用程序在消耗 CPU 资源的迹象,尤其在只有极少量的应用程序在运行的时候。但是,如果一个服务器中部署且运行着许多应用程序,准确查明哪些应用程序在消耗系统资源可能极具挑战。
在 z/OS 上,Service Management Facility (SMF) 和 Resource Management Facility (RMF) 提供了一些系统工具,可帮助 WebSphere Application Server 系统管理员获取在服务器内运行的各个应用程序的 CPU 使用量的信息。发现的任何 “问题应用程序” 然后可单独调查,以确立性能问题的根本原因。
本文适用于 z/OS 管理员,解释了如何利用 z/OS 分类规则、SMF 和 RMF 报告,查明在 z/OS 上的 WebSphere Application Server V6.x - V8.5 中运行的各个应用程序的 CPU 使用率。
示例环境
这里描述的应用程序是假想的应用程序,仅用于演示用途;本文没有提供其代码。在真实环境中,环境中运行的相关的业务应用程序将产生用于后续分析的性能数据,本文中介绍的步骤应适用于这些应用程序。
出于本文的目的,假设在 z/OS 上的 WebSphere Application Server 中部署了 4 个应用程序,它们具有不同的并发工作负载:
其中两个应用程序是在 Web 容器运行的简单 Web 应用程序。
一个是 Enterprise JavaBean (EJB) 应用程序。
一个使用 WebSphere Application Server Service Integration Bus (SIB) 的基于消息驱动的 bean (MDB) 的应用程序。
此环境可轻松扩展,以包含您想要的任意多个应用程序。此环境中的应用程序具有非常有限的功能,它们仅在被调用时通过执行数学运算来消耗 CPU 周期,我们选择它们是为了涵盖 3 个主要的 Java EE 技术区域。
分类规则 XML
为了将不同的应用程序分离到将在一个 RMF 报告中显示的不同报告类中,第一步是创建一个分类规则 XML 文档。对于本示例,创建一个名为 zwlm.xml 的 XML 文档(此文档可具有任何名称)来定义每个应用程序的分类规则,并将这些应用程序规则链接到随后在 z/OS 工作负载管理器 (WLM) 中创建的事务类。这如清单 1 所示。
清单 1. 分类规则 XML 文档
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Classification SYSTEM "Classification.dtd" > <Classification schema_version="1.0"> <!-- HTTP Classification Rules --> <InboundClassification type="http" schema_version="1.0" default_transaction_class="TC_1"> <http_classification_info transaction_class="TC_2" uri="/MigrateHelloWorldWAR/*" description = "HW1" /> <http_classification_info transaction_class="TC_3" uri="/MigrateHelloWorldWAR2/*" description="HW2" /> </InboundClassification> <!-- IIOP Classification Rules --> <InboundClassification type="iiop" schema_version="1.0" default_transaction_class="TC_4"> <iiop_classification_info transaction_class="TC_5" application_name="TestEJBEAR" module_name="TestEJB.jar" description="Sample EJB Classification" /> </InboundClassification> <!-- MDB Classification Rules --> <SibClassification type="jmsra" schema_version="1.0" default_transaction_class="TC_8"> <sib_classification_info transaction_class="TC_9" bus="BUS1" destination="ASSURE1" description="SIB MDB" /> </SibClassification> </Classification>
可以看到,此文档包含 3 个小节,一个小节对应一个分类规则类型:http 用于 Web 应用程序,iiop 用于 EJB 应用程序,jmsra 用于基于 SIB MDB 的应用程序。为 default_transaction_class 字段分配的值将用作该工作类型的默认值。对于更具体的 HTTP 分类规则,uri 字段包含部署的 WAR 的上下文根。例如值:
uri="/MigrateHelloWorldWAR/*"
可确保只要使用该上下文根,就会调用事务类 TC_2,比如:
http://myserver.hursley.ibm.com:9080/MigrateHelloWorldWAR/MyServlet?TIME=10000
对于 IIOP (EJB) 分类规则,必须提供应用程序 (EAR) 名称和模块名称 (JAR)。
对于 SIB MDB 应用程序,提供了 SIB 名称和 MDB “监听” 的目标。通常,各个 MDB 将会监听自己的目标。这意味着很容易确定各个应用程序的 CPU 使用率。
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/extra/
与该 XML 关联的完整 Classification.dtd 如清单 2 所示。
清单 2. 分类规则 DTD 文档
<?xml version='1.0' encoding="UTF-8"?> <!ELEMENT Classification (InboundClassification|SibClassification)+> <!ATTLIST Classification schema_version CDATA #REQUIRED> <!ELEMENT InboundClassification ((iiop_classification_info* |http_classification_info*|endpoint*))> <!ATTLIST InboundClassification type (iiop|mdb|http) #REQUIRED> <!ATTLIST InboundClassification default_transaction_class CDATA #REQUIRED> <!ATTLIST InboundClassification schema_version CDATA #REQUIRED> <!ELEMENT iiop_classification_info (iiop_classification_info*)> <!ATTLIST iiop_classification_info activity_workload_classification CDATA #IMPLIED> <!ATTLIST iiop_classification_info application_name CDATA #IMPLIED> <!ATTLIST iiop_classification_info component_name CDATA #IMPLIED> <!ATTLIST iiop_classification_info description CDATA #IMPLIED> <!ATTLIST iiop_classification_info method_name CDATA #IMPLIED> <!ATTLIST iiop_classification_info module_name CDATA #IMPLIED> <!ATTLIST iiop_classification_info transaction_class CDATA #REQUIRED> <!ELEMENT endpoint (classificationentry*)> <!ATTLIST endpoint defaultclassification CDATA #REQUIRED> <!ATTLIST endpoint name CDATA #REQUIRED> <!ATTLIST endpoint type (messagelistenerport) #REQUIRED> <!ATTLIST endpoint description CDATA #IMPLIED> <!ELEMENT classificationentry EMPTY> <!ATTLIST classificationentry classification CDATA #REQUIRED> <!ATTLIST classificationentry selector CDATA #REQUIRED> <!ATTLIST classificationentry description CDATA #IMPLIED> <!ELEMENT http_classification_info (http_classification_info*)> <!ATTLIST http_classification_info host CDATA #IMPLIED> <!ATTLIST http_classification_info port CDATA #IMPLIED> <!ATTLIST http_classification_info uri CDATA #IMPLIED> <!ATTLIST http_classification_info description CDATA #IMPLIED> <!ATTLIST http_classification_info transaction_class CDATA #REQUIRED> <!ELEMENT SibClassification (sib_classification_info+)> <!ATTLIST SibClassification type (jmsra|destinationmediation) #REQUIRED> <!ATTLIST SibClassification default_transaction_class CDATA #REQUIRED> <!ATTLIST SibClassification schema_version CDATA #REQUIRED> <!ELEMENT sib_classification_info EMPTY> <!ATTLIST sib_classification_info transaction_class CDATA #REQUIRED> <!ATTLIST sib_classification_info selector CDATA #IMPLIED> <!ATTLIST sib_classification_info bus CDATA #IMPLIED> <!ATTLIST sib_classification_info destination CDATA #IMPLIED> <!ATTLIST sib_classification_info discriminator CDATA #IMPLIED> <!ATTLIST sib_classification_info description CDATA #IMPLIED>
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索application
, websphere
, 应用程序
, 运行
, 规则
一个
os的不确定性、os cpu a.asm、remix os cpu支持列表、remix os amd cpu、os cpu c.c,以便于您获取更多的相关知识。