CN103649938B - 在多处理计算机系统中管理工作负荷 - Google Patents

在多处理计算机系统中管理工作负荷 Download PDF

Info

Publication number
CN103649938B
CN103649938B CN201280034965.1A CN201280034965A CN103649938B CN 103649938 B CN103649938 B CN 103649938B CN 201280034965 A CN201280034965 A CN 201280034965A CN 103649938 B CN103649938 B CN 103649938B
Authority
CN
China
Prior art keywords
substantial connection
measurement
working load
territory
performance measurement
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.)
Active
Application number
CN201280034965.1A
Other languages
English (en)
Other versions
CN103649938A (zh
Inventor
G·M·N·丹科尔
A·B·布朗
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 CN103649938A publication Critical patent/CN103649938A/zh
Application granted granted Critical
Publication of CN103649938B publication Critical patent/CN103649938B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • G06F9/528Mutual exclusion algorithms by using speculative mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5012Processor sets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/507Control mechanisms for virtual memory, cache or TLB using speculative control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

公开了一种自动系统优化器,所述自动系统优化器配置为在多处理计算机系统中优化工作负荷的处理。

Description

在多处理计算机系统中管理工作负荷
技术领域
本发明涉及在多处理计算机系统中管理工作负荷。
背景技术
在多处理器计算机系统中,访问存储器中的数据的处理成本取决于与访问该存储器的处理器相关的存储器的物理单元。与其他线程共享的频繁访问和修改存储器区域的多个线程能够得益于全部在物理上靠近在一起。这降低了获得存在于远程处理器的高速缓存中的高速缓存线路要求的交叉节点业务的量。然而,放置工作负荷以便增加这样的高速缓存密切关系与在整个系统的所有可用资源上均衡工作的更加通常的期望相冲突。而且,将所有工作放置在单个节点上并且本地分配所有存储器将增加高速缓存密切关系,但是,由于对于该节点上的资源的增强的竞争,通常将不会对于所有工作负荷提供良好的性能。
配置一些自动优化系统以便尝试基于诸如密切关系措施、工作负荷大小或者资源竞争来预测工作负荷的最佳放置。这样的预测优化器支持工作负荷的快速放置并且相应地支持快速性能增益。不能够受益的工作负荷不受影响,除非由于对相关联的或者链接的工作负荷的改变的结果而间接地受影响。
然而,由于存在关于域的不同类型、复杂性能特性的工作负荷的许多可能放置,因此由预测优化器执行的分析是复杂的。而且,当进行大的改变时难于预测工作负荷放置的结果或者难于识别其他工作负荷的效果。预测优化器的测试是复杂的并且难于确定系统是鲁棒的。因而预测优化器的充分测试需要是宽泛的以便产生可接受等级的置信度。而且,在每次改变直观推断时,会需要运行大量测试。预测优化器在其优化方面通常是保守的,以便避免使性能降级的可能性。
其他自动优化系统尝试经过搜索或者实验来优化工作负荷的放置。假定具有充分时间和稳定的性能工作负荷,这样的基于搜索的优化器能够获得接近优化的工作负荷放置。基于搜索的优化器是相对简单的系统。然而,基于搜索的优化器由于会要求分析并且随着工作负荷的数量呈指数增加的高数量的可能放置组合而具有高运行时间成本。基于搜索的优化器还会由于如下而是破坏性的:只要在实验中,则其他工作负荷以及进行实验的工作负荷就会受到不利影响。
发明内容
本发明的实施方式提供一种用于在多处理计算机系统中管理工作负荷的方法,所述方法包括步骤:
针对多个处理器核限定密切关系域的集合,每一个所述密切关系域包括所述处理器核的集合;
限定密切关系测量,所述密切关系测量配置为指示给定工作负荷应当在何时被移动到包括较少处理器核的较小的密切关系域;
限定性能测量,所述性能测量配置为指示给定工作负荷的性能;
根据所述密切关系测量和所述性能测量来测量给定工作负荷;
如果所述密切关系测量指示给定工作负荷应当被移动到较小的密切关系域,则将所述工作负荷移动到较小的密切关系域;或者
如果所述性能测量指示性能降低,则将所述工作负荷移动到较大的密切关系域。
所述方法可以包括进一步的步骤:如果来自所述密切关系测量和所述性能测量的所述指示相互冲突,则关于预定的协议来解决所述冲突。所述预定的协议可以包括遵循来自所述性能测量的指示以便将所述工作负荷移动到较大的密切关系域。所述密切关系域的集合可以包括在给定的密切关系域中根据处理器核的数量而排序的密切关系域的等级。所述方法可以包括进一步的步骤:根据来自所述密切关系测量或者性能测量的所述指示来指示工作负荷放置方式。所述密切关系测量和所述性能测量可以包括互相排斥的测量。所述密切关系测量可以包括对给定工作负荷等待数据所花费的处理时间占总处理时间的比例的测量。所述性能测量可以包括存储指令对于给定工作负荷的执行速率的测量。可以周期性地执行根据所述密切关系测量和所述性能测量的给定工作负荷的所述测量。给定工作负荷在域之间的移动可以被减幅。所述方法可以通过操作系统守护程序来执行。
另一实施方式提供一种用于在多处理计算机系统中管理工作负荷的装置,所述装置操作为:
针对多个处理器核限定密切关系域的集合,每一个所述密切关系域包括所述处理器核的集合;
限定密切关系测量,所述密切关系测量配置为指示给定工作负荷应当在何时被移动到包括较少处理器核的较小的密切关系域;
限定性能测量,所述性能测量配置为指示给定工作负荷的性能;
根据所述密切关系测量和所述性能测量来测量给定工作负荷;
如果所述密切关系测量指示给定工作负荷应当被移动到较小的密切关系域,则将所述工作负荷移动到较小的密切关系域;或者
如果所述性能测量指示性能降低,则将所述工作负荷移动到较大的密切关系域。
进一步实施方式提供一种存储在计算机可读介质上并且可加载到计算机的内部存储器中的计算机程序,包括当在计算机上运行所述程序时配置用于执行用于管理多处理计算机系统中的工作负荷的方法的软件代码部分,所述方法包括步骤:
针对多个处理器核限定密切关系域的集合,每一个所述密切关系域包括所述处理器核的集合;
限定密切关系测量,所述密切关系测量配置为指示给定工作负荷应当在何时被移动到包括较少处理器核的较小的密切关系域;
限定性能测量,所述性能测量配置为指示给定工作负荷的性能;
根据所述密切关系测量和所述性能测量来测量给定工作负荷;
如果所述密切关系测量指示给定工作负荷应当被移动到较小的密切关系域,则将所述工作负荷移动到较小的密切关系域;或者
如果所述性能测量指示性能降低,则将所述工作负荷移动到较大的密切关系域。
附图说明
现在将参照附图仅通过示例的方式来描述本发明实施方式,在附图中:
图1是包括自动系统优化计划(ASO)的计算机的示意性示出;
图2是在图1的计算机中的ASO的部件的示意性示出;
图3a是示出对于图2的ASO的度量数据规范的表;
图3b是示出对于图2的ASO的度量限定的表;以及
图4到图7是示出由图2的ASO执行的处理的流程图。
具体实施方式
参照图1,计算机101包括多处理处理器102并且装载有操作系统103,该操作系统103配置为对于以工作负荷104形式的一个或者多个应用程序提供处理平台。处理器102提供有配置为监控处理器102的参数的预定集合的性能监视单元(PMU)105。操作系统(OS)103进一步包括提供活跃系统优化器(ASO)107和OS103的核心功能的内核106。在当前实施方式中,ASO107是用户空间守护程序,并且配置为从PMU105输入选择的参数,并且从内核106输入内核统计108。ASO107配置基于以输入的PMU105参数和内核统计108来优化每一个被监控的工作负荷104的性能,如下面进一步详细描述的。将对于ASO107的输入PMU105参数和内核统计108初始设置为缺省值,在OS103启动时可以由系统管理员修改该缺省值。
参照图2,在当前实施方式中,ASO107包括度量收集器模块201、ASO数据和度量存储202、预测器模块203、验证器模块204、仲裁器模块205、工作负荷放置管理器模块206和一组密切关系域207。密切关系域207是对于处理器102限定的处理器核的预定的集合或者分组。密切关系域可以包括从单个处理器核到可用的所有处理器核的任何数量的核。在当前实施方式中,每一个密切关系域207包括基于处理器核的各自数量的等级。在当前实施方式中,处理器102包括两个芯片,每个芯片分别提供八个核产生总共十六个处理器核。按照下面将处理器102划分为五个密切关系域:
十六个第五级域,每一个域包括各自的单个核;
八个第四级域,每一个域包括两个核;
四个第三级域,每一个域包括四个核;
两个插槽级域,每一个域包括八个核;以及
一个书籍级(book-level)域,包括十六个核。
度量收集器模块201配置为以性能数据的形式从PMU105收集数据的预定集合,并且从内核106收集内核统计108。
将收集的数据存储在ASO数据和度量存储202中。对于正在被监控的每一个工作负荷104收集数据。在当前实施方式中,参照图3a,收集下面的内核统计108:
等待每指令数据花费的时钟周期(CCWD);以及
总的每指令时钟周期(CPI)。
从PMU105收集下面的性能数据:
执行的存储指令的速率(ESI/s)。
将每一个数据集合与相关工作负荷104相关地存储在ASO数据记录301中,该相关工作负荷104由唯一的工作负荷标识符(WLID)识别。
参照图3b,ASO进一步包括一组度量302。ASO度量302包括密切关系测量(AM)303,该密切关系测量(AM)303的形式为等待数据以便完成指令花费的处理器时钟周期与时钟周期的总数量之间的比值。AM303与密切关系测量阈值相关联,在当前实施方式中,该密切关系测量阈值为30%。ASO度量进一步包括执行的存储指令的速率(ESI/s)的形式的性能测量(PM)304。PM304与性能阈值305相关联,在当前实施方式中,该性能阈值305包括对于给定工作负荷的由ASO107计算的峰值ESI/s。
预测器模块203配置为对于每一个相关工作负荷周期性地监控密切关系测量(AM)303,并且将AM303与30%的AM阈值进行比较。在当前实施方式中,测量时段为5秒钟。如果对于给定测量时段的AM303落在AM阈值之下,则预测器203配置为不采取进一步动作。然而,如果AM303对于给定测量时段满足或者超出AM阈值,则预测器203配置为向仲裁器模块205发出指令,如果可能,推荐将相关工作负荷分配到密切关系域207中的较小一个。
验证器模块204配置为与预测器模块203并行工作,以便对于每一个相关工作负荷周期性地监控性能测量(PM)304,并且将PM304与PM阈值305进行比较。只要对于给定的测量时段PM304满足或者超出PM阈值305,则验证器204配置为不采取进一步的动作。然而,如果对于给定测量的PM304小于PM阈值305,则验证器204配置为向仲裁器模块205发出指令,推荐将相关工作负荷分配到密切关系域207中的较大一个。对于给定的工作负荷,验证器204配置为将PM阈值计算为峰值ESI/s,并且使用其来用于测量相关的工作负荷104。
仲裁器模块205配置为在每一个数据时段中对从预测器203和验证器204接收的指令进行仲裁。如果仅从预测器203和验证器204之一接收到用于将给定工作负荷分配到较大或者较小密切关系域207的指令,则不存在冲突并且将该指令传送到工作负荷放置管理器模块206。如果从预测器203和验证器204中的每一个接收到将给定工作负荷分配到较大和较小密切关系域207的冲突的指令,则仲裁器205配置为选择用于向工作负荷放置管理器模块206进行转发的合适指令。在当前实施方式中,响应于这样的冲突,仲裁器205配置为总是从验证器204选择指令,将给定工作负荷分配到较大密切关系域207,用于向工作负荷放置管理器模块206转发。
在当前实施方式中,工作负荷放置管理器模块206配置为管理测量时段,并且指示预测器模块203和验证器模块204在每一个测量时段结束时执行它们各自的度量测量。响应于经由仲裁器模块205接收的来自预测器模块203和验证器模块204的推荐,工作负荷放置管理器模块206进一步配置为确定是否可以实现该推荐,并且如果为是,则相应地指示内核106。在一些情况下,工作负荷放置管理器模块206可能不能够实现推荐以便增加或者降低对于给定工作负荷的密切关系域。工作负荷放置管理器模块206进一步配置为对于正在被监控的每一个工作负荷提供减幅因数。提供该减幅因数以便减小给定工作负荷可以改变密切关系域的频率。通常,减幅因数配置为避免给定工作负荷返回到该工作负荷仅在近期从其移动的给定的密切关系域。
在当前实施方式中,当工作负荷放置管理器206将工作负荷放置在较大密切关系域上时,对于给定工作负荷,将减幅因数设置到预定值。在当前实施方式中,该预定值为20。如果对于每一个工作负荷的减幅因数大于零,则在每一个测量时段该减幅因数减小一。只要减幅因数大于零,就不允许工作负荷放置管理器206将工作负荷放置在较小域上,而是可以与减幅因数值无关地放置在较大域上。
因而ASO107配置为与各自的预定阈值相关地、以密切关系测量(AM)和性能测量(PM)的形式,监控选择的工作负荷104相对于预定的度量集合302的性能。对于给定的工作负荷,如果密切关系测量超出密切关系测量阈值,则ASO107指示内核106降低工作负荷在其上运行的密切关系域的尺寸。如果对于给定的工作负荷性能测量不满足性能测量阈值,则ASO107指示内核106增加工作负荷在其上运行的密切关系域的尺寸。
现在将参照图4的流程图进一步描述由度量收集器模块201执行的处理。在步骤401处,响应于ASO107的初始化而发起处理,并且处理移动到步骤402。在步骤402处,根据ASO数据301来识别要被监控的工作负荷104,并且处理移动到步骤403。在步骤403处,根据ASO数据301识别要在其上收集数据的数据源的步骤,并且处理移动到步骤404。在步骤404处,对于每一个相关的工作负荷,在ASO数据301中将CCWD、CCPI和ESI/s记录日志,并且在ASO107的处理时段内,继续这一记录处理。
现在将参照图5的流程图来进一步描述由预测器模块203执行的处理。在步骤501处,响应于ASO107的启动而发起处理,并且然后处理移动到步骤502。在步骤502处,根据ASO度量302来识别要被监控的对于工作负荷的密切关系测量(AM),并且处理移动到步骤503。在步骤503处,对于收集到的ASO数据301,对于每一个被监控的工作负荷104来计算AM,并且处理移动到步骤504。在步骤504处,将计算的AM与AM阈值进行比较,并且处理移动到步骤505。在步骤505处,如果当前计算的AM值超出AM阈值,则处理移动到步骤506。在步骤506处,将向相关工作负荷的处理分配到较小密切关系域的推荐通信到仲裁器模块205,并且处理移动到步骤507。在步骤507处,处理等待来自工作负荷放置管理器模块206的指示下一个数据周期的信号。当接收到这样的信号时,处理返回到步骤503并且如上所述地进行。如果在步骤505处当前计算的AM值没有超出AM阈值,则不向仲裁器模块205通信响应,并且处理移动到步骤507,并且如上所述地进行。
现在将参照图6的流程图来进一步描述由验证器模块204执行的处理。在步骤601处,响应于ASO107的启动而发起处理,并且然后处理移动到步骤602。在步骤602处,根据ASO度量302识别要被监控的对于工作负荷的性能测量(PM),并且处理移动到步骤603。在步骤603处,对于收集到的ASO数据301,对于每一个被监控的工作负荷104来计算PM,并且处理移动到步骤604。在步骤604处,将计算的PM与PM阈值进行比较,并且处理移动到步骤605。在步骤605处,如果当前计算的PM值不匹配或者没有超出PM阈值,则处理移动到步骤606。在步骤606处,将相关的工作负荷的处理分配到较大的密切关系域的推荐通信到仲裁器模块205,并且处理移动到步骤607。在步骤607处,处理等待来自工作负荷放置管理器模块206的指示下一个数据周期的信号。当接收到这样的信号时,处理移动到步骤608以便在返回到步骤603来如上所述进行处理之前,更新PM阈值。如果在步骤605处当前计算的PM值匹配或者超出PM阈值,则不向仲裁器模块205通信响应,并且处理移动到步骤707且如上所述进行处理。
现在将参照图7的流程图来进一步描述由仲裁器模块205和工作负荷放置管理器模块206的组合执行的处理,其中步骤706和711包括仲裁器模块205的功能。在步骤701处,在ASO107启动时发起处理,并且处理移动到步骤702。在步骤702处,识别要被监控的工作负荷104,并且对于每一个被监控的工作负荷来执行随后的处理。然后处理移动到步骤703并且等待逝去预定的数据周期时段,并且然后移动到步骤704。在步骤704处,关于数据周期而向预测器和验证器模块203、204发送信令,并且处理移动到步骤705。在步骤705处,如果从预测器和验证器模块203、204接收到结果,则处理移动到步骤706。在步骤706处,如果在结果之间不存在冲突,则处理移动到步骤707。在步骤707处,检查对于相关工作负荷的减幅因数,以便确定是否允许密切关系域中的任何改变,并且如果允许,则处理移动到步骤708。在步骤708处,通过向内核106发出合适的指令来实现相关指令,并且处理移动到步骤709。在步骤709处,更新相关工作负荷的减幅因数以便反映密切关系域中的改变,并且处理返回到步骤703,并且如上所述进行处理。如果在步骤705处没有从预测器或者验证器模块203、204接收到响应,则处理移动到步骤710,并且在返回到步骤703之前使对于相关工作负荷的减幅因数减量,并且如上所述进行处理。如果在步骤706处接收到冲突的结果,则处理移动到步骤711。在步骤711处,选择来自验证器模块203的结果,并且处理移动到步骤707,并且如上所述进行处理。如果在步骤707处由于给定工作负荷的当前减幅因数而不允许移动该给定工作负荷,则处理移动到步骤710,其中在返回到步骤703以便如上所述进行处理之前使减幅因数减量。
在另一实施方式中,仲裁器模块配置为当解决预测器和验证器模块之间的冲突时考虑其他输入。换句话说,由仲裁器模块提供的解决方案可以基于多个因数。在进一步的实施方式中,可以由单独的模块来提供仲裁器模块和工作负荷放置管理器模块的功能。
在进一步的实施方式中,如果ASO发现由于不适合的环境而不能够优化性能,则该ASO可以配置为进入休眠模式,并且仅当环境指示ASO能够提供性能改善时才唤醒。
在另一实施方式中,为了使系统对于小的性能变换不太敏感,在预定数量的测量时段上执行AM或者PM的平均。如果在预定数量的连续时段内平均的AM满足或者超出AM阈值,则由预测器推荐较小的密切关系域。相反,如果在该预定数量的连续时段内平均的AM落入PM阈值以下,则由验证器推荐较大的密切关系域。
在另一实施方式中,利用乘数因数来扩展减幅因数。当工作负荷放置管理器将工作负荷放置在较大域上时,将减幅因数设置为X+旧的减幅因数×乘数,并且然后使该乘数增加1(例如,X=20,初始乘数=0)。只要减幅因数大于0,就不允许工作负荷放置管理器将工作负荷放置在较小的域上,但是能够与减幅因数值无关地放置在较大域上。如果减幅因数大于0,则在每一个测量时段,减幅因数减1。当减幅因数到达0时,重新设置乘数。对于ASO尝试频繁移动的工作负荷,这将增加减幅因数,但是将仍然允许各处移动更加逐渐变化的工作负荷。
在进一步的实施方式中,当减幅因数移动到较小域并且不应用乘数时,将减幅因数设置到较小值。这一配置降低了朝向较小域的移动速度。例如,在从书本密切关系域到单核密切关系域的每一个移动之间,可以需要五个测量时段。
在进一步的实施方式中,通过延迟预测器和验证器的启动,并且还通过限制对于预测器和验证器的操作时段来限制密切关系域之间的改变频率。
本领域普通技术人员将理解,工作负荷放置管理器可能不能够实现来自预测器或者验证器的一些推荐。例如,假定两个密切关系域包括一核域和两核域。两个工作负荷A和B正在运行。工作负荷A已经被压缩到两核域并且工作负荷B当前正在所有三个核上运行。预测器可以推荐将工作负荷B放置在较小域上,但是工作负荷放置管理器可以确定将两个工作负荷放置在两核域上是不可接受的,并且这两个工作负荷太大而不能被放置在仅一个核上。因此工作负荷放置管理器可以配置为使工作负荷A压缩在两个核上,并且使工作负荷B运行在所有三个核上。
在进一步的实施方式中,预测器配置为当确定对于给定工作负荷是否降低密切关系域的尺寸时考虑进一步的度量。这样的进一步度量可以配置为通过验证器降低密切关系域改变反转的数量。例如,CPI堆栈击穿可以用于权衡密切关系域改变的潜在优点和潜在缺点。
在另一实施方式中,预测器提供有识别处理器拓扑的非一致元件的数据。例如,可以在一个插槽上提供六个核并且在另一插槽上提供两个核。可以使预测器知晓该拓扑并且考虑当前域的子域的尺寸。然后,预测器配置为向工作负荷放置管理器通信最小域尺寸,以使得工作负荷放置管理器能够避免将其放置在太小的域上。
在进一步的实施方式中,验证器配置为在每一个域上保持工作负荷的性能历史。验证器进一步配置为在不推荐移动回到先前的较大域的情况下,考虑在给定域上性能的诸如5%的稍微下降。容忍性能的小幅下降支持工作负荷移动经过中间域以便到达其中可以显著改善性能的其他域。在密切关系域的范围上有效地采样性能之后,验证器可以配置为使用收集到的历史性能数据,以便进行推荐来移动到工作负荷在其上最佳地执行的域。例如,在向下的方向上具有减幅因数3对于每一个密切关系域提供性能测量的三个样本。一旦采样了每一级,则验证器配置为推荐移动到具有最佳平均性能的密切关系域。
在另一实施方式中,验证器和预测器配置为确保与工作负荷的属性相关的相关性能在尝试优化工作负荷之前的时间段内是稳定的。在应用优化之后,然后按照相同的方式在新的域中监控这些度量。
在进一步的实施方式中,ASO配置为检测诸如添加处理器或存储器或者划分迁移事件的大系统事件,并且可以作为响应而配置为推荐重新设置所有优化。
本领域普通技术人员将理解,可以使用任何适合的度量、统计和测量来提供适合于ASO的给定应用的密切关系测量和性能测量。而且,密切关系域的限定可以改变并且不需要是分级的,而是配置为适合对于ASO的任何给定应用。
本发明的实施方式可以应用于单个插槽系统。例如,将具有强相互作用的线程放置在相同的核上会是有利的。锁定竞争提供另一机会,其中ASO在单个芯片环境中会是有利的。限制竞争锁定的软件线程到可用硬件线程子集的放置能够产生性能改善。
与基于搜索的优化器相比较,本发明的实施方式配置为支持较快且不太破坏的放置或者工作负荷,并且与预测优化器相比较不太保守。预测器防止工作负荷的移动(其不太可能得益于密切关系域的改变),并且还通常在合适的点处停止朝向较小域的移动。另一方面,由于验证器将使被证明是错误的来自预测器的任何推荐恢复,因此,预测器会是不太保守的。
作为由预测器模块缓解的较少实验的结果,本发明的实施方式配置为与基于搜索的优化器或者预测优化器相比较更加有效地支持多个放置的并行处理。与纯实验方案相比较,极大地降低了所需的实验的量,这在具有许多工作负荷的繁忙系统上尤其有利。当一次处理许多工作负荷时,预测优化器面对高度复杂的预测问题。
与预测优化器相比较,本发明的实施方式更加容易进行测试并且更加鲁棒。使具有通常相反目标的两个简单部件使用不同的度量降低了测试付出,并且支持并行执行两个部件的测试。在域移动之后,预测器模块配置为从新的域收集度量。因而,预测器具有预测在下一个域中是否存在改善性能的可能性的简化工作。这与预测哪一个域将产生最佳性能的重要工作形成对比。
本领域普通技术人员将理解,体现本发明的部分或者全部的装置可以是具有配置为提供本发明的部分或者全部实施方式的软件的通用设备。该设备可以是单个设备或者一组设备,并且该软件可以是单个程序或者一组程序。而且,用于实现本发明的任何或者所有软件可以经由任何合适的传输或者存储单元进行通信,以使得能够将该软件加载到一个或者多个设备上。
尽管通过对本发明的实施方式的描述说明了本发明,并且尽管相当详细地描述了实施方式,但是申请人并不意在限制或者以任何方式将所附权利要求的范围局限于这样的细节。附加的优点和变型对于本领域普通技术人员将容易实现。因此,本发明在其更宽泛的方面并不局限于代表性装置和方法的具体细节,以及所示出和描述的说明性示例。因此,在不脱离申请人的一般创造性概念的范围的情况下,可以根据这样的细节进行改变。

Claims (18)

1.一种用于在多处理计算机系统中管理工作负荷的方法,所述方法包括步骤:
针对多个处理器核限定密切关系域的集合,每一个所述密切关系域包括所述处理器核的集合;
限定密切关系测量,所述密切关系测量配置为指示给定工作负荷应当在何时被移动到包括较少处理器核的较小的密切关系域;
限定性能测量,所述性能测量配置为指示给定工作负荷的性能;
根据所述密切关系测量和所述性能测量来测量给定工作负荷;
如果所述密切关系测量指示给定工作负荷应当被移动到较小的密切关系域,则将所述工作负荷移动到较小的密切关系域;或者
如果所述性能测量指示性能降低,则将所述工作负荷移动到较大的密切关系域;
所述密切关系测量包括对给定工作负荷等待数据所花费的处理时间占总处理时间的比例的测量;
所述性能测量包括存储指令对于给定工作负荷的执行速率的测量。
2.根据权利要求1所述的方法,包括进一步的步骤:
如果来自所述密切关系测量和所述性能测量的所述指示冲突,则关于预定的协议来解决所述冲突。
3.根据权利要求2所述的方法,其中,所述预定的协议包括遵循来自所述性能测量的所述指示以将所述工作负荷移动到较大的密切关系域。
4.根据权利要求1到3中的任意一项所述的方法,其中,所述密切关系域的集合包括在给定的密切关系域中根据处理器核的数量而排序的密切关系域的等级。
5.根据权利要求1到3中的任意一项所述的方法,包括进一步的步骤:
根据来自所述密切关系测量或者所述性能测量的所述指示来指示工作负荷放置方式。
6.根据权利要求1到3中的任意一项所述的方法,其中,所述密切关系测量和所述性能测量包括互相排斥的测量。
7.根据权利要求1到3中的任意一项所述的方法,其中,周期性地执行根据所述密切关系测量和所述性能测量的给定工作负荷的所述测量。
8.根据权利要求1到3中的任意一项所述的方法,其中,给定工作负荷在域之间的移动被减幅。
9.根据权利要求1到3中的任意一项所述的方法,通过操作系统守护程序来执行。
10.一种用于在多处理计算机系统中管理工作负荷的装置,所述装置操作为:
针对多个处理器核限定密切关系域的集合,每一个所述密切关系域包括所述处理器核的集合;
限定密切关系测量,所述密切关系测量配置为指示给定工作负荷应当在何时被移动到包括较少处理器核的较小的密切关系域;
限定性能测量,所述性能测量配置为指示给定工作负荷的性能;
根据所述密切关系测量和所述性能测量来测量给定工作负荷;
如果所述密切关系测量指示给定工作负荷应当被移动到较小的密切关系域,则将所述工作负荷移动到较小的密切关系域;或者
如果所述性能测量指示性能降低,则将所述工作负荷移动到较大的密切关系域;
所述密切关系测量包括对给定工作负荷等待数据所花费的处理时间占总处理时间的比例的测量;
所述性能测量包括存储指令对于给定工作负荷的执行速率的测量。
11.根据权利要求10所述的装置,进一步操作为:
如果来自所述密切关系测量和所述性能测量的所述指示冲突,则关于预定的协议来解决所述冲突。
12.根据权利要求11所述的装置,其中,所述预定的协议包括遵循来自所述性能测量的所述指示以将所述工作负荷移动到较大的密切关系域。
13.根据权利要求10到12中的任意一项所述的装置,其中,所述密切关系域的集合包括在给定的密切关系域中根据处理器核的数量而排序的密切关系域的等级。
14.根据权利要求10到12中的任意一项所述的装置,进一步操作为:
根据来自所述密切关系测量或者所述性能测量的所述指示来指示工作负荷放置方式。
15.根据权利要求10到12中的任意一项所述的装置,其中,所述密切关系测量和所述性能测量包括互相排斥的测量。
16.根据权利要求10到12中的任意一项所述的装置,其中,周期性地执行根据所述密切关系测量和所述性能测量的给定工作负荷的所述测量。
17.根据权利要求10到12中的任意一项所述的装置,其中,给定工作负荷在域之间的移动被减幅。
18.根据权利要求10到12中的任意一项所述的装置,通过操作系统守护程序来提供。
CN201280034965.1A 2011-07-26 2012-06-13 在多处理计算机系统中管理工作负荷 Active CN103649938B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11175337.2 2011-07-26
EP11175337 2011-07-26
PCT/IB2012/052984 WO2013014545A1 (en) 2011-07-26 2012-06-13 Managing workloads in a multiprocessing computer system

Publications (2)

Publication Number Publication Date
CN103649938A CN103649938A (zh) 2014-03-19
CN103649938B true CN103649938B (zh) 2016-01-20

Family

ID=47600570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280034965.1A Active CN103649938B (zh) 2011-07-26 2012-06-13 在多处理计算机系统中管理工作负荷

Country Status (6)

Country Link
US (1) US9864641B2 (zh)
JP (1) JP2014523598A (zh)
CN (1) CN103649938B (zh)
DE (1) DE112012002545B4 (zh)
GB (1) GB2507229B (zh)
WO (1) WO2013014545A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10291472B2 (en) * 2015-07-29 2019-05-14 AppFormix, Inc. Assessment of operational states of a computing environment
US20160179680A1 (en) * 2014-12-18 2016-06-23 Dell Products L.P. Systems and methods for integrated rotation of processor cores
US10228973B2 (en) * 2016-03-08 2019-03-12 Hulu, LLC Kernel policy optimization for computing workloads
US10545674B1 (en) * 2016-06-30 2020-01-28 EMS EP Holding Company LLC Method and system for SSD performance jitter detection and avoidance
US10248534B2 (en) 2016-11-29 2019-04-02 International Business Machines Corporation Template-based methodology for validating hardware features
US11068314B2 (en) 2017-03-29 2021-07-20 Juniper Networks, Inc. Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment
US10868742B2 (en) 2017-03-29 2020-12-15 Juniper Networks, Inc. Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control
US11323327B1 (en) 2017-04-19 2022-05-03 Juniper Networks, Inc. Virtualization infrastructure element monitoring and policy control in a cloud environment using profiles
JP6911544B2 (ja) * 2017-06-02 2021-07-28 富士通株式会社 プログラム、情報処理装置及び情報処理方法
US10698737B2 (en) * 2018-04-26 2020-06-30 Hewlett Packard Enterprise Development Lp Interoperable neural network operation scheduler
KR102563648B1 (ko) * 2018-06-05 2023-08-04 삼성전자주식회사 멀티 프로세서 시스템 및 그 구동 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1469246A (zh) * 2002-06-20 2004-01-21 �Ҵ���˾ 对多处理器系统进行负荷平衡的装置和方法
CN1523498A (zh) * 2003-02-20 2004-08-25 国际商业机器公司 计算系统中分区之间的动态处理器再分配
CN101227320A (zh) * 2007-12-28 2008-07-23 中国移动通信集团浙江有限公司 多处理器系统负荷均衡配置方法
US7451183B2 (en) * 2003-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Assembly and method for balancing processors in a partitioned server
CN101464813A (zh) * 2007-12-19 2009-06-24 国际商业机器公司 用于多核处理器上的自动工作量分配的系统和方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996822B1 (en) 2001-08-01 2006-02-07 Unisys Corporation Hierarchical affinity dispatcher for task management in a multiprocessor computer system
JP4119162B2 (ja) 2002-05-15 2008-07-16 株式会社日立製作所 多重化計算機システム、論理計算機の割当方法および論理計算機の割当プログラム
JP4148700B2 (ja) 2002-05-30 2008-09-10 松下電器産業株式会社 目画像撮像装置
JP4308086B2 (ja) * 2004-05-31 2009-08-05 富士通株式会社 自律制御プログラム及びその記録媒体、自律制御装置並びに自律制御方法
US7996842B2 (en) * 2006-03-30 2011-08-09 Oracle America, Inc. Computer resource management for workloads or applications based on service level objectives
US7941805B2 (en) 2006-08-15 2011-05-10 International Business Machines Corporation Affinity dispatching load balancer with precise CPU consumption data
US8484642B2 (en) * 2010-11-17 2013-07-09 Intel Corporation Processor core selection based at least in part upon at least one inter-dependency
US9116750B2 (en) * 2012-08-08 2015-08-25 International Business Machines Corporation Optimizing collective communications within a parallel computer
US9152467B2 (en) * 2013-01-18 2015-10-06 Nec Laboratories America, Inc. Method for simultaneous scheduling of processes and offloading computation on many-core coprocessors

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1469246A (zh) * 2002-06-20 2004-01-21 �Ҵ���˾ 对多处理器系统进行负荷平衡的装置和方法
CN1523498A (zh) * 2003-02-20 2004-08-25 国际商业机器公司 计算系统中分区之间的动态处理器再分配
US7451183B2 (en) * 2003-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Assembly and method for balancing processors in a partitioned server
CN101464813A (zh) * 2007-12-19 2009-06-24 国际商业机器公司 用于多核处理器上的自动工作量分配的系统和方法
CN101227320A (zh) * 2007-12-28 2008-07-23 中国移动通信集团浙江有限公司 多处理器系统负荷均衡配置方法

Also Published As

Publication number Publication date
JP2014523598A (ja) 2014-09-11
US20150242245A1 (en) 2015-08-27
DE112012002545T5 (de) 2014-06-18
GB201402519D0 (en) 2014-04-02
CN103649938A (zh) 2014-03-19
WO2013014545A1 (en) 2013-01-31
DE112012002545B4 (de) 2019-12-12
US9864641B2 (en) 2018-01-09
GB2507229A (en) 2014-04-23
GB2507229B (en) 2014-09-10

Similar Documents

Publication Publication Date Title
CN103649938B (zh) 在多处理计算机系统中管理工作负荷
CN110519365B (zh) 一种变更设备业务的方法和业务变更系统
US8903801B2 (en) Fully automated SQL tuning
US20150134831A1 (en) Management method and apparatus
CN101505243B (zh) 一种Web应用性能异常侦测方法
US7831695B1 (en) System and method for it system migration management
US20190245756A1 (en) Performance adjustment method, apparatus for peformance adjustment, and non-transitory computer-readable storage medium for storing program
CN108508874B (zh) 一种监控设备故障的方法和装置
CN108763093A (zh) 一种自动化测试方法和系统
US20210065083A1 (en) Method for changing device business and business change system
US20140196054A1 (en) Ensuring performance of a computing system
CN104778032A (zh) 一种用于进行持续集成的方法和设备
US20140325520A1 (en) Application thread to cache assignment
US11580458B2 (en) Method and system for performance tuning and performance tuning device
CN103150250A (zh) 应用程序性能检测系统和应用程序性能检测方法
JP2021524966A (ja) マルチコア相互接続のレベル2キャッシュへのアクセスを検証する方法
CN115269108A (zh) 一种数据处理方法、装置及设备
EP4113308A1 (en) Enhanced application performance framework
CN101895426B (zh) 一种网络资源评估中的数据采集方法及系统
CN103336726A (zh) 检测Linux系统中多任务冲突的方法与装置
CN106294067B (zh) 一种基于p2p技术的虚拟化系统自管理巡检方法
US11960939B2 (en) Management computer, management system, and recording medium
CN109656796B (zh) 一种任务挑选方法和装置
CN111506422B (zh) 事件分析方法及系统
Kiran et al. A prediction module to optimize scheduling in a grid computing environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant