用于动态工作负荷的机会存储器微调的制作方法

文档序号:15739357发布日期:2018-10-23 22:01阅读:126来源:国知局
用于动态工作负荷的机会存储器微调的制作方法

操作存储器设备(例如随机存取存储器、动态存储器、静态存储器、高速缓存、缓冲器等)经常被计算设备用于存储运行时数据、可执行指令以及其它信息。这样的存储器设备可以以各种参数操作,并且这些参数可以影响操作存储器设备、计算设备或在计算设备上执行的应用的性能特性。

还有,各种应用对不同的操作存储器性能特性可以具有不同的响应。例如,一些应用可以对存储器的等待时间特别敏感,而其它应用可以对等待时间相对不敏感,而是可能受益于更高的带宽。然而,在传统技术中,操作存储器设备的参数典型地依赖于计算设备的硬件配置,并且在计算设备的制造或部署之前就被配置。在计算设备被部署之后,传统计算设备的参数典型地就不再改变。

附图简述

参考以下附图描述本发明的非限制性和非穷尽的实施例。在附图中,除非另外指定,相似的附图标记贯穿各个附图地指代相似的部件。这些附图不一定是按比例绘制。

为了更好地理解本发明,将参考以下与附图相关联地阅读的具体实施例,附图中:

图1是示出可在其中使用所述技术的各方面的合适的环境的示例的图示;

图2是示出根据所公开的技术的各方面的合适的计算设备的示例的图示;

图3示出所公开的技术的示例实施例的概览;

图4A和4B示出根据所公开的技术的示例实施例的性能与配置关系;

图5是示出一种用于根据本技术的各方面改进工作负荷的执行性能的过程的逻辑流程图;以及

图6是示出一种用于根据本技术的各方面在分布式计算系统中执行工作负荷的过程的逻辑流程图。

详细描述

以下描述提供了针对本技术的各种实施例的透彻理解和使其描述成为可能的具体细节。本领域的技术人员将理解该技术可以在没有这些具体细节的情况下实施。在一些实例中,公知的结构和功能未被详细示出或描述以避免不必要地使本发明的技术的实施例的描述晦涩难懂。本发明中使用的某些术语旨在以最宽的合理的方式来解释,即使其正与本技术的特定实施例的细节描述一起被使用。尽管在下面可以强调某些术语,但旨在以任何限制方式解释的任何术语将如在本详细描述章节中那样被公开和明确地定义。例如,术语“基于”和“鉴于”中的每个并非互斥性并且等价于术语“至少部分基于”并且包括基于附加因素的选项,所述附加因素中的一些未在本文中被描述。作为另一个示例,术语“经由”并非互斥性并且等价于术语“经由、至少部分”,并且包括经由附加因素的选项,所述附加因素中的一些未在本文中被描述。特定文本数字指示符的使用不是隐含更小值的指示符的存在,例如,引用“从由第三foo和第四foo组成的组中选择的窗口小部件”自身并没有隐含存在至少三个foo,也没有隐含存在至少4个栏元素。单一的引用仅是出于阅读清楚的目的被使用,并且包括多个引用,除非多个引用被明确排除。术语“或”是包含性的“或”运算符,除非以其它方式明确指出。例如,短语“A或B”意指“A、B、或A和B”。如在此所用,术语“组件”和“系统”意指包括硬件、软件、或硬件和软件的各种组合。由此,例如,系统或组件可以是过程,在计算设备上执行的过程,计算设备或其一部分。

引言

描述了涉及对操作存储器设备进行微调的技术。所述技术包括一种计算设备,该计算设备至少部分地基于已请求该计算设备执行的应用或其它工作负荷的性能特性来有选择地配置至少一个操作存储器设备的操作参数。该技术可以至少部分地以计算设备的固件形式,例如计算设备的统一可扩展固件接口(UEFI)或基本输入/输出系统(BIOS),来实现。而且,该技术可以由正在代表例如在数据中心中的分布式计算系统执行工作负荷的计算设备来使用。这样的数据中心可以包括例如数千计算设备以及甚至更多的操作存储器设备。

