CN103810047A - 动态改善逻辑分区的存储器亲和性 - Google Patents

动态改善逻辑分区的存储器亲和性 Download PDF

Info

Publication number
CN103810047A
CN103810047A CN201310571745.9A CN201310571745A CN103810047A CN 103810047 A CN103810047 A CN 103810047A CN 201310571745 A CN201310571745 A CN 201310571745A CN 103810047 A CN103810047 A CN 103810047A
Authority
CN
China
Prior art keywords
logical partition
computer system
memory affinity
resource
scoring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310571745.9A
Other languages
English (en)
Other versions
CN103810047B (zh
Inventor
D.C.伯克斯特兰德
P.J.赫尔曼
W.B.奥伦
E.C.普罗瑟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103810047A publication Critical patent/CN103810047A/zh
Application granted granted Critical
Publication of CN103810047B publication Critical patent/CN103810047B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Abstract

在包括多个节点和多个逻辑分区的计算机系统中,动态分区管理器计算当前存储器亲和性和潜在存储器亲和性,以帮助确定在节点之间的资源的重新分配是否可以改善逻辑分区或者计算机系统的存储器亲和性。如果可以,则执行资源的重新分配,从而改善逻辑分区或者用于计算机系统的存储器亲和性。根据包括多个初级域和多个二级域的硬件域层次结构相对于资源的物理布局计算存储器亲和性。

Description

动态改善逻辑分区的存储器亲和性
技术领域
本公开总体涉及计算机系统,并且更具体地涉及包括在多个节点上的多个逻辑分区的计算机系统。
背景技术
在特定的计算机系统上的硬件和软件的结合定义了计算环境。因此,不同的硬件平台和不同的操作系统提供不同的计算环境。近年来,工程师们已经认识到,可以通过将计算机系统资源逻辑分区都不同的计算环境,而在同一物理计算机系统上提供不同的计算环境。由IBM开发的iSeries的计算机系统是支持逻辑分区的计算机系统的示例。如果需要在iSeries的计算机系统上进行逻辑分区,则安装允许在同一平台上定义不同计算环境的分区管理器代码(在IBM的术语中称为“管理程序(hypervisor)”)。一旦安装了分区管理器,则可以创建定义不同的计算环境的逻辑分区。分区管理器管理逻辑分区,以确保它们可以在计算机系统中共享需要的资源,同时维持由逻辑分区所定义的分离的计算环境。
逻辑分区领域中更多最近的发展支持在正在运行逻辑分区时的动态的资源分配,并且支持跨计算机系统中的多个节点定义逻辑分区。在逻辑分区正在运行时动态分配资源的能力导致与逻辑分区中的存储器亲和性(memory affinity)相关的问题。此处定义逻辑分区的存储器亲和性是每个节点的逻辑分区的存储器与每个节点的逻辑分区的处理器的比率。当逻辑分区可以跨节点时,存储器亲和力是重要的,因为在节点中的逻辑分区中,由处理器对相同节点上的存储器进行的访问比对在不同节点上的存储器进行的访问快很多。出于这个原因,我们希望确保在节点上的每个处理器具有相应的存储器。如果这是可能的,则可以实现完美的存储器亲和性。
当首次启动逻辑分区时,分区管理器可以创建具有完美的存储器亲和性的逻辑分区,这意味着每个处理器在每个节点上都具有相应数量的存储器,或者如果不能够实现完美的存储器亲和性,也可以对所有的逻辑分区具有相似的存储器亲和性。但是请注意,资源的动态重新分配可能会对一个或多个逻辑分区的存储器亲和性产生负面影响。随着时间的推移,有可能逻辑分区的存储器亲和性会降低到对逻辑分区的性能产生严重的负面影响的点。
发明内容
在包括多个节点和多个逻辑分区的计算机系统中,动态分区管理器计算当前存储器亲和性和潜在存储器亲和性,以帮助确定在节点之间的资源的重新分配是否可以提高逻辑分区或计算机系统的存储器亲和性。如果可以,则进行资源的重新分配,从而改善逻辑分区或计算机系统的存储器亲和性。根据包括多个初级域(primary domain)和多个二级域(secondary domain)的硬件域层次结构,相对于资源的物理布局来计算存储器亲和性。
如在附图中示出的,从以下更具体的描述中,上述的和其它的特征和优点将变得显而易见。
附图说明
将结合附图来对本发明进行描述,在附图中,相同的符号表示相同的元件,并且其中:
图1是包括存储器亲和性计算机构的计算机系统的框图;
图2是包括八个初级域和四个二级域的示例性计算机系统的框图;
图3是示出在图2的示例性计算机系统上定义的四个逻辑分区中的每一个的分布类型(spread type)的表;
图4是示出处理器和存储器向四个逻辑分区的分配的表;
图5是对于图2的计算机系统计算存储器亲和性的方法的流程图;
图6是用于确定每个逻辑分区的分布类型的方法的流程图;
图7是用于定义每个逻辑分区的分布类型的方法的流程图;
图8是示出示例性的初级域和二级域的表;
图9是通过将每个逻辑分区的存储器亲和性相加来计算机系统的存储器亲和性的公式;
图10是基于存储器亲和性来分析在逻辑分区内的资源的潜在重新分配的方法的流程图;
图11是基于存储器亲和性、逻辑分区存储器代理(agent)与动态分区管理器相互作用以实现逻辑分区内的资源的重新分配的方法的流程图;
图12是基于计算机系统的存储器亲和性、用于分析在计算机系统中的资源的潜在重新分配的方法的流程图;以及
图13是示出处理器和存储器向四个逻辑分区的潜在分配的表。
具体实施方式
此处的权利要求和公开提供了一种方法,用来计算当前存储器亲和性和潜在存储器亲和性、以帮助确定在节点之间的资源的重新分配是否可以改善逻辑分区或计算机系统的存储器亲和性。如果可以,则进行资源的重新分配,从而改善逻辑分区或计算机系统的存储器亲和性。根据包括多个初级域和多个二级域的硬件域层次结构,相对于资源的物理布局来计算存储器亲和性。
参考图1,计算机系统100是包括动态分区管理器的服务器计算机系统的一个适当的实施方式。服务器计算机系统100是IBM的iSeries计算机系统。然而,本领域技术人员将会理解,此处的公开同样适用于任何计算机系统,而不论计算机系统是复杂的多用户计算装置、是单用户工作站、还是嵌入式控制系统。如图1所示,计算机系统100包括一个或多个处理器110、主存储器120、大容量存储设备接口130、显示器接口140、以及网络接口150。这些系统组件通过使用系统总线160而互连。大容量存储设备接口130被用于将诸如本地大容量存储设备155的大容量存储设备连接到计算机系统100。一个特定类型的本地大容量存储设备155是可读可写的CD-RW驱动器,其可以向CD-RW195存储数据和从中读取数据。
主存储器120优选地包含数据121、动态分区管理器122、以及多个逻辑分区124,在图1中被显示为124A、…、124N。数据121表示作为输入到计算机系统100的任何程序中或从计算机系统100的任何程序中输出的任何数据。动态分区管理器122是复杂的程序,其包含低层次的代码来管理计算机系统100的资源。这些资源中的一些是处理器110、主存储器120、大容量存储设备接口130、显示器接口140、网络接口150、和系统总线160。动态分区管理器122包括存储器亲和性计算机构123,其允许动态分区管理器122基于当前的资源分配来计算当前存储器亲和性,以及基于建议的资源的重新分配来计算潜在存储器亲和性。动态分区管理器可以对于任何单独的逻辑分区计算当前存储器亲和性和潜在存储器亲和性,并且其也可以对于整个计算机系统计算当前存储器亲和性和潜在存储器亲和性。动态分区管理器122优选地创建N个逻辑分区124。每个逻辑分区124优选地包括相应的操作系统,在图1中被示出为操作系统125A至125N,以及相应的存储器亲和性代理,在图1中被示出为存储器亲和性代理126A至126N。
每个逻辑分区中的操作系统是多任务操作系统,例如,i5/OS、AIX、或Linux,但是,本领域技术人员将会理解,本发明的精神和范围并不局限于任何一个操作系统。任何合适的操作系统都可以使用。在每个逻辑分区中的操作系统可以与在其他逻辑分区中的操作系统相同,或者可以是完全不同的操作系统。因此,一个逻辑分区可以运行i5/OS操作系统,而不同的逻辑分区可以运行可能是不同的版本或具有不同的环境设置(例如,时区或语言)的i5/OS的另一个实例。每个逻辑分区中的操作系统甚至可以不同于i5/OS,如果其与硬件兼容(如AIX或Linux)。以这种方式,逻辑分区可以在相同的物理计算机系统上提供完全不同的计算环境。
逻辑分区125A-125N在图1中示出,其驻留在主存储器120内。然而,本领域技术人员将认识到,逻辑分区是包括除存储器以外的资源的逻辑构造。逻辑分区通常指定存储器的一部分,以及处理器能力和其他系统资源的分配。因此,一个逻辑分区可以被定义为包括两个处理器和存储器120的一部分。另一个逻辑分区则可以被定义为包括三个其他处理器和存储器120的不同部分。图1中示出的逻辑分区用于象征性地代表逻辑分区,其可以包括在计算机系统100内的存储器120外部的系统资源。还要注意,动态分区管理器122优选地驻留在与逻辑分区分离的存储器和硬件中,并且包括逻辑分区不能直接使用的设施和机构。
计算机系统100利用公知的虚拟寻址机制,其允许计算机系统100的程序就如同其只访问一个大的连续的地址空间而不是访问多个较小的存储实体一样运行例如主存储器120和本地大容量存储设备155。因此,虽然数据121、动态分区管理器122和逻辑分区124A、…、124N被示出为驻留在主存储器120中,但是本领域技术人员将认识到,这些项不一定都必须同时完全包含在主存储器120中。还应当注意,此处所用的术语“存储器”总体地指计算机系统100的整个虚拟存储器,并且可以包括耦合到计算机系统100的其它计算机系统的虚拟存储器。
处理器110可以由一个或多个微处理器和/或集成电路构造而成。处理器110执行存储在主存储器120中的程序指令。主存储器120存储处理器110可访问的程序和数据。当计算机系统100启动时,处理器110最初执行构成动态分区管理器122的程序指令。处理器110还在各个逻辑分区124A、…、124N中执行操作系统125A、…、125N。
虽然计算机系统100被示出为仅仅包含单个处理器和单个系统总线,但是本领域技术人员将会理解,动态分区管理器可以使用具有多个处理器和/或多个总线的计算机系统来实施。此外,每个所使用的接口优选地包括分离的、完全编程的微处理器,其被用于分担(off load)来自处理器110的计算密集型处理。然而,本领域技术人员将会理解,这些功能也可以使用I/O适配器来执行。
显示器接口140被用来将一个或多个显示器165直接连接到计算机系统100。这些显示器165可以是非智能(即,不智能)终端或完全可编程的工作站,用于向系统管理员和用户提供与计算机系统100沟通的能力。然而注意,虽然提供显示器接口140来支持与一个或多个显示器165的通信,但是计算机系统100并不一定必须需要显示器165,因为与用户和其他处理的所有需要的相互作用可以经由网络接口150发生。
网络接口150被用于经由网络170将计算机系统100连接到其他计算机系统或工作站175。网络接口150广泛地表示用于将电子设备互联的任何适当的方式,无论网络170是否包括当今的模拟和/或数字技术或者经由未来的某些网络机构。网络接口150优选地包括允许在网络170上的通信的硬件和软件的组合。网络接口150中的软件优选地包括使用合适的网络协议、经由网络170来管理与其他计算机系统175的通信的通信管理器。可以使用许多不同的网络协议来实现网络。这些协议是专用的计算机程序,其允许计算机通过网络进行通信。TCP/IP(传输控制协议/网际协议)是合适的网络协议的示例,其可以通过网络接口150内的通信管理器来使用。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
计算机程序指令也可以被加载到计算机、其它可编程数据处理装置、或其他设备上,以使得在计算机、其他可编程装置或者其他设备上执行一系列操作步骤,以产生计算机实现的处理,从而在计算机或者其他编程装置上执行的指令提供用于实现在流程图和/或框图的一个或多个块中指定的功能/动作的处理。
参考图2,例如,计算机系统200被示出为包括可分配到不同的逻辑分区的存储器和硬件的计算机系统。根据硬件的物理边界,硬件被分为硬件域层次结构。对于该特定的示例,我们假设初级域对应于芯片,而二级域对应于节点或抽屉(drawer)。然而,注意到,初级域和二级域的概念可以被应用到任何合适的硬件层次结构,不论是当前已知的或在将来开发的。计算机系统200包括四个二级域202A、202B、202C、和202D。每个二级域包括两个初级域。因此,二级域202A包括初级域204A和204B;二级域202B包括初级域204C和204D;二级域202C包括初级域204E和204F;并且二级域202D包括初级域204G及204H。每个初级域具有物理处理器和物理存储器。因此,初级域204A包括四个处理器210A和16千兆字节(GB)的存储器220A;初级域204B包括四个处理器210B和16GB的存储器220B;初级域204C包含两个处理器210C和16GB的存储器220C;初级域204D包括两个处理器210D和48GB的存储器220D;初级域204E包括八个处理器210E和32GB的存储器220E;初级域204F包括八个处理器210F和32GB的存储器220F;初级域204G包括两个处理器210G和32GB的存储器220G;以及初级域204H包括两个处理器210H和64GB的存储器220H。利用图2中所示的该样本计算机系统200的硬件结构,图1中的动态分区管理器122将资源分配给需要被创建的逻辑分区。
图3示出了对于沿着左侧的列的逻辑分区ID(LP ID)1-4给四个逻辑分区指定它们各自的处理器和存储器需要的表。图3中的表指定了“分布类型”,其是逻辑分区可适合于计算机系统200中何处的指示。在图3中示出了四个特定的分布类型,包括:包含在初级域中(CiP);包含在二级域中(CiS);跨二级域分布(SaS);以及其适合的任何地点(WiF)。这些分布类型定义对于特定的逻辑分区如何分配资源以及如何计算存储器亲和性。在下面将对分布类型进行更详细的讨论。
图4中的表表示对于在图3中所示的四个逻辑分区中的每一个的,在初级域和二级域中的处理器和存储器的分配。图4中的域编号参考图2中的初级域,而二级域是在两个基础域的每个组合中的右边的小的编号。因此,二级域0(节点/抽屉0)包括初级域0和1(芯片0和芯片1);二级域1包括初级域2和3(芯片2和芯片3);二级域2包括初级域4和5(芯片4和芯片5);以及二级域3包括初级域6和7(芯片6和芯片7)。用于解释图4中的每个分区的分配的方式是如果编号在单元中的上部的行,则其用于上面的域;并且如果编号是在单元中的下部的行,则其用于下面的域。因此,对于LP ID2,第一单元中的3用于初级域0,因为其处于单元的上部。对于LP ID3,第一单元中的8用于初级域4,因为其处于单元的下部。对于LP ID3,在第三个单元中存在两个编号,在上部的3和在下部的1。这表示在初级域1中有3个处理器并且在初级域5中有1个处理器。
参考图5,方法500示出了用于计算机系统的计算存储器亲和性的步骤。首先,相对于计算机系统的物理硬件布局来对每个逻辑分区进行评分(步骤510)。可应用一个或多个调整(步骤520)。在步骤520中可以应用的调整的示例包括页表调整、权重调整和共享存储器调整。例如,页表调整可以包括基于硬件页表或者虚拟页表的位置减少存储器亲和性的因子。例如,权重调整可包括根据在逻辑分区中使用的资源的数量除以计算机系统中的资源的总数量来减少存储器亲和性的因子。例如,共享存储器调整可以包括当存储器与其他逻辑分区共享时减小存储器亲和性的因子。例如,共享存储器调整可以考虑共享池(shared pool)的大小、如果总数大于池的大小则考虑共享存储器配置彼此之间的相对百分比、以及考虑共享的存储器池的实际使用百分比等。用于全部逻辑分区的调整的评分然后被求和(步骤530),以获得例如图2的计算机系统200的计算机系统的存储器亲和性评分。然后方法500完成。
图5的步骤510相对于物理硬件布局来对每个逻辑分区进行评分。这可以使用概念“分布类型”来实现。参照图6,方法600分析逻辑分区的资源(步骤610)并确定逻辑分区的分布类型(步骤620)。当存在多个逻辑分区(步骤630=是)时,方法600循环回到步骤610并继续,直到没有更多的逻辑分区(步骤630=否)。然后方法600完成。
基于逻辑分区在理论上可以适合于计算机系统的何处,对于每个逻辑分区确定分布类型。分布类型的概念是强大的,因为其反映了硬件域层次结构中的实际硬件边界。当逻辑分区可以被分配在单个初级域(例如,芯片)时,逻辑分区将具有非常高的存储器亲和性。相对于在各个域中提供的资源的、逻辑分区所需要的资源的数量将确定逻辑分区的分布类型。参照图7,方法700示出一种用于定义逻辑分区的分布类型的合适方式。将逻辑分区排序到优先级列表中(步骤710)。优先级列表按优先级的顺序列出逻辑分区,从而最高优先级逻辑分区被首先考虑,次最高优先级逻辑分区下一个考虑等。可以确定任何优选的资源布置(步骤712)。例如,出于某些具体原因,例如期望的维护、安全性等,系统管理员可以指定特定逻辑分区的资源被分配在特定域中。然后,从优先级列表中选择最高优先级逻辑分区(步骤714)。如果逻辑分区将适合于在初级域中(步骤720=是),则分布类型是包含在初级域中(CiP)(步骤722)。如果逻辑分区不适合于初级域中(步骤720=否),但将适合于在二级域中(步骤730=是),则分布类型是包含在二级域中(CiS)(步骤732)。如果逻辑分区不适合于在二级域中(步骤730=否),但将适合于以合理的平衡方式跨多个二级域(步骤740=是),则分布类型是跨二级域分布(SaS)(步骤742)。如果逻辑分区不适合于以合理的平衡方式跨多个二级域(步骤740=否),但是将适合于随机地在各个域上(步骤750=是),则分布类型是其适合的任何地点(WiF)(步骤752)。如果逻辑分区不适合于随机地在各个域上(步骤750=否),但适合于跨集群中的多个系统(步骤760=是),则分布类型是跨集群分布(SaC)(步骤762)。如果逻辑分区不适合于跨集群中的多个系统(步骤760=否),则逻辑分区不能被分配到计算机中以包括系统集群,因此,逻辑分区分配失败(步骤780)。当优先级列表中存在更多的逻辑分区要处理时(步骤790=是),方法700循环回到步骤714并继续,直到在优先级列表中没有更多的逻辑分区要处理(步骤790=否)。然后方法700完成。通过创建逻辑分区的优先列表,然后从最高优先级到最低优先级确定分布类型,较高优先级的逻辑分区具有较大的可能性有较好的存储器亲和性。
图8示出了显示在硬件域层次结构中的两个可能的硬件层的表。对于在图2中所示的特定示例,初级域对应于芯片,而二级域对应于节点或抽屉。当然,其他硬件域层次结构也是可能的,而且也都落入在此处的说明书和权利要求的范围内。
参考图9,示出了用于对例如在图2中所示的计算机系统200的计算机系统计算存储器亲和性的表达式。注意,图9中的表达式是图5中的方法500中所示的步骤的一个特定的实施方式。计算机系统的存储器亲和性通过以下表达式来表示:
Σ 1 n ( RawScore _ f ( SpreadType ) ) * ( PageTableAdjustment ) * ( WeightAdjustment ) * ( SharedMemoryAdjustment )
因此,计算机系统的存储器亲和性是来自各个逻辑分区的调整的评分的总和。基于RawScore来确定逻辑分区的调整的评分,所述RawScore是SpreadType的函数。SpreadType是基于硬件域层次结构的种类。一种合适的硬件域层次结构包括5个不同的分布类型,如图7所示且如上所述。可以通过PageTableAdjustment因子、通过WeightAdjustment因子、以及通过SharedMemoryAdjustment因子来调整原始评分。PageTableAdjustment因子是基于一个或者多个页表(硬件和虚拟两者)的接近性的乘数。例如,PageTableAdjustment可以是小于1的因子,其表示由于硬件页表或者虚拟页表没有处于理想的位置而导致的评分上的减少。WeightAdjustment因子是基于作为计算机系统中所有的资源的百分比的逻辑分区资源的乘数。SharedMemoryAdjustment因子是基于于其他逻辑分区共享的存储器的乘数。图9中的表达式允许计算计算机系统的存储器亲和性评分。注意,图9中的表达式可以被用于对当前存储器亲和性进行评分,也可以用于对潜在存储器亲和性进行评分,以便确定资源的重新分配是否保证改善计算机系统的存储器亲和性。
根据分布类型而不同地计算图9的表达式中的原始评分。当分布类型是包含在初级域中(CiP)时,选择以下初级域:该初级域具有被分配给分区的处理器或存储器的最大比分数,但该最大百分数是一个域中的两个百分数的最小值。如果初级域0具有60%的处理器和20%的存储器,并且初级域1具有40%的处理器和80%的存储器,那么选择域1来作为从其进行评分的开始的域,因为其具有域中的最小值中的较大的百分数(40%与20%相比)。最初的原始评分等于被用于挑选上述开始的域的百分比值,因此,在该示例中为40。然后通过从100中减去该百分比值来计算剩余的百分数,因此,100-40=60。这是用于调整剩余资源分配的乘法因子。检查所有的剩余初级域,使用表达式(100-|proc%-mem%|)*(proc%+mem%)/2确定每个初级域的平衡百分数。然后对于每个初级域,将平衡百分数乘以调整因子,然后除以100。在这种情况下,添加到评分中的每个域的平衡百分数被乘以60%,以作为在开始的初级域之外的处罚(penalty)来减小评分的加法。因此,当资源被分配到单个初级域外部时,上述调整提供了对于CiP分布类型的一致的处罚。然后,初始的原始评分被添加到总的调整的值,产生用于该逻辑分区的CiP分布类型的原始得分。
当分布类型是包含在二级域中(CiS)时,选择具有被分配给分区的组合的处理器和存储器的最大总百分数的资源的二级域。这是开始域。初始的原始评分等于被用于挑选上述开始二级域的百分比值。然后计算出剩余的百分比,100减去开始二级域的百分比值。检查所有剩余的二级域,并且使用表达式(100-|proc%-mem%|)*(proc%+mem%)/2来确定每个二级域的平衡百分数。将每个平衡百分数乘以上面计算的剩余百分比值,然后除以100。剩余百分数与对于CiP的处罚相似,但是考虑二级域而不是初级域。
当分布类型是跨二级域分布(SaS)时,检查所有的二级域,并且使用表达式(100-|proc%-mem%|)/100*(proc%+mem%)/2来为每个二级域确定平衡百分数。对于SaS分布类型没有处罚,唯一有关系的事情是在二级域之间平衡。
当分布类型是其适合的任何地点(WiF)时,检查所有的初级域,并且使用表达式(100-|proc%-mem%|)/100*(proc%+mem%)/2来确定用于每个初级域的平衡百分数。对于WiF分布类型没有处罚,唯一重有关系的事情是在初级域之间平衡。
当分布类型是跨集群分布(SaC)时,确定总的逻辑分区资源分配中每个系统具有的资源的百分数。这些百分数是对于分区,每个系统将具有的各个评分的权重乘数。最大的百分数是相对最大的系统原始评分而使用的乘数,并且剩余百分数(100-最大百分数)是用于剩余的系统中的评分的剩余百分数“处罚”乘数。在每个系统上单个地计算原始评分,其在不同系统上可以是“CiP”、“CiS”、“SaS”或“WiF”的任何组合。将在每个系统上计算的原始评分与其计算的权重百分数相乘,然后将所有的原始评分相加,以得到跨系统的总的逻辑分区评分。
页表调整也可以取决于分布类型。回想页表调整是可以在图5中的步骤520中执行的调整的种类中的一种。以上计算的每一个原始评分取决于硬件页表位置以及,如果需要的话,基于虚拟页表位置来得到可能的否定调整。这是在得到有关存储器亲和性的一致有意义的评分中的另一个重要的因子。专用的存储器分区通常仅仅具有硬件页表(硬件写入的页表)以及固件或者操作系统。共享的存储器分区通常具有硬件页表和虚拟页表这两者。虚拟页表允许另一个等级的间接性,从而固件可以虚拟地动作好像硬件将在分区之间管理存储器的共享的属性。一种可能的实施方式是首先确定逻辑分区类型,专用的还是共享的。然后如果是专用的并且硬件页表的位置不是最佳的,则将原始评分向下调整10%。如果分区是共享的,则取决于硬件页表与虚拟页表相对于性能的重要性,可以向下调整原始评分,对于非最优的硬件页表布置为3%,和/或对于非最优的虚拟页表布置为7%。页表是否驻留在分区将处理器分配到的相同的初级域或者二级域上对于最佳性能而言通常是重要的。
对于包含在初级域中(CiP)的分布类型,确定与被用于原始评分的开始域具有相同特性的初级域,即,具有被分配给分区的处理器或存储器的最大比分数、但该最大百分数是一个域中的两个百分数的最小值的域。对于包含在二级域中(CiS)的分布类型,确定与被用于原始评分的开始域具有相同特性的二级域,即具有被分配给分区的相同的处理器或存储器的最大百分数的域。对于跨二级域分布(SaS)的分布类型,利用被分配给分区的处理器确定二级域。对于其适合的任何地点(WiF)的分布类型,利用被分配给分区的处理器来确定初级域。在上述情况的每一个中,如果页表驻留在相同的所选择的域中,则不存在评分处罚。如果其驻留在其他的域中,但是该域具有被分配给分区的处理器,则可能应用较小的处罚。如果其驻留在逻辑分区所使用地任何域的外部,则可以应用最大的处罚。
如上所述,图5中的步骤520可以包括权重调整。权重调整可以包括,例如,根据在逻辑分区中使用的资源的数量除以计算机系统中的资源的总数量来减少存储器亲和性的因子。首先,确定包括哪个分区。非功能分区,即不具有处理器和/或存储器的分区可以被排除。可能存在正当的理由将非功能分区作为不应当介入系统评分的资源布置保持器或者临时外壳(shell)。非功能分区将具有为0的分区评分。接下来,通过向每个评分赋予作为系统评分的百分数的乘法因子来加权每个包括的分区评分。在一个实施方式中,计算每个分区使用的整体的资源百分数,并且将该百分数用作为乘法因子。例如,乘法因子将合计为100%。或者,在分配权重时使用分区优先级顺序,或者可能是资源百分数和优先级的组合。然后,将分区评分与其权重/百分数相乘,并且将其添加到系统评分中。
图10示出了方法1000,该方法用于在一个或者多个逻辑分区中动态调整资源分配以改善计算机系统中的存储器亲和性,其将改善计算机系统的性能。确定所选择的逻辑分区的当前存储器亲和性评分(步骤1010)。当存在可用于改善存储器亲和性的一个或者多个资源时(步骤1020=是),确定所选择的逻辑分区的潜在存储器亲和性评分(步骤1030)。当所选择的逻辑分区的潜在存储器亲和性大于当前存储器亲和性时(步骤1040=是),动态调整所选择的逻辑分区中的资源的分配,以实现所选择的逻辑分区的改善的存储器亲和性(步骤1050)。然后,方法1000完成。
参考图11,方法1100显示了在更具体的示例中执行的步骤,其中,每个逻辑分区包括存储器亲和性代理(例如,图1中的126A),其请求通过存储器亲和性计算机构123来计算存储器亲和性评分。对于该示例,我们假设逻辑分区中的存储器亲和性代理常常(假定每五分钟)醒来,以检查其存储器亲和性是否可以被改善。因此,当所选择的逻辑分区中的存储器亲和性代理醒来时,图11的方法1100开始(步骤1110)。用于逻辑分区(在图11中被称为LP)的存储器亲和性代理(在图11中被称为MA代理)询问动态分区管理器以计算所选择的逻辑分区的当前存储器亲和性评分(步骤1120)。如果没有可用于改善所选择的逻辑分区的存储器亲和性的资源(步骤1130=否),则方法1100完成。如果存在可用于改善逻辑分区的存储器亲和性的一个或多个资源(步骤1130=是),则所选择的逻辑分区确定建议的资源的重新分配,力图改善逻辑分区的存储器亲和性(步骤1140)。基于在步骤1140中确定的建议的重新分配,所选择的逻辑分区中的存储器亲和性代理向动态分区管理器询问潜在存储器亲和性评分(步骤1150)。如果潜在存储器亲和性评分不大于当前存储器亲和性评分(步骤1160=否),则方法1100完成。如果潜在存储器亲和性评分大于当前存储器亲和性评分(步骤1160=是),则逻辑分区请求动态分区管理器执行建议的资源的重新分配(步骤1170)。注意,术语“资源的重新分配”广义地使用,以表示向所选择的逻辑分区的资源分配中的任何变化。例如,让我们假设在初始的程序加载之后,未分配的存储器块可用,并且所选择的逻辑分区发现其可以通过将未分配的存储器块分配给其自己来改善其存储器亲和性。在所选择的逻辑分区中的总的资源没有发生变化的意义上来说,存储器的该未分配块向所选择的逻辑分区的分配是“重新分配”。
除了确定各个逻辑分区的存储器亲和性之外,可以确定包括所有的逻辑分区的计算机系统的存储器亲和性评分。参考图12,通过确定计算机系统的当前存储器亲和性评分开始方法1200(步骤1210)。基于计算机系统中的某些建议的资源的重新分配来确定计算机系统的潜在存储器亲和性评分(步骤1220)。当潜在存储器亲和性大于当前存储器亲和性时(步骤1230=是),则计算机系统中的一个或者多个资源的分配被动态地调整,以改善计算机系统的存储器亲和性(步骤1240)。然后,方法1200完成。
现在提供详细的示例来说明上面呈现的概念。首先,我们假设图4中的分配是资源在四个逻辑分区之间的当前分配。LP ID1是分布类型CiP,并且具有少于理想的资源分配,因为1个处理器被分配到初级域1,并且剩余的1个处理器被分配到初级域0。如下计算LP ID1的当前未调整的存储器亲和性评分。具有两个种类的资源的最小值中的最大百分数的初级域是初级域0,因为域0具有50%的处理器和100%的存储器,而域1具有50%的处理器和0%的存储器。因此,选择域0(50%>0%)。接下来,所选择的域中的处理器或者存储器的百分数的最小值是50%,所以初始的原始评分为50。剩余的百分数“处罚”是100-50=50(或者0.5)。通过使用(100-|proc%-mem%|)*(proc%+mem%)/2,对于初级域1计算评分,以添加到50的初始的原始评分上。域1具有一个处理器并且不具有存储器,因此最终结果将为0。现在应用剩余的“处罚”百分数,0*0.50=导致0。将50的初始评分与为0的剩余的初级域评分相加,当然导致为50的针对LP ID1的未调整的亲和性评分。
LP ID2是分布类型CiS,并且具有少于理想的资源分配,因为资源分布到二级域0和二级域1中。如下计算当前的未调整的存储器亲和性评分。具有最大的资源百分数的二级域是域0((60%的处理器+60%的存储器)/2=总共60%)。初始的原始评分是60。剩余的百分数“处罚”是100-60=40(或者0.4)。通过使用(100-(40-40))*(40+40)/2来计算二级域1的评分,以添加到60的初始的原始评分,所述(100-(40-40))*(40+40)/2产生(100-0)*(80)/2,其产生100*40,除以100以消除乘法因子而得到a%,结果是40%(或者0.4)。现在应用剩余的“处罚”百分数,40*.40导致16。将60的初始评分与16的剩余二级域评分相加,则LP ID2的未调整的存储器亲和性评分的结果为76。
LP ID3是分布类型SaS。对于每个二级域,使用公式(100-|proc%-mem%|)/100*(proc%+mem%)/2,来计算LP ID3的当前未调整的存储器亲和性评分。对于二级域0,存储器亲和性评分是(100-|18.75-25|)/100*(18.75+25)/2=21。对于二级域1,当前存储器亲和性评分是(100-|25-75|)/100*(25+75)/2=25。对于二级域2,当前存储器亲和性评分是(100-|56.25-0|)/100*(56.25+0)/2=12。对于二级域3,当前存储器亲和性评分是(100-|0-0|)/100*(0+0)/2=0。因此,LP ID3的当前未调整的存储器亲和性评分是四个二级域的存储器亲和性评分的总和,即21+25+12+0=58。
LP ID4是分布类型WiF。对于每个初级域,使用公式(100-|proc%-mem%|)/100*(proc%+mem%)/2计算LP ID3的当前未调整的存储器亲和性评分。对于初级域5,(100-|100-0|)/100*(100+0)/2=0。对于初级域6,(100-|0-100|)/100*(0+100)/2=0。LP ID4的存储器亲和性评分是两个初级域的存储器亲和性评分的总和,即0+0=0。
计算机系统的总的未调整的存储器亲和性评分是所有四个逻辑分区的平均,其是(50+76+58+0)/4=46。当然,如上相对于图5中的步骤520所述,随后可以利用以下的任何一个或者全部来调整未调整的存储器亲和性评分:
页表调整、权重调整、以及共享存储器调整。
图13中的表示出了对于四个逻辑分区的资源的潜在重新分配。LPID1是分布类型CiP。如下计算对于图13中所示的分配、LP ID1的潜在的未调整的存储器亲和性评分。具有两个类型的资源的最小值的最大百分数的初级域是域0,因为域0具有100%的处理器和100%的存储器,而域1具有0%的处理器和0%的存储器。因此选择域0(100%>0%)。接下来,在所选择的域中的处理器或者存储器的百分数中的最小值是100%,所以初始的原始评分是100。因为所有的处理器和存储器都包含在相同的初级域中,即域0中,所以不存在“处罚”。因此,LP ID1具有为100的完美的未调整的潜在存储器亲和性评分。
LP ID2是分布类型CiS。如下计算对于图13中所示的分配、LP ID2的潜在的未调整的存储器亲和性评分。具有最大的资源百分数的二级域是域2((100%的处理器+100%的存储器)/2=总共100%)。初始的原始评分为100。因为对于LP ID2的所有的资源都包含在单个二级域内,所以不存在“处罚”。因此,LP ID2具有为100的完美的未调整的潜在存储器亲和性评分。
LP ID3是分布类型SaS。对于每个二级域,使用公式(100-|proc%-mem%|)/100*(proc%+mem%)/2来计算对于图13中所示的分配、LP ID3的潜在的未调整的存储器亲和性评分。对于二级域0,存储器亲和性评分是(100-|25-25|)/100*(25+25)/2=25。对于二级域1,当前存储器亲和性评分是(100-|25-25|)/100*(25+25)/2=25。对于二级域2,当前存储器亲和性评分是(100-|25-25|)/100*(25+25)/2=25。对于二级域3,当前存储器亲和性评分是(100-|25-25|)/100*(25+25)/2=25。因此,LP ID3的当前未调整的存储器亲和性评分是四个二级域的存储器亲和性评分的总和,即25+25+25+25=100。因此,LP ID3具有为100的完美的未调整的潜在存储器亲和性评分。
LP ID4是分布类型WiF。对于每个初级域,使用公式(100-|proc%-mem%|)/100*(proc%+mem%)/2来计算对于图13中所示的分配、LP ID4的潜在的未调整的存储器亲和性评分。对于初级域0,(100-|50-50|)/100*(50+50)/2=50。对于初级域4,(100-|50-50|)/100*(50+50)/2=50。LP ID4的存储器亲和性评分是两个初级域的存储器亲和性评分的总和,即50+50=100。
基于图13中所示的潜在分配的计算机系统的总的未调整的潜在存储器亲和性评分是所有四个逻辑分区的平均,其是(100+100+100+100)/4=100。这示出在进行任何页表调整、权重调整、或者共享存储器调整之前,图13中的建议的重新分配导致完美的存储器亲和性。这些评分可以如上所述地进行调整,并且当潜在存储器亲和性评分大于当前存储器亲和性评分时,动态分区管理器可以动态地重新分配资源而不需要来自任何人类用户的输入,以实现改善的存储器亲和性评分。
一个逻辑分区的存储器亲和性评分可以以对于不同逻辑分区的较差的亲和性评分为代价而被改善。例如,第一逻辑分区可以具有高优先级,并且潜在的资源的重新分配被识别为将以具有较低的优先级的第二逻辑分区的存储器亲和性的5%的降低为代价来将第一逻辑分区的存储器亲和性增大20%。动态分区管理器可以包括任何合适的启发式方法,以做出关于资源重新分配的适当的折衷和决定。动态分区管理器还可以考虑各个的逻辑分区的存储器亲和性,以及整个计算机系统的存储器亲和性。再次,可以使用适当的启发式方法,例如,其可以拒绝用不同逻辑分区被认为是牺牲太大的代价来改善一个逻辑分区的存储器亲和性的所建议的重新分配,而接受用不同逻辑分区的被认为是可接受的代价来改善一个逻辑分区的存储器亲和性的所建议的重新分配。用于动态分区管理器以确定何时执行动态资源分配以便改善逻辑分区的计算机系统中的一个或者多个逻辑分区的存储器亲和性的任何适当方法均落在此处的公开和权利要求的范围内,不论是当前已知的或者是将来研发的。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
此处的权利要求和公开提供了计算当前存储器亲和性和潜在存储器亲和性的方式,以帮助确定节点之间的资源的重新分配是否可以改善逻辑分区的存储器亲和性或者计算机系统的存储器亲和性。如果可以,则执行资源的重新分配,使得逻辑分区或者计算机系统的存储器亲和性得以改善。根据包括多个初级域和多个二级域的硬件域层次结构相对于资源的物理布局计算存储器亲和性。
本领域的技术人员将理解,在权利要求的范围内可以存在很多种变化。因此,虽然在上文中具体地示出和描述了本发明,但是本领域的技术人员应该理解,在不脱离权利要求的精神和范围的情况下,在本发明中可以进行形式和细节上的这些和其他的变化。

Claims (17)

1.一种计算机系统,包括:
在多个节点上定义的多个逻辑分区;以及
动态分区管理器,其管理该多个节点上的多个资源向多个逻辑分区的分配,所述动态分区管理器包括存储器亲和性计算机构,其基于计算机系统中的硬件域层次结构来计算所选择的逻辑分区的存储器亲和性,所述硬件域层次结构包括至少一个初级域以及至少一个二级域,其中,所述存储器亲和性计算机构通过基于与硬件域层次结构相关的分布类型针对每个逻辑分区计算原始评分、将原始评分乘以至少一个调整因子来生成调整的评分、以及将多个逻辑分区的调整的评分相加,来计算计算机系统的存储器亲和性。
2.根据权利要求1所述的计算机系统,其中,所述至少一个调整因子包括:
基于至少一个页表相对于所选择的逻辑分区中的其他资源的位置的页表调整因子;以及
基于所选择的逻辑分区中的资源与计算机系统中的所有资源相比较的百分数的权重调整因子。
3.根据权利要求2所述的计算机系统,其中,所述至少一个调整因子还包括:
当在所选择的逻辑分区中的存储器与至少一个其他逻辑分区共享时的共享存储器分区因子。
4.根据权利要求1所述的计算机系统,还包括:
在所选择的逻辑分区中的存储器亲和性代理,所述存储器亲和性代理基于所选择的逻辑分区中的资源的当前分配从所述存储器亲和性计算机构确定所选择的逻辑分区的当前存储器亲和性,所述存储器亲和性代理基于所选择的逻辑分区中的资源的建议的重新分配从存储器亲和性计算机构中确定所选择的逻辑分区的潜在存储器亲和性,其中,当潜在存储器亲和性大于当前存储器亲和性时,所述动态分区管理器重新分配所选择的逻辑分区中的资源。
5.根据权利要求1所述的计算机系统,其中,所述至少一个初级域的每一个包括集成电路,并且所述至少一个二级域的每一个包括节点。
6.根据权利要求1所述的计算机系统,其中,所述分布类型包括:
包含在初级域中;
包含在二级域中;
跨二级域分布;
跨初级域和二级域其适合的任何地点;以及
跨集群分布。
7.根据权利要求1所述的计算机系统,其中,所述存储器亲和性机构使用下面的等式计算计算机系统的存储器亲和性:
存储器亲和性=
Σ 1 n ( RawScore _ f ( SpreadType ) ) * ( PageTableAdjustment ) * ( WeightAdjustment ) * ( SharedMemoryAdjustment )
其中,n=系统集群中的逻辑分区的数量;
SpreadType是基于硬件域层次结构的种类;
PageTableAdjustment是基于页表的接近性的乘数;
WeightAdjustment是基于作为计算机系统中的所有资源的百分数的逻辑分区资源的乘数;以及
SharedMemoryAdjustment是基于与其他逻辑分区共享的存储器的乘数。
8.一种由至少一个处理器执行的计算机实施的方法,所述方法用于基于计算机系统中的硬件域层次结构计算多个逻辑分区的存储器亲和性,所述方法包括以下步骤:
(A)选择多个逻辑分区中的一个;
(B)通过执行以下步骤,基于计算机系统中的硬件域层次结构来计算所选择的逻辑分区的存储器亲和性,其中,所述硬件域层次结构包括至少一个初级域和至少一个二级域:
(C)基于与所述硬件域层次结构相关的分布类型来计算针对所选择的逻辑分区的原始评分;
(D)将所述原始评分乘以至少一个调整因子,以产生调整的评分;
(E)对于多个逻辑分区中的每一个,重复步骤(A)至(D);以及
(F)将针对多个逻辑分区的调整的评分相加。
9.根据权利要求8所述的方法,其中,所述至少一个调整因子包括:
基于至少一个页表相对于所选择的逻辑分区中的其他资源的位置的页表调整因子;以及
基于所选择的逻辑分区中的资源与计算机系统中的所有资源相比较的百分数的权重调整因子。
10.根据权利要求9所述的方法,其中,所述至少一个调整因子还包括:
当在所选择的逻辑分区中的存储器与至少一个其他逻辑分区共享时的共享存储器分区因子。
11.根据权利要求8所述的方法,还包括步骤:
基于在所选择的逻辑分区中的资源的当前分配从存储器亲和性计算机构确定所选择的逻辑分区的当前存储器亲和性;
基于在所选择的逻辑分区中的资源的建议的重新分配从存储器亲和性计算机构确定用于所选择的逻辑分区的潜在存储器亲和性;以及
当潜在存储器亲和性大于当前存储器亲和性时,重新分配所选择的逻辑分区中的资源。
12.根据权利要求8所述的方法,其中,所述至少一个初级域的每一个包括集成电路,并且所述至少一个二级域的每一个包括节点。
13.根据权利要求8所述的方法,其中,所述分布类型包括:
包含在初级域中;
包含在二级域中;
跨二级域分布;
跨初级域和二级域其适合的任何地点;以及
跨集群分布。
14.根据权利要求8所述的方法,其中,所述存储器亲和性机构使用下面的等式计算计算机系统的存储器亲和性:
存储器亲和性=
Σ 1 n ( RawScore _ f ( SpreadType ) ) * ( PageTableAdjustment ) * ( WeightAdjustment ) * ( SharedMemoryAdjustment )
其中,n=系统集群中的逻辑分区的数量;
SpreadType是基于硬件域层次结构的种类;
PageTableAdjustment是基于页表的接近性的乘数;
WeightAdjustment是基于作为计算机系统中的所有资源的百分数的逻辑分区资源的乘数;以及
SharedMemoryAdjustment是基于与其他逻辑分区共享的存储器的乘数。
15.一种由至少一个处理器执行的计算机实施的方法,所述方法用于计算包括多个逻辑分区的计算机系统的存储器亲和性,所述方法包括以下步骤:
使用下面的等式计算存储器亲和性:
存储器亲和性=
Σ 1 n ( RawScore _ f ( SpreadType ) ) * ( PageTableAdjustment ) * ( WeightAdjustment ) * ( SharedMemoryAdjustment )
其中,n=系统集群中的逻辑分区的数量;
SpreadType是基于硬件域层次结构的种类;
PageTableAdjustment是基于页表的接近性的乘数;
WeightAdjustment是基于作为计算机系统中的所有资源的百分数的逻辑分区资源的乘数;以及
SharedMemoryAdjustment是基于与其他逻辑分区共享的存储器的乘数。
16.根据权利要求15所述的方法,还包括步骤:
基于计算机系统中的资源的当前分配确定计算机系统的当前存储器亲和性;
基于计算机系统中的资源的建议的重新分配确定计算机系统的潜在存储器亲和性;以及
当潜在存储器亲和性大于当前存储器亲和性时,重新分配计算机系统中的资源。
17.根据权利要求15所述的方法,其中,所述分布类型包括:
包含在初级域中;
包含在二级域中;
跨二级域分布;
跨初级域和二级域其适合的任何地点;以及
跨集群分布。
CN201310571745.9A 2012-11-13 2013-11-13 动态改善逻辑分区的存储器亲和性 Active CN103810047B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/675,701 2012-11-13
US13/675,701 US9009421B2 (en) 2012-11-13 2012-11-13 Dynamically improving memory affinity of logical partitions

Publications (2)

Publication Number Publication Date
CN103810047A true CN103810047A (zh) 2014-05-21
CN103810047B CN103810047B (zh) 2018-01-05

Family

ID=50682876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310571745.9A Active CN103810047B (zh) 2012-11-13 2013-11-13 动态改善逻辑分区的存储器亲和性

Country Status (3)

Country Link
US (2) US9009421B2 (zh)
CN (1) CN103810047B (zh)
TW (1) TW201423401A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016070375A1 (zh) * 2014-11-06 2016-05-12 华为技术有限公司 一种分布式存储复制系统和方法
CN105843683A (zh) * 2015-02-03 2016-08-10 国际商业机器公司 用于动态优化平台资源分配的方法、系统和设备
CN106528453A (zh) * 2015-09-10 2017-03-22 中国航空工业第六八研究所 基于复合尺度页的页表分区管理装置和方法
CN109918021A (zh) * 2014-11-05 2019-06-21 华为技术有限公司 数据处理方法和装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9052932B2 (en) 2012-12-17 2015-06-09 International Business Machines Corporation Hybrid virtual machine configuration management
US10126950B2 (en) * 2014-12-22 2018-11-13 Intel Corporation Allocating and configuring persistent memory
US9912741B2 (en) 2015-01-20 2018-03-06 International Business Machines Corporation Optimization of computer system logical partition migrations in a multiple computer system environment
US9923960B2 (en) * 2015-08-18 2018-03-20 Salesforce.Com, Inc. Partition balancing in an on-demand services environment
US9928097B1 (en) * 2015-09-14 2018-03-27 VCE IP Holding Company LLC Methods, systems, and computer readable mediums for defining and updating a virtual computing system comprising distributed resource components
US10277911B2 (en) * 2016-01-22 2019-04-30 Wowza Media Systems, LLC Video processing workload management
US10223282B2 (en) 2017-05-23 2019-03-05 International Business Machines Corporation Memory affinity management
WO2019232725A1 (en) * 2018-06-06 2019-12-12 Huawei Technologies Co., Ltd. System and method for controlling management operations and shared memory space for multi-tenant cache service in cloud computing

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6912625B2 (en) 2003-01-09 2005-06-28 International Business Machines Corporation Method, system, and computer program product for creating and managing memory affinity in logically partitioned data processing systems
US20060253682A1 (en) * 2005-05-05 2006-11-09 International Business Machines Corporation Managing computer memory in a computing environment with dynamic logical partitioning
US20070073993A1 (en) * 2005-09-29 2007-03-29 International Business Machines Corporation Memory allocation in a multi-node computer
US7673114B2 (en) * 2006-01-19 2010-03-02 International Business Machines Corporation Dynamically improving memory affinity of logical partitions
US7685376B2 (en) * 2006-05-03 2010-03-23 Intel Corporation Method to support heterogeneous memories
US8020165B2 (en) 2006-08-28 2011-09-13 Dell Products L.P. Dynamic affinity mapping to reduce usage of less reliable resources
US8224955B2 (en) 2009-05-07 2012-07-17 International Business Machines Corporation Ensuring affinity at all affinity domains by folding at each affinity level possible for a partition spanning multiple nodes
US9361624B2 (en) * 2011-03-23 2016-06-07 Ipar, Llc Method and system for predicting association item affinities using second order user item associations
US20130218869A1 (en) * 2012-02-21 2013-08-22 Salesforce.Com, Inc. Method and system for providing information from a customer relationship management system

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918021A (zh) * 2014-11-05 2019-06-21 华为技术有限公司 数据处理方法和装置
WO2016070375A1 (zh) * 2014-11-06 2016-05-12 华为技术有限公司 一种分布式存储复制系统和方法
CN106062717A (zh) * 2014-11-06 2016-10-26 华为技术有限公司 一种分布式存储复制系统和方法
CN106062717B (zh) * 2014-11-06 2019-05-03 华为技术有限公司 一种分布式存储复制系统和方法
US10713134B2 (en) 2014-11-06 2020-07-14 Huawei Technologies Co., Ltd. Distributed storage and replication system and method
CN105843683A (zh) * 2015-02-03 2016-08-10 国际商业机器公司 用于动态优化平台资源分配的方法、系统和设备
US10222985B2 (en) 2015-02-03 2019-03-05 International Business Machines Corporation Autonomous dynamic optimization of platform resources
CN105843683B (zh) * 2015-02-03 2019-04-26 国际商业机器公司 用于动态优化平台资源分配的方法、系统和设备
CN106528453A (zh) * 2015-09-10 2017-03-22 中国航空工业第六八研究所 基于复合尺度页的页表分区管理装置和方法

Also Published As

Publication number Publication date
CN103810047B (zh) 2018-01-05
US20140136800A1 (en) 2014-05-15
TW201423401A (zh) 2014-06-16
US9009421B2 (en) 2015-04-14
US20140136801A1 (en) 2014-05-15
US9043563B2 (en) 2015-05-26

Similar Documents

Publication Publication Date Title
CN103810047A (zh) 动态改善逻辑分区的存储器亲和性
CN102929707B (zh) 并行任务动态分配方法
US9483288B2 (en) Method and system for running a virtual appliance
CN103946831B (zh) 用于模板的成本感知的选择以供应共享资源的系统和方法
CN103336722B (zh) 一种虚拟机cpu资源监控和动态分配方法
CN107239329A (zh) 云环境下统一资源调度方法及系统
CN110325968A (zh) 分布式计算系统中的系统升级管理
US20160125115A1 (en) Generating an electromagnetic parameterized cell for an integrated circuit design
CN109191202A (zh) 资源分配方法、装置、电子设备及计算机可读存储介质
CN103856548A (zh) 动态资源调度方法和动态资源调度器
CN108241531A (zh) 一种在集群中为虚拟机分配资源的方法和装置
Shi et al. TraPL: Track planning of local congestion for global routing
Van Tendeloo et al. Activity in pythonpdevs
CN109471725A (zh) 资源分配方法、装置和服务器
JP7342952B2 (ja) スケジューリング制御装置、スケジューリング制御方法、及びプログラム
CN104268243A (zh) 一种位置数据处理方法及装置
CN104657216B (zh) 一种资源池的资源分配方法及装置
CN103279387A (zh) 对相关资源分区重定位
CN105100117B (zh) 一种用于访问组合服务的方法及装置
CN110689425A (zh) 基于收益进行额度定价的方法、装置和电子设备
CN114625500A (zh) 云环境下拓扑感知的微服务应用调度的方法及应用
CN108306912A (zh) 虚拟网络功能管理方法及其装置、网络功能虚拟化系统
CN107346350A (zh) 集成电路版图数据处理任务的分配方法、装置和集群系统
US20060015841A1 (en) Control on demand data center service configurations
CN107562520A (zh) 扩容虚拟机的内存的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant