z196使大型机性能调优变得更加困难

日期: 2010-08-31 作者:Robert Crawford翻译:黄永兵 来源:TechTarget中国 英文

由于大型机的组件非常昂贵,因此人们总是希望用各种办法榨干每个组件的最后一滴可用资源,传统上,大型机性能调优都是围绕指令路径,减少I/O和软件配置展开的,虽然这些调优方法现在仍然很重要,但最近几代大型机处理器让内存地址引用变得不可预测,这一度量指标最初是由IBM引入的,它是影响性能最关键的因素。   时钟速度和内存   处理器时钟速度随每一代新硬件推出都会提高,IBM声称前不久发布的z196大型机采用了5.6GHz处理器,比上一代大型机z10采用的4.4GHz处理器明显要快得多,但并不总是越快越好,时钟速度越快可能会带来一些负面问题。   首先,在单个时钟周期内处理器执行指令的时间更短,IBM已……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

由于大型机的组件非常昂贵,因此人们总是希望用各种办法榨干每个组件的最后一滴可用资源,传统上,大型机性能调优都是围绕指令路径,减少I/O和软件配置展开的,虽然这些调优方法现在仍然很重要,但最近几代大型机处理器让内存地址引用变得不可预测,这一度量指标最初是由IBM引入的,它是影响性能最关键的因素。

  时钟速度和内存

  处理器时钟速度随每一代新硬件推出都会提高,IBM声称前不久发布的z196大型机采用了5.6GHz处理器,比上一代大型机z10采用的4.4GHz处理器明显要快得多,但并不总是越快越好,时钟速度越快可能会带来一些负面问题。

  首先,在单个时钟周期内处理器执行指令的时间更短,IBM已经在最新型号的产品中通过延长指令管道,增加更多步骤来减轻这个问题,这并不全是坏事,越多的步骤意味着要并行发生更多的事情。

  其次,由于时钟速度加快,大量的处理器周期必须等待获取信息(因内存不足或本地缓存增加),从外表上看起来好像是CPU特别繁忙,而实际上却不是这样,内存和缓存分配失调就会引起这种假象。

  使用成比例巢状烈度测量大型机性能

  为了通过内存地址引用的方法测量大型机的性能,IBM提出了成比例巢状烈度测量(Relative Nest Intensity,RNI)度量标准,值得注意的是,虽然z196有独立的指令和数据一级缓存(L1),但下面的内容凡是提及“数据”一词都指的是这两者。

  第一步是了解RNI中巢的概念,z196有四个缓存级别,一级和二级都直接嵌入在处理器核心中,因此每个核心都拥有自己独立的一级(L1)和二级(L2)缓存,但三级缓存(L3)是所有处理器核心共享的,四级缓存(L4)一般由本地的Book使用,但如果必要,处理器也可以从另一个Book中的远程四级缓存获取数据,最后是CEC中所有Book共享的主内存,四种缓存加上主内存形成了一个类似于鸟巢的存储结构。

  根据定义,巢由三级、四级缓存和内存一起组成,处理器访问它们时需要更多的时间,对于z196,RNI的计算公式是:

  RNI = 1.6*(.4*L3LP+1*L4LP+2.4L4RP+7.5*MEMP)/100

  其中:

  • L3LP表示一级缓存丢失三级缓存内容的百分比;
  • L4LP表示一级缓存丢失本地四级缓存内容的百分比;
  • L4RP表示一级缓存丢失另一个Book中四级缓存内容的百分比;
  • MEMP表示一级缓存丢失内存内容的百分比。

  IBM表示这些百分比并不是固定的,可能会发生变化。

  从公式中可以推断出,RNI指数值越高,表示工作负载花在数据等待上的时间越多,其值越小表示工作负载使用处理器的效率很高,内存地址引用速度越快,高RNI也意味着有许多工作负载在争夺缓存资源,而不是真正的存储资源。再声明一下,指令等待数据的时间往往会被认为是处理器繁忙,因此,即便是完全相同的工作负载,根据系统的繁忙程度和缓存的竞争不同,CPU的表现也完全不同。

  RNI的影响

  大多数调优人员都很满意大型机的性能因子,如I/O和指令路径,相对而言,RNI还是一个比较新的难以服众的因素,为此,IBM为调优人员提供了一些技巧:

  • IBM创建了L1指令缓存,并假设它很少需要更新,因此那些修改自身或存储的程序将会受到惩罚,因为它们需要重新载入到指令缓存中。这个建议是IBM推出Z架构时提出的,因此不算是新技巧。
  • 用户应该开启Hiperdispatch,使用Hiperdispatch时,大型机Hypervisor PR/SM结合z/OS的调度器,可将工作负载维持在同一个物理处理器上,希望工作负载与处理器处理能力实现完美匹配,以便更好的利用缓存,特别是本地芯片上的缓存。
  • 尽可能使用连接装配存储区(Link Pack Area,LPA)模块,LPA模块共享LPAR中的所有地址空间,因此,一旦LPA代码进入一级缓存,许多不同的地址空间就可以使用它。
  • 如果想获得更好的内存地址引用效果,最好重写程序,这可能是最难抉择的一项了,在使用了动态存储结构的系统,或要解决程序外部数据的系统中,这样做也是不可能的。
  • 减少LPAR中的地址空间数量,地址空间越小意味着内存竞争的几率也越小,缓存更是如此。
  • 最后一个建议可能是最难咽下去的,联机子系统,如CICS和IMS,倾向于横向扩展大型机性能和可用性,缩短批处理窗口时间,鼓励用户尽可能多地并行运行多个作业,像往常一样,答案会因人而异,每个人都会在内存地址引用和并发之间找到他们自己的平衡点。

作者

Robert Crawford
Robert Crawford

数据中心专家