在这样的计算系统中,应用和其它工作负荷通常没有基于特定的计算设备的具体或实际性能来分配给那些计算设备。相反,工作负荷可能最好也只是基于计算设备的性能的粗略概括被分配。例如,工作负荷可能已基于处理器速度或安装在该计算设备中的操作存储器量被分配特定的计算设备。然而,一些工作负荷可以对存储器性能(例如存储器等待时间或存储器带宽)特别敏感。另外,某些系统的操作者可能对由他们的计算系统所消耗的功率量(包括由他们的操作存储器设备所消耗的功率量)感兴趣。

各种计算设备还可以包括各种类型的操作存储器设备。例如,这样的计算设备可以包括双列直插式存储器模块(DIMM)、小型DIMM(SODIMMs)、单列直插式存储器模块(SIMM)、操作存储器电路、操作存储器核、操作存储器管芯以及来自各种制造商且具有后各种性能规范的其它操作存储器设备。

操作存储器设备的过程和其它变化,例如制造变化、封装变化、温度变化以及其它制造、环境或其它变化可以意指在特定计算设备中的操作存储器可能能够在至少一个制造商规范之外执行。例如,存储器设备可能能够在制造商指定的参数之外执行。这些参数包括但不限于:

·时钟频率,

·总线频率,

·刷新率,

·列地址选通(CAS)循环等待时间,

·CAS等待时间,

·行地址选通(RAS)到CAS循环等待时间,

·RAS到CAS等待时间,

·RAS预充电循环等待时间,

·RAS预充电延迟时间,

·行激活延迟时间,

·指令速率,

·列到列延迟等待时间,

·列到列延迟时间,以及

·数据猝发持续时间。

因此,典型的工作负荷可能没有使用可从计算设备的操作存储器获得的全部性能。

而且,附加因素可以进一步降低这些和其它计算机系统的效率。例如,计算设备的操作存储器的操作参数或操作特性的影响可能不是将工作负荷分配给计算设备中或在配置计算设备以执行工作负荷的一个因素,例如,因为这些影响对于计算机系统或系统操作者是未知的。因此,典型的计算设备可能不被供应以利用所有可用的计算功率量。

本公开的技术可以例如被用于改进计算系统和设备的效率或使用率,以及改善工作负荷的性能。本公开的技术的一个方面包括对工作负荷进行表征以例如确定各种存储器性能特性对工作负荷的影响。例如,工作负荷可以被分析以确定操作存储器等待时间、随机存取速度、猝发存取速度或其它特性对工作负荷性能的影响。所述技术可以包括在许多计算设备上测试工作负荷以获得许多操作存储器特性中的每个的基准结果。

本公开的技术的另一个方面包括微调计算设备以从操作存储器设备获得改进的性能。例如,操作存储器参数可以在例如BIOS中被配置以测试或微调计算设备的操作存储器性能。作为一个示例,诸如时钟频率、总线频率、刷新率、CAS时序、RAS时序、RAS到CAS时序、RAS预充电时序、RAS预充电延迟时序、行激活延迟时序、指令速率、行到行延迟时序、数据猝发持续时间、非统一存储器存取(NUMA)设置、行列交错、库交错、通道交错、或其它设置或其组合可以针对工作负荷性能进行配置并测试。这些和其它设置以及其组合还可以针对操作存储器可靠性被测试。

本公开的技术的另一个方面包括将工作负荷分配给具有非常适合于那些工作负荷的操作存储器特性的计算设备例如,从较低随机存取等待时间获得比较低猝发存取速度更多收益的工作负荷可以被分配给具有匹配操作存储器特性的计算设备。同样地,从较高写入速度获得比读取速度更多收益的工作负荷可以被分配给具有提供这样的性能的操作存储器设备的计算设备。另外,对操作存储器性能相对不敏感的工作负荷可以被分配给具有针对减少的能耗而微调的操作存储器的计算设备。

换句话说,本公开的技术包括表征各种操作存储器性能特征对工作负荷的影响,以及表征各种配置参数对操作存储器性能的影响。所确定的操作存储器性能特性和操作存储器参数的影响随后可以用于将工作负荷分配给计算设备,以及微调计算设备以增强这样的工作负荷的性能。通过使用所公开的技术来将工作负荷映射给计算设备,计算系统的操作者可以在无需购买更多昂贵的操作存储器设备的情况下改进性能。

说明性设备/操作环境

