如何比较大型机CPU性能?

如何比较大型机CPU性能?

我正在使用一个在 OMVS 中的 tomcat 上运行的应用程序。它在一台主机上运行得很糟糕,而在另一台主机上运行得很好。有没有办法比较两台主机的 CPU 作为参考?

我试过:

/d m=cpu

我觉得结果不太乐观。我们的 mini 和主系统的结果似乎相同。我认为 mini 实际上更受限制。

注意:我更看重这个特定 LPAR 的 CPU 处理能力。

GC_

答案1

比较大型机映像的 CPU 数量很可能毫无意义。大型机设计用于同时运行多个任务,并优先处理业务认为最重要的任务,并且能够高度虚拟化,因此查看 CPU 数量并不能说明太多问题。您必须了解应用程序周围的环境,包括分配给 LPAR 的权重(保证 LPAR 可以访问多少逻辑 CPU)、同时在 LPAR 上运行的其他程序以及同时在同一 CEC 上的其他 LPAR 上运行的其他程序。您还需要了解 LPAR 的 WLM 策略,因为它会告诉 z/OS 哪些应用程序目标最重要,哪些不太重要。

请注意,大型机性能分析是一项专业技能,人们需要花费数年时间才能学会,因此通过 stackexchange 可以交流的内容是有限的。与系统程序员/性能分析师交流可能比自己尝试解决问题要好得多,而不是纯粹作为学习练习。

话虽如此,我可以给你一些基本的东西来查看或询问。你可能会或可能无法访问我将提到的一些数据/工具。

首先,也是最基本的,所有大型机都能够收集 SMF 70-79 记录中的性能数据,我们建议商店将这些数据作为惯例收集,如果您想要获得真正低级的数据,可以使用 SMF 113 记录。然而,它们是二进制记录,不容易理解,但它们确实存在。它们的格式记录在 z/OS MVS 系统管理设施 (SMF) 书中。

接下来,有许多工具可用于对 RMF 记录进行后处理,例如 IBM 的 RMF 以及各种供应商工具。如果您可以使用它们,您可以获得有关各种地址空间/进程随时间变化的 CPU 利用率的非常详细的信息。一些工具还具有交互模式,您可以在其中获取单个 LPAR 活动以及整个 CEC 活动的实时快照。SDSF 和 EJES 还可以为您提供有关 LPAR、CEC 和运行地址空间的一些非常基本的信息,因此您可以查看累积的 CPU 时间等。如果您可以告诉我们您有权使用哪些工具,我们可能会为您提供更具体的建议。

不过,据猜测,虽然两个映像定义了相同数量的逻辑 CPU,但主系统的权重比迷你系统高得多,这意味着主系统保证可以访问比迷你系统更多的 CPU 容量,并且大多数情况下,迷你系统无法也不会尝试将工作实际分派给大多数 CPU。如果您在 z13 上运行,并且处于 PROCVIEW CORE 模式,/dm=cpu 命令会告诉您的一件事是 CPU 是停放还是取消停放。停放的 CPU 是 z/OS 映像不会将工作分派给的 CPU,因为拥有它们的系统(如果两者都在同一个 CEC 上,则可能是主系统)正在将工作分派给它们。

答案2

Kevin 提到了许多很好的观点,但从更高层次开始分析可能会有所帮助:这两台机器是什么?由于我们讨论的是运行在 JVM 中的 Tomcat,所以它们都具有 zAAP 或 zIIP 吗(假设 zAAP 在 zIIP 上)?

从“dm=cpu”中,您应该能够获得机器型号信息,这至少可以让您知道您是否真的在进行同类比较。以下是我的笔记中的一个旧示例:

D M=CPU                                                
IEE174I 13.15.43 DISPLAY M 443                         
PROCESSOR STATUS                                       
ID  CPU                  SERIAL                        
00  +                     0xxxxx2817                   
01  +                     0xxxxx2817                   
02  -                                                  
03  N                                                  
04  N                                                  
05  N                                                  
06  N                                                  
07  N                                                  
08  NI                                                 
09  NI                                                 
0A  NI                                                 
0B  NI                                                 

CPC ND = 002817.M15.IBM.02.0000000xxxxx                
CPC SI = 2817.403.IBM.02.00000000000xxxxx            

关键点在这里:xxxxx 是(此处被遮挡的)序列号。2817 是型号,相当于 z196,而今天(2016 年)是当前 z13(型号 2964)的两代产品。型号的意义非常有限:您必须查找它们。但如果所讨论的两台机器是不同的型号,那么这就是差异的一部分。

CPC ND 线上的“M15”表示安装了多少本书/抽屉,在这种情况下它可能只是一个次要的考虑因素。

但是,CPC SI 行上的“403”很重要。“4”表示通用 (GP) 引擎的相对速度。对于较大的(以前称为企业级)机器,速度范围可以从 4(最慢)到 7(最快)。对于较小的(以前称为“商务级”)机器,速度指示器从 A(最慢)到 Z(最快,但比同一代机器的 7xx 慢)。“03”表示机器上有多少个 GP。对于少于 100 个 GP 的常见配置,这只是一个十进制数。因此,在这个例子中,机器是 z196,带有 3 个 GP,以这一代机器上可能的最慢速度运行。

但是,您提到了 Tomcat,由于 Tomcat 在 JVM 中运行,因此它的大部分 CPU 时间实际上应该用在专用引擎上 — zAAP 或 zIIP,假设 A) 此类引擎是在机器上购买的,并且 B) 它们已正确配置到 LPAR。专用引擎全速运行,而不管通用引擎的速度如何。即 zIIP 始终以 7xx 速度运行,即使它们在 4xx 机器上也是如此。

如果您尝试在没有专业引擎的情况下运行 Tomcat……那么,如果您使用的是子容量(不是 7xx)机器,这可能不太好,因为可能有许多与可用容量和软件成本相关的原因。

但是,请注意,即使 Tomcat 的大部分 CPU 时间将被卸载到 zIIP/zAAP(当可用时),但仍有一部分运行在 GP 引擎上,因此了解 GP 情况也很重要。根据配置,在 GP 上运行的量可能低至总量的 1-2%,也可能超过 10%。

请注意,在上面的显示中,zIIP 是 CPU 08-0B,但它们“不可用”。在这种情况下,它们被定义为 LPAR,但它们目前在硬件上不可用,因为这是一台 DR 机器,在快照时没有 CBU 配置。不幸的是,这些只是逻辑 zIIP,物理 zIIP 或 zAAP 的数量无法从此显示中获得,这实际上有点难以追踪。但是,如果您有在线的逻辑 zIIP/zAAP,您就知道您至少有一些物理引擎可以支持它们。

即使所讨论的两台机器属于同一代,速度设置相同,引擎数量也相同(GP 和 zIIP),但围绕大型机很少运行单个系统这一事实,还是会出现一系列问题/问题——通常有多个 LPAR 同时运行。在这种情况下,您必须开始深入研究 Kevin 提到的数据,以了解实际情况。但是,如果您将苹果(2964-605,带 zIIP)与香蕉(2828-F03,不带专用引擎)进行比较,您应该从一开始就预料到性能差异。

最后,我应该指出,相对于机器的生成,所使用的 Java 版本也很重要。例如,如果所讨论的两台机器都是 z13,但一台 Tomcat 使用 Java 8,另一台使用 Java 7,那么我会预期会有差异,因为新的 z13 指令的利用仅在 Java 8 中。

所有这些仅关注与 CPU 相关的性能问题。显然,您可能在其他地方也遇到差异和问题。但在没有其他信息的情况下,CPU 是一个不错的起点。

我已经在 z/OS 上成功运行 Tomcat,几乎没有遇到任何问题 - 但是我有足够的 zAAP/zIIP 容量可用。

相关内容