图1是在其中可实践本技术的各方面的环境100的图示。如所示,环境100包括计算设备110以及通过网络130相连的网络节点120。尽管在图1中示出了环境100的特定组件,但在其它实施例中,环境100还可以包括附加和/或不同的组件。例如,在某些实施例中,环境100还可以包括网络存储设备、维护管理器和/或其它合适的组件(未示出)。

如在图1中所示,网络130可以包括与多个计算设备110互连且将计算设备110连接到外部网络140(例如因特网或内联网)的一个或多个网络节点120。例如,网络节点120可以包括开关、路由器、集线器、网络控制器或其它网络元件。在某些实施例中,计算设备110可以被组织成机架、动作区、组、集或其它合适的划分。例如,在所示的实施例中,计算设备110被分组成三个主机集,所述主机集被个别标识为第一、第二和第三主机集112a-112c。在所示的实施例中,主机集112a-112c中的每个在操作上分别被耦合到对应的网络节点120a-120c,这些网络节点通常被成为“架顶”或“TOR”网络节点。TOR网络节点120a-120c随后可以在操作上被耦合到附加的网络节点120以形成分层、扁平的、网格或允许在计算设备110和外部网络140之间通信的其它合适类型拓扑形式的计算机网络。在其它实施例中,多个主机集112a-112c可以共享单个网络节点120。

计算设备110基本上可以是任何类型的通用或专用计算设备。例如,这些计算设备可以是用户设备,例如桌面计算机、膝上计算机、平板计算机、显示设备、相机、打印机或智能电话。然而,在数据中心环境中,这些计算设备可以是诸如应用服务器计算机、虚拟计算主计算机或文件服务器计算机之类的服务器设备。而且,计算设备110可以被个别地配置以提供计算、存储和/或其它合适的计算设备。例如,计算设备110可以被配置为执行工作负荷和其它过程,例如工作负荷和在此所述的其它过程。

示例计算设备

图2是示出可在其中实践本技术的各方面的计算设备200的示例的图示。计算设备200基本上可以是任何类型的通用或专用计算设备。例如,计算设备200可以是用户设备,例如桌面计算机、膝上计算机、平板计算机、显示设备、相机、打印机或智能电话。同样地,计算设备200还可以是服务器设备,例如应用服务器计算机、虚拟计算主计算机或文件服务器计算机,例如计算设备200可以是图1的计算设备110的实施例。如图2所示,计算设备200包括处理电路210、操作存储器220、存储器控制器230、数据存储存储器250、输入接口260、输出接口270和网络适配器280。计算设备200的这些在前列出的组件中的每个包括至少一个硬件元件。

计算设备200包括被配置以执行指令的至少一个处理电路210,诸如用于实现在此描述的工作负荷、过程或技术的指令。处理电路210可以包括微处理器、微控制器、图形处理器、协处理器、现场可编程门阵列、可编程逻辑设备、单个处理器或适用于处理数据的任何其它电路。在计算设备200的运行时期间,上述指令和随同其它数据(例如数据集、元数据、操作系统指令等)一起被存储在操作存储器220中。操作存储器220还可以包括任意各种各样的数据存储设备/组件,例如易失存储器、半易失存储器、随机存取存储器、静态存储器、高速缓存、缓冲器、或被用于存储运行时信息的其它介质。在一个示例中,当计算设备200关机时,操作存储器220不保持信息。相反,作为引导或其它加载过程的部分,计算设备200可以被配置为将来自非易失数据存储组件(例如数据存储组件250)的指令传送给操作存储器220。

操作存储器220可以包括第四代双数据率(DDR4)存储器、第三代双数据率(DDR3)存储器、其它动态随机存取存储器(DRAM)、高带宽存储器(HBM)、混合存储立方存储器、3D-堆叠存储器、静态随机存取存储器(SRAM)或其它存储器,并且这样的存储器可以包括被集成到DIMM、SIMM、SODIMM或其它封装上的一个或多个存储器电路。这样的操作存储器模块或设备可以根据通道、行列和库(channels,ranks,and banks)来组织。例如,操作存储器设备可以通过通道中的存储器控制器230被耦合到处理电路210。计算设备200的一个示例可以包括每通道有一个或两个DIMM以及每通道有一个或两个行列。在一个行列内的操作存储器可以通过共享时钟以及共享地址和命令总线操作。还有,操作存储器设备可以被组织到几个库中,其中一个库可以被看作是由行和列定址的阵列。基于操作存储器的这样的组织,在操作存储器内的物理地址可以被称为通道、行列、库、行和列的元组。

尽管进行了上述讨论,但操作存储器220明确地不包括或包含通信介质、任何通信介质或任何信号自身。

存储器控制器230被配置为将处理电路210对接到操作存储器220。例如,存储器控制器230可以被配置为将在操作存储器220和处理电路210之间的命令、地址和数据对接。存储器控制器230还可以被配置为从处理电路210中提取出存储器管理的某些方面,或者以其它方式管理处理电路210的存储器管理的某些方面。例如,存储器控制器230可以代表处理电路210或计算设备200来管理存储器单元的刷新、管理存储器时序、将逻辑存储器地址转换成物理存储器地址等等。

在将操作存储器220对接到处理电路210中,存储器控制器230还可以管理操作存储器的各种参数。例如,存储器控制器230可以管理操作存储器参数,诸如时钟频率、总线频率、刷新率、CAS时序、RAS时序、RAS到CAS时序、RAS预充电时序、RAS预充电延迟时序、行激活延迟时序、指令速率、行到行延迟时序、数据猝发持续时间、NUMA设置、行列交错、库交错、通道交错、或其它设置或其组合。另外,存储器控制器230还可以例如通过经由时钟周期输入/输出规范或操作存储器的流水线组织设置控制时钟周期的配置参数来管理处理电路210的读取和/或写入、管理处理电路210或操作存储器220的存取模式等等。

虽然存储器控制器230以与处理电路210分开的单个存储器控制器形式被示出,但在其它示例中,多个存储器控制器可以被使用,存储器控制器可以与操作存储器220集成在一起等等。而且,存储器控制器可以被集成到处理电路210中。这些和其它变化是可能的。

在计算设备200中,数据存储存储器250、输入接口260、输出接口270和网络适配器280通过总线240被对接到处理电路210。虽然,图2将总线240示出为单个无源总线,其它配置,例如总线的集合、点到点链路的集合、输入/输出控制器、桥、其它接口电路或其任意集合,也可以被用于将数据存储存储器250、输入接口260、输出接口270或网络适配器280对接到处理电路210。

在计算设备200中,数据存储存储器250被用于长期非易失数据存储。数据存储存储器250可以包括任意各种各样的非易失数据存储设备/组件,例如非易失存储器、盘、盘驱动器、硬盘驱动器、固态驱动器、或可以被用于信息的非易失存储的任何其它介质。然而,数据存储存储器250明确地不包括或包含通信介质、任何通信介质或任何信号自身。与操作存储器220相对地,数据存储存储器250被计算设备200用于非易失长期数据存储,以取代运行时数据存储。

而且,计算设备200可包括或被耦合至任何类型的诸如计算机可读存储介质(例如,操作存储器220和数据存储存储器250)和通信介质(例如,通信信号和无线电波)的计算机可读介质。虽然术语计算机可读存储介质包括操作存储器220和数据存储存储器250,但该术语明确排除并且不包含通信介质、任何通信介质或任何信号自身。

计算设备200还包括输入接口260,其可以被配置为允许计算设备200从用户或从其它设备接收输入。另外,计算设备200包括输出接口270,其可以被配置为提供来自计算设备200的输出。在一个示例中,输出接口270包括帧缓冲器、图形处理器、图形处理器或加速器,并且被配置为渲染显示以供在单独的视觉显示设备(例如监视器、投影仪、虚拟计算客户端计算机等)上呈现。在另一个示例中,输出接口270包括视觉显示设备,并被配置为渲染并呈现显示以供观看。

在所示的示例中,计算设备200被配置为通过网络适配器280与其它计算设备或实体通信。网络适配器280可以包括有线网络适配器,例如以太网适配器、令牌环网适配器或数字订户线(DSL)适配器。网络适配器280还可以包括无线网络适配器,例如,Wi-Fi适配器、蓝牙适配器、ZigBee适配器、长期演进标准(LTE)适配器或5G适配器。

尽管计算设备200被示为具有以特定布置配置的某些组件,但这些组件和布置仅仅是可以在其中使用本技术的计算设备的一个示例。在其它示例中,数据存储存储器250、输入接口260、输出接口270或网络适配器280可以被直接耦合到处理电路210或通过输入/输出控制器、桥、或其它接口电路被耦合到处理电路210。所述技术的其它变化是可能的。

图3示出所公开的技术的示例实施例的概览。具体而言,图3提供了本技术的一个实施例的逻辑说明,在其中针对操作存储器的多个配置参数集评估了多个存储器性能度量(例如等待时间、带宽、能耗)。换句话说,图3示出了用于查找改善工作负荷性能的因工作负荷而异的存储器配置的技术。

如310所示,操作存储器通过配置参数被配置并利用微基准测试(micro-benchmark)进行测试以测量各种存取模式对存储器性能度量的影响,例如等待时间(诸如读取、写入或两者)、带宽(例如读取、写入或两者)、能耗等等。在图3所示的双度量实施例中,度量可以是例如存储器等待时间和存储器带宽。

310的配置和测试可以使用任意数目的计算设备来执行。然而,在至少一个示例中,该配置和测试使用驻留有操作存储器模块的多个计算设备来执行,而无需关注在它们的配置、制造过程等中的内在变化。使用多个计算设备,一组微基准测试可以被执行以测量操作存储器的加载和空载的等待时间和带宽。例如,这种配置和测试可以在例如通电自检(POST)例程期间在BIOS中被执行。在一个示例中,该测试可以由自动工具作为POST例程来执行。操作存储器还可以使用多个配置参数集来被重新配置和重新测试。

操作存储器模块的测试还可以包括时序、频率和其它设置的协商以确定操作存储器的配置参数的基线集随后,一个或多个计算设备可以用配置参数的基线集来配置,并且测试可以被执行以相对于一个或多个度量来量化操作存储器的性能。配置参数的附加集,例如改变操作存储器的一个或多个配置参数,也可以被测试以量化操作存储器的性能。所述配置参数可以在操作存储器设备的规范之内,或在这样的规范之外。

如320所示,相对于不同的存储器配置参数来分析工作负荷的性能(例如工作负荷执行的速度、在执行工作负荷时消耗的能量、工作负荷所处理的记录数量等等)。

例如,测试(包括使用不同的操作存储器配置参数集执行不同的应用或其它工作负荷)可以被执行以测量这样的工作负荷的性能特性。例如,可以测量工作负荷或能耗的端到端性能。这种特性方案允许开发对操作存储器度量(例如吞吐率和等待时间)敏感的工作负荷的模型。

而且,测试结果可以被保存、导出或以其他方式被传送给另一个计算设备。例如,所述测试数据可以被导出给另一个计算设备,例如数据中心负荷平衡器。这样的导出可以通过例如启用网络的BIOS的例程、由UEFI例程、由网络控制器等等在完全引导计算设备之前被执行。或者,一旦计算设备已经引导,测试数据可以被保存并导出。而且,任何合适的协议可以被用于将测试数据传送到其它计算设备,或从固件例程传送到计算设备的操作系统。例如,测试数据可以通过简单网络管理协议(SNMP)、智能平台管理接口(IPMI)、高级配置与电源接口(ACPI)等来传送。

导出的数据可以与来自其它计算设备的数据合并,或者数据可以由其它计算设备用于标识含有较快操作存储器的计算设备并将对操作存储器性能敏感的工作负荷重新分配给那些计算设备。

在330,来自310的存储器性能度量和来自320的应用性能数据可以被一起使用以相对于存储器性能度量表征工作负荷性能。这些存储器性能度量和应用性能数据的使用允许对不同的存储器性能度量对工作负荷性能的影响的独立评估。可能地,这种依赖性还可以被表示为连续函数(在330处示出)。

图4A和4B示出根据所公开的技术的示例实施例的性能与配置关系。例如,图4A和4B的图表可以使用图3的技术来生成。如图4A所示,"App1"对操作存储器的性能不敏感。然而,如在图4B中所示的"App2"对操作存储器的性能更加敏感。因此,负荷平衡器可以选择将App1分配给具有较低性能的操作存储器设备的计算设备,并且系统操作者可以选择将App2分配给具有较高性能的操作存储器设备的计算设备,或者为计算设备购买更高性能的操作存储器设备以安置App2。

说明性过程

为简明起见,本文描述的过程按照以特定次序由系统的特定设备或组件执行的操作描述。然而,注意到其他过程不限于规定的序列、设备或组件。例如,特定动作可以在不同的序列中被执行、被并行地执行、被省略、或者可由附加动作或特征补充,不管这些序列、并行化、动作或特征是否在本文中描述。同样,本公开所述的任何技术可被并入所描述的过程或其他过程,不管此技术是否被结合过程具体描述。本公开的过程还可以在其它设备、组件或系统上执行或由其它设备、组件或系统来执行,无论这样的设备、组件或系统是否在此描述。还可以以各种方式实现这些过程。例如,它们可以在一种制品中实现,例如作为存储在计算机可读存储介质的计算机可读指令,或作为计算机实现的过程被执行。作为一个可替代示例,这些过程可被编码为计算机可执行指令并且经由通信介质传送。

图5是示出用于改善工作负荷的执行性能的过程500的逻辑流程图。过程500在510处开始,在510,确定操作存储器的性能特性。作为一个示例,这包括针对多个配置参数集的每个确定多个性能特性/度量。该确定还可以包括使用各种配置参数的操作存储器的测试操作,所述配置参数既可以在操作存储器的制造商规范之内,也可以在操作存储器的制造商规范之外。510的处理还可以包括确定某些配置参数或配置参数集不适合用于该操作存储器(例如由于可靠性问题)。

处理从510流至520,在520,确定操作存储器的性能特性对工作负荷的影响。例如,这可以包括确定在要在计算设备上执行的工作负荷的性能和操作存储器的性能特性之间的关联。还有,这可以包括使用操作存储器的各种配置参数集的工作负荷的测试执行,例如如上结合图3所述的。

处理从520流至530,在530,重新配置了操作存储器的配置参数。该重新配置可以基于所确定的操作存储器的性能配置、基于所确定的配置参数对应用的影响或基于这两者。

处理从530流至540,其中例如使用经重新配置的操作存储器在计算设备上执行工作负荷。在至少一个示例中,工作负荷的执行是响应于基于所确定的在计算设备中的操作存储器的性能特性将工作负荷自动分配给该计算设备。

图6是示出用于在分布式计算系统中执行工作负荷的过程600的逻辑流程图。过程600在610处开始,在610,计算设备接收对执行工作负荷的请求。作为一个示例,可以响应于由另一个计算设备(例如数据中心的负荷平衡器)将工作负荷自动分配给所述计算设备来接收所述请求。所述请求还可基于该计算设备的操作存储器的硬件测试。

处理从610流至620,在620,确定计算设备的操作存储器的配置参数。这样的确定可以由BIOS执行或基于来自BIOS的信息。而且,所述确定可以至少部分基于工作负荷的性能特性,例如基于为该工作负荷提供合适的性能的操作存储器配置参数的确定。所述确定还可以基于从另一个计算设备(例如工作负荷控制器或负荷平衡器)接收到的信息,或基于计算设备本地的信息。

处理从620流至630,在630,计算设备被配置为根据所确定的配置参数来操作。例如,计算设备的这种配置可以至少部分地由计算设备的BIOS、计算设备来执行。

处理从630流至640,在640,所述工作负荷在计算设备上执行。工作负荷的执行可以包括使用计算设备的操作存储器。例如,工作负荷的执行可以包括根据所确定的配置参数从计算设备的操作存储器中进行读取,或根据所确定的配置参数对计算设备的操作存储器进行写入。

结语

尽管以上详细描述描述了该技术的特定实施例,并且描述了构想的最佳模式,无论以上出现在文本中多详细,该技术可以用许多方式实践。细节可以在实现中变化,但仍然被在此所述的本技术包含。如上所述,当描述本技术的某些特征或方面时所使用的特定术语不应该认为是隐含所述术语在此被重新定义为被局限到该术语相关联的任何特定的特性、特征或方面。通常,在下述权项中使用的术语不应该被构成将本技术限制到在此所述的特定实施例,除非详细描述明确定义了这样的术语。因此,本技术的实际范围不仅涵盖了所公开的实施例,而且还涵盖了实践或实现本技术的所有等价物。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1