CN102708006A - 处理优化负载调整 - Google Patents

处理优化负载调整 Download PDF

Info

Publication number
CN102708006A
CN102708006A CN2012100858210A CN201210085821A CN102708006A CN 102708006 A CN102708006 A CN 102708006A CN 2012100858210 A CN2012100858210 A CN 2012100858210A CN 201210085821 A CN201210085821 A CN 201210085821A CN 102708006 A CN102708006 A CN 102708006A
Authority
CN
China
Prior art keywords
processing
resource
utilization
handling
software
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.)
Pending
Application number
CN2012100858210A
Other languages
English (en)
Inventor
林征
A.A.乌索罗
J.M.克拉斯
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102708006A publication Critical patent/CN102708006A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

在处理优化负荷调整的实施例中,软件构建项目的工作单元被处理,并且所述处理一般地使计算设备的处理资源的利用最大化。当软件构建项目的工作单元被处理时,处理资源的性能数据被收集。作出关于对处理软件构建项目同时避免不利的资源条件而言处理资源的利用是否是最优的确定。然后可以响应于确定处理资源的利用不是最优的,增加正处理的工作单元的数量。可替代地,可以响应于确定处理资源的利用超过最优处理,减少正处理的工作单元的数量。可替代地,正处理的工作单元可以被允许在没有调度用于处理的附加工作单元的情况下完成处理。

Description

处理优化负载调整
背景技术
大规模软件开发项目是广泛的,并且许多独立工作的开发者创作源代码,其稍后被编译以开发软件应用,比如操作系统或浏览器应用。用于广泛的软件构建项目的构建过程也是系统资源密集型的,并且专用的机器可运行若干小时以便每当其被编译时构建软件项目。用于控制计算设备上的机器资源利用的静态值的使用典型地要求用户干预并且可以不应用于不同计算设备的所有硬件配置,这导致次优构建性能。一些常规技术基于在构建软件构建项目的调用之前定义的静态线程池来操作。然而,这些技术也不能够对改变机器资源条件和利用作出响应。
发明内容
该发明内容介绍处理优化负载调整的简化概念,并且所述概念在以下具体实施方式中被进一步描述并且/或者在附图中被示出。本发明内容不应当被认为描述要求保护的主题的必要特征,也不会用于确定或限制要求保护的主题的范围。
描述了处理优化负载调整。在实施例中,软件构建项目的工作单元被处理,并且处理工作单元一般地使计算设备的处理资源的利用最大化。在实现方式中,计算设备的处理资源包括一个或多个处理器(CPU)、随机存取存储器(RAM)与盘输入/输出(盘I/O)等待时间(latency)阈值。当软件构建项目的工作单元被处理时,处理资源的性能数据可以被收集。
可做出关于处理资源的利用对于处理软件构建项目同时避免不利的资源条件是否是最优的确定。然后可以响应于关于处理资源的利用不是最优的确定,增加正处理的工作单元的数量。可替代地,可以响应于关于处理资源的利用超过最优处理的确定,减少正处理的工作单元的数量。可替代地,可以允许正处理的工作单元在没有调度用于处理的附加工作单元的情况下完成处理。
在其它实施例中,处理资源的性能数据指示CPU利用的百分比、可用RAM的百分比和盘I/O等待时间。处理资源的性能数据可以是性能数据的平均值并且以实时间隔收集。此外,软件构建项目的每个工作单元调用不同水平的处理资源利用。处理资源的参数可被定义为用于确定处理资源的利用是否是最优的基础。
在其它实施例中,一个或多个附加的设备应用的任务可以在处理软件构建项目的工作单元的计算设备上执行。然后,收集的性能数据指示处理资源的利用,以处理针对附加的设备应用以及软件构建项目的工作单元的任务。关于处理资源的利用在处理软件构建项目方面是否是最优的确定还可以包括避免处理针对附加设备应用的任务的中断。
附图说明
处理优化负载调整的实施例参照以下附图被描述。相同数字始终可以用于引用图中所示的类似特征和组件:
图1示出可以实现处理优化负载调整的实施例的示例计算设备。
图2示出根据一个或多个实施例的处理资源利用在时间上的示例曲线图。
图3示出根据一个或多个实施例的处理优化负载调整的示例方法。
图4示出根据一个或多个实施例的另一个示例计算设备。
图5示出根据一个或多个实施例的处理资源利用在时间上的另一个示例曲线图。
图6示出根据一个或多个实施例的处理优化负载调整的示例方法。
图7示出可以实现处理优化负载调整的实施例的示例设备的各种组件。
具体实施方式
描述处理优化负载调整,并且可以实现用于构建引擎负载节流的实施例,以便优化处理资源以构件或编译软件构建项目。可以监控诸如一个或多个处理器(CPU),随机存取存储器(RAM)以及盘输入/输出(盘I/O)等待时间之类的计算设备的处理资源,以确定处理资源的利用是否是最优的。处理资源被实时监控以确定计算设备是否能够增加处理,同时处理软件构建项目的指令工作单元和/或附加的设备应用的应用任务指令。
如果处理工作负载未被最大化,软件构建项目的附加指令工作单元可被调度用于处理,以增加处理工作负载。如果处理资源的利用超过了最优处理,那么软件构建项目的指令工作单元可被中止(suspend),以减少处理工作负载。可替代地,可以允许当前处理的软件构建项目的指令工作单元完成处理,而不增加或减少处理工作负载。
虽然处理优化负载调整的特征和概念可以在任何数量的不同设备、系统、环境、网络和/或配置中实现,但是处理优化负载调整的实施例在下面的示例设备、系统和方法的上下文中被描述。
图1示出可以实现处理优化负载调整的实施例的示例计算设备100。示例计算设备可以是任何类型的计算机、服务器、专用机器、状态机等。计算设备可以用各种组件实现,比如一个或多个处理器102(CPU)和实现数据存储的存储器设备104(例如计算机可读存储介质)。计算设备还可包括任何数量的不同组件以及它们的组合,如参考图7所示的示例设备进一步描述的。计算设备的处理器和存储器将处理优化服务106实现为计算机可执行指令,比如软件应用,其可执行来实现本文描述的处理优化负载调整的各种实施例。
计算设备100包括处理资源108,例如一个或多个处理器102(CPU)、随机存取存储器(RAM) 110和盘输入/输出(I/O)等待时间阈值112。可替代地或者此外,计算设备的被监控处理资源可包括网络带宽,或一般地可以包括基于预定义度量(metric)的任何资源以确定最优的资源利用。本文中被称为处理资源的RAM是逻辑构造,它扩展到非物理RAM存储装置,例如当数据被页面溢出RAM并被写到盘时。当信息被页面溢出RAM时,软件指令可以被写到盘。当软件应用和/或项目的任务和指令被执行时,性能数据计数器114保持处理资源的性能数据。对应于处理资源的性能数据指示CPU利用的百分比,可用的RAM的百分比和盘I/O等待时间。
在实施例中,计算设备100包括处理资源参数116,并且处理资源108的参数可定义用于比较以确定处理资源的利用是否是最优的。计算设备的用户可以配置最优资源利用的系统。在实现方式示例中,根据发起用于处理最优负载调整的处理优化服务106的设置阈值默认,处理资源可以在下表中表示为:
Figure 2012100858210100002DEST_PATH_IMAGE002
*注释:收集和分析数据的周期性间隔是灵活的且可选地是用户可配置的。例如,在从一条CPU指令到五秒的范围内,用于周期性数据收集的系统默认可以被实现为一秒,如表中所示(例如,这是从一个CPU指令的小值到五秒的大值的大范围)。
处理优化服务106被实现成以实时间隔从性能数据计数器114收集性能数据。可以从系统性能监控的实现方式中获得性能数据的值。可在周期性间隔上监控和采样处理器时间、可用存储器以及盘I/O计数器。也可以基于所存储的性能数据读数的运行平均值(running average)来确定性能数据的值。以周期性间隔收集的性能数据是用于被测量的特定资源的原子数据循环。在实现方式中,性能数据被测量为当前和之前的采样值之间的平均值。数据循环可以用于消除在例如针对CPU利用以短暂间隔发生的测量值中的刺突。在示例实现方式中,可实现每个循环两个数据读数的最小值。
计算设备100可以用于构建或执行软件构建项目118,比如使计算设备的处理资源108的利用最大化的大规模软件开发构建项目。RAM 110加载和保持软件构建项目的软件指令120(例如,以包括已被写到非物理RAM存储装置和/或从中得到的指令),并且利用处理资源来处理软件构建项目的指令工作单元122。当软件指令120被处理时,每一个指令工作单元122可以使用不同量的CPU、RAM,和/或影响盘I/O等待时间。在实现方式中,计算设备可以是运行若干小时以构建软件构建项目的专用机器,其是时间相关的并且尽可能快速和高效地理想地完成。
在实现方式中,处理优化服务106被实现为确定对于处理软件构建项目118(例如软件构建项目的指令工作单元122)并避免处理资源的不利资源条件而言处理资源108的利用是否是最优的。处理资源的利用可以通过与如上文所述的所定义的资源阈值进行比较来确定。处理资源的利用可能不利于最优处理,或者超过最优处理(例如,当遇到低资源条件时,比如过多的环境切换、内存溢出、过多的分页、盘振荡等)。
计算设备100还包括调度器124。在实施例中,调度器可以包括处理最优服务106,作为调度器的集成组件或服务。可替代地,软件构建项目118可以被实现为包括处理优化服务,作为项目的集成组件或服务。调度器被实现成在处理最优服务确定处理资源108的利用不是最优的情况下、调度软件构建项目的附加工作单元的处理以增加正在处理的指令工作单元122的数量。如果处理最优服务确定处理资源的利用超过最优处理,则调度器也被实现成减少正在处理的指令工作单元的数量,或者允许当前指令工作单元完成处理。
可以通过增加和/或减少指令工作单元的数量来完成针对处理资源108的利用的工作负载调整,所述指令工作单元被调度并在处理期间挂起(pending)以构建软件构建项目。最初,在启动计算设备100时,工作负载调整的值对应于对构建应用而言可用于调度指令工作单元到线程池的的处理线程的数量。在实现方式中,处理线程的最大数量可以被设置为处理器102数量的三倍,并且处理线程的最小数量最初可以对应于处理器的数量。处理最优服务106发起增加如达到处理资源的稳定状态或最优利用(无论首先获得哪一个)所需的处理线程的数量。
关于处理线程的数量,挂起指令工作单元122的数量可等于但不超过处理线程的最大数量。但是,在下界上,挂起指令工作单元可以减少到低于处理线程的设置最小数量。如果处理资源108的利用被低可用RAM 110或明显较高的盘I/O等待时间约束(例如,如在与盘I/O等待时间阈值112进行比较时所确定的),则这提供减少工作负载调整。在实施例中,处理资源108可以基于利用的效果而被优先化。例如,当考虑处理资源的最优利用时,可用的系统RAM首先优先化,然后其次,盘I/O等待时间被优先化,以及第三,CPU利用被优先化。
如果可用的系统RAM 110比设置的上界更小,那么基于CPU的节流(throttle)可以被重设为默认值,和/或被禁用直到可用的系统RAM恢复并且大于设置的上界是可用的。如果可用的系统RAM限制了处理资源的利用,比如当可用的RAM小于或等于设置的下界时,调度器124可以短暂地暂停以允许当前指令工作单元122完成处理并允许可用的RAM增加。在实现方式中,每个循环的存储的数据读数的默认值可以被设置为值4,因为随着可用的RAM减少,存储器消耗更渐进(gradual)。当可用的RAM的水平已经增加到上界水平之上时,可重新开始调度和/或CPU节流和有效地盘I/O节流。
如果盘I/O等待时间超过盘I/O等待时间阈值112,那么工作负载调整可以是处理资源108的利用减少。在示例实现方式中,盘读或写操作的平均盘I/O等待时间在特定系统中可以是几毫秒。随着盘I/O的速率增加,等待时间增加,并且于是增加到若干毫秒持续时间的等待时间可以使处理性能衰退。在具有不同硬盘配置的多个系统之间,盘I/O等待时间的值可以不同。在实现方式中,盘I/O等待时间阈值为100ms,并且4是每一循环的存储的数据读数的默认数量。计算设备100可以包括多于一个物理盘,在此情况下,针对盘I/O等待时间可监控所有盘,而且超过盘I/O等待时间阈值112的任一个盘的确定可以发起处理资源的节流利用。
如果CPU利用比设置最小阈值更小,以及如果存在要处理的附加指令工作单元122,那么工作负载调整可以是处理资源108的利用增加。可替代地,如果CPU利用超过设置的最大阈值,那么工作负载调整可是利用减少。当工作单元队列中不存在要处理的指令工作单元122时,处理资源的利用可被设置为默认值。如果可用的RAM 110比设置的上界小,则CPU节流可以被设置为默认值并且功能被禁用。在实现方式中,将每一循环的存储的数据读数的默认数量设置为4加(4+)。
参考默认值和参数覆盖(override),每传送值的处理线程的数量静态地在时间构建运行期间设置,并且针对构建应用的个别调用,处理线程的数量可以静态地被配置(比如,设置为可用处理器102的相同数量,因而提供每一处理器一个线程),除非被覆盖。在实现方式中,对于挂起的指令工作单元122的数量的处理线程的数量的初始工作负载值可以被设置为系统处理器的数量。然而,一般来说,系统默认值可以用用户定义值覆盖。计算设备可运行在多处理器模式中,其中,处理优化服务106控制自动地发起针对处理资源108的最优利用的工作负载调整。
在实现方式中,可以提供选项以覆盖资源节流默认值。下面的表指示示例实现方式参数,它们中的任一个可选地可以是可配置的,并且可以被选择为定义针对处理资源的利用的工作负载调整的增加和/或减少:
Figure 2012100858210100002DEST_PATH_IMAGE004
下表指示可以在处理优化负载调整的实施例中实现的示例处理资源阈值参数和默认值:
Figure 2012100858210100002DEST_PATH_IMAGE006
下表指示示例参数,它们的任一个可选地可以是可配置的,用以调整阈值敏感性(即调整每一循环的数据读数的数量),并且可以在处理优化负载调整的实施例中实现:
Figure 2012100858210100002DEST_PATH_IMAGE008
图2示出根据本文所描述的处理优化负载调整的实施例、在时间204上的处理资源利用202的示例曲线图200。在此示例中,计算设备100(图1)中的处理资源108的优化206被实现为处理资源的近似97%的利用。处理资源的优化还可以被定义或实现为例如在本示例中大约95%到97%的利用的范围208。
如上所述,参考图1示出的计算设备100,处理优化服务106被实现成确定对于处理软件构建项目118(例如,软件构建项目的指令工作单元122)且避免处理资源的不利资源条件而言,处理资源108的利用是否是最优的。例如,当处理资源108的利用202在210处小于最优时,调度器124被实现成调度软件构建项目的附加工作单元的处理以增加在处理的指令工作单元的数量。可替代地,当处理优化服务确定处理资源108的利用202在212处超过最优处理时,调度器被实现成减少正在处理的指令工作单元的数量,或允许当前指令工作单元完成处理。
根据处理优化负载调整的一个或多个实施例、参考相应的图3和6描述示例方法300和600。一般地,可以使用软件、固件、硬件(例如固定逻辑电路)、手动处理、或其任意组合来实现本文描述的服务、功能、方法、过程、组件和模块中的任何一种。软件实现方式表示在被计算机处理器执行时执行指定任务的程序代码。所述示例方法可以在计算机可执行指令的通用环境中描述,该指令可以包括软件、应用、例程、程序、对象、组件、数据结构、过程、模块、函数等等。所述程序代码可以存储在一个或多个相对于计算机处理器而言的本地和/或远程的计算机可读存储介质设备中。所述方法也可以在分布计算环境中由多个计算机设备实现。此外,本文描述的特征是平台独立的,并且可以在具有多种处理器的多种计算平台上实现。
图3示出处理优化负载调整的示例方法300。方法块描述的顺序不旨在被解释为限制,并且任何数量的所描述的方法块可通过任何顺序组合以实现方法或可替代的方法。
在块302处,针对使计算设备的处理资源的利用最大化的软件构建项目来处理工作单元。例如,软件构建项目118(图1)的指令工作单元122利用计算设备100的处理资源108来处理。处理资源包括一个或多个处理器102(CPU)、随机存取存储器(RAM) 110,及盘输入/输出(I/O)等待时间阈值112。处理资源的处理资源参数116是可定义的,并且被用于比较以确定处理资源的利用是否是最优的。
在块304处,随着软件构建项目的工作单元被处理,收集处理资源的性能数据。例如,随着软件构建项目118的指令工作单元122被处理,处理优化服务106从性能数据计数器114以实时间隔收集性能数据。在软件指令120被处理时,每一个指令工作单元122可以使用不同量的CPU、RAM,和/或影响盘I/O等待时间。性能数据指示CPU利用的百分比、可用的RAM的百分比以及盘I/O等待时间,并且用于处理资源的性能数据是在实时间隔中收集时的性能数据的平均值。
在块306处,关于在处理软件构建项目的工作单元同时避免不利资源条件方面、处理资源的利用是否超过最优处理做出确定。例如,处理优化服务106确定处理资源108的利用是否是最优的。当遇到低资源条件时,比如过多的环境切换、内存溢出、过多的分页、盘振荡等,处理资源的利用可能不利于最优处理,或超过最优处理。如果处理资源的利用不超过最优处理(即来自块306的“否”),那么在块308处,做出关于处理资源的利用是否是最优的确定。如果处理资源的利用是最优的(即来自块308的“是”),则本方法在块304处继续再次收集处理资源的性能数据。
如果处理资源的利用不是最优(即来自块308的“否”),则在块310处,软件构建项目的附加工作单元被调度以增加正在处理的工作单元的数量。例如,如果处理优化服务106确定处理资源108的利用不是最优的,计算设备100的调度器124调度用于处理的软件构建项目118的附加指令工作单元122以增加正在处理的工作单元的数量。当处理资源的利用不超过如在块306处所确定的最优处理并且处理资源的利用不是如在块308处确定的最优的时,处理资源的利用是次优的,并且正处理用于软件构建项目的工作单元的数量得到增加。所述方法然后在块304处继续再次收集处理资源的性能数据。
如果处理资源的利用的确超过最优处理(即,来自块306的“是”),那么在块312处,做出关于正在处理的当前工作单元是否被允许完成处理的确定。例如,处理优化服务106确定正在处理的当前指令工作单元122是否将被允许完成处理。如果当前工作单元被允许完成处理(即,来自块312的“是”),则该方法随后在块304处继续再次收集处理资源的性能数据。如果当前工作单元不被允许完成处理(即,来自块312的“否”),那么在块314处,正在处理用于软件构建项目的工作单元的数量减少。例如,计算设备100的调度器124减少正在处理的指令工作单元122的数量。所述方法然后在块304处继续再次收集处理资源的性能数据。
图4示出可以实现处理优化负载调整的实施例的另一个示例计算设备400。如参照图1中所示的计算设备的描述,示例计算设备400可以是任何类型的计算机、服务器、专用机器、状态机等。计算设备可以用各种组件实现,比如一个或多个处理器402(CPU)和实现数据存储的存储器设备404(例如计算机可读存储介质)。计算设备还可以包括任何数量的不同组件以及它们的组合,如参考图7中所示的示例设备进一步描述的。计算设备的处理器和存储器将处理优化服务406实现为计算机可执行指令,比如软件应用,其可执行来实现本文描述的处理优化负载调整的各种实施例。
计算设备400包括例如一个或多个处理器402(CPU)的处理资源408、随机存取存储器(RAM)410和盘输入/输出(I/O)等待时间阈值412。当软件应用和/或构建项目的任务和指令被执行时,性能数据计数器414保持处理资源的性能数据。对应于处理资源的性能数据指示CPU利用的百分比、可用的RAM的百分比和盘I/O等待时间。计算设备400还包括处理资源参数416,并且处理资源408的参数可被定义用于比较以确定处理资源的利用是否是最优的。处理优化服务406被实现成从性能数据计数器在实时间隔中收集性能数据。
计算设备400可以被用于构建或执行软件构建项目418,例如大规模软件开发构建项目,其使计算设备的处理资源408的利用最大化。计算设备400还可包括被设备的用户使用并且在该设备上处理的其它设备应用420。例如,开发者可以发起软件构建项目的构建,同时也访问电子邮件应用、在数据库应用中工作等等。虽然软件构建项目可接管计算设备的处理资源的利用,但这将不容纳(accommodate)想要也与其它设备应用一起工作的用户。在类似的环境下,计算设备可构建或执行构建项目的两个或更多个实例,并且为了高效地完成多个构建项目,需要处理资源的共享式利用。
RAM 410加载和保持软件构建项目和其它设备应用的软件指令422。利用处理资源处理应用任务指令426及软件构建项目的指令工作单元424。在软件指令被处理时,软件构建项目的每一指令工作单元424可以使用不同量CPU、RAM,和/或影响盘I/O等待时间。类似地,针对设备应用的应用任务指令426将使用未知数量的处理资源,并且用于设备应用的处理资源的利用不被控制或限制。处理优化负载调整的实施例被实现用于处理资源的最优利用以构建或执行软件构建项目,同时还避免针对附加设备应用被处理的应用任务指令的中断。一般地,软件构建项目不“接管”和消耗所有处理资源,而是利用未被用于处理其他设备应用的剩余可用处理资源。
在实施例中,处理优化服务406被实现成确定处理资源408的利用是否是最优的,以处理软件构建项目418(比如,软件构建项目的指令工作单元424)及设备应用420(例如应用任务指令426)。相似于参照图1描述的计算设备,示例计算设备400也包括调度器428。
在实施例中,调度器428可包括作为调度器的服务或集成组件的处理优化服务406。可替代地,软件构建项目418可以被实现成包括处理优化服务作为项目的集成组件或服务。如果处理优化服务确定处理资源408的利用不是最优的,则调度器被实现成调度软件构建项目的附加工作单元的处理以增加正在处理的指令工作单元的数量。如果处理优化服务确定处理资源的利用超过最优处理,则调度器还被实现成减少正在处理的指令工作单元的数量,或允许当前指令工作单元完成处理。
图5示出根据本文所描述的处理优化负载调整的各种实施例、在时间504上处理资源利用502的另一示例曲线图500。在此示例中,计算设备400(图4)中的处理资源408的优化506被实现为处理资源的近似97%的利用。处理资源的优化还可以被定义或实现为一个利用范围508,例如在本示例中从近似95%到97%。另外,附加的设备应用420在510处在时间上利用未知数量的处理资源。
如上文参考图4所示的计算设备400所述,处理优化服务406被实现成确定处理资源408的利用在处理软件构建项目418(例如,软件构建项目的指令工作单元424)和设备应用420(例如,应用任务指令426)方面是否是最优的。用于构建或者执行软件构建项目的处理资源的最优利用使用不被用于处理针对附加设备应用的应用任务指令的剩余可用的处理资源。例如,比在514处可用的更少的处理资源在512处可用,以处理软件构建项目的指令工作单元。更少的处理资源在514处被使用以处理针对附加设备应用的应用任务指令,并且相应地,更多的处理资源可用于处理软件构建项目的指令工作单元。
处理资源的最优利用还被监控,以避免处理资源的不利资源条件。例如,当处理资源408的利用502在516处小于最优时,调度器428被实现成调度软件构建项目的附加指令工作单元的处理以增加正在处理的指令工作单元的数量。可替代地,当处理优化服务406确定处理资源408的利用在518处超过最优处理时,调度器被实现成减少正在处理的指令工作单元的数量,或允许当前指令工作单元完成处理。
图6示出处理优化负载调整的示例方法600。方法块描述的顺序不旨在被解释为限制,并且任何数量的描述方法块可通过任何顺序组合以实现方法或可替代的方法。
在块602处,软件应用的任务被处理并且在块604处处理软件构建项目的工作单元。例如,利用计算设备400的处理资源408来处理软件构建项目418的指令工作单元424和设备应用420(图4)的应用任务指令426。处理资源包括所述一个或多个处理器402(CPU)、随机存取存储器(RAM)410及盘输入/输出(I/O)等待时间阈值412。
在块606处,性能数据被收集以用于处理资源,其用于处理软件应用的任务和软件构建项目的工作单元。例如,随着软件构建项目418的指令工作单元424和设备应用420的应用任务指令426被处理,处理优化服务406从性能数据计数器414在实时间隔中收集性能数据。在软件指令422被处理时,每一个指令工作单元424可以使用不同量的CPU、RAM,和/或影响盘I/O等待时间。性能数据指示CPU利用的百分比、可用的RAM的百分比以及盘I/O等待时间。
在块608处,作出关于处理资源的利用在不中断处理软件应用的任务的情况下对于处理软件构建项目的工作单元而言是否是最优的确定。例如,处理优化服务406确定在不中断处理设备应用420的应用任务指令426的情况下处理资源408的利用是否是最优的。用于构建或者执行软件构建项目418的处理资源的最优利用使用不被用于处理针对附加设备应用的应用任务指令426的剩余可用处理资源。
如果处理资源的利用是最优的(即,来自块608的“是”),那么所述方法在块606处继续再次收集用于处理资源的性能数据。如果处理资源的利用不是最优的(即,来自块608的“否”),那么在块610处,作出关于处理资源的利用是否超过最优处理的确定。例如,处理优化服务406确定处理资源408的利用是否是最优的。当遭遇低资源条件时,处理资源的利用可能不利于最优处理,或者超过最优处理。
如果处理资源的利用不超过最优处理(即,来自块610的“否”),那么在块612处,增加针对软件构建项目正在处理的工作单元的数量。例如,如果处理优化服务406确定处理资源408的利用不是最优的,则计算设备400的调度器428调度用于处理的软件构建项目418的附加指令工作单元424以增加正在处理的工作单元的数量。当处理资源的利用如在块608处所确定不是最优的并且处理资源的利用不超过如在块610处所确定的最优处理时,那么处理资源的利用是次优的,并且针对软件构建项目正处理的指令工作单元的数量得到增加。
如果处理资源的利用的确超过最优处理(即来自块610的“是”),那么在块614处,作出关于正在处理的当前工作单元是否被允许完成处理的确定。例如,处理优化服务406确定正在处理的当前指令工作单元424是否将被允许完成处理。如果当前工作单元不被允许完成处理(即来自块614的“否”),那么在块616处减少针对软件构建项目正在处理的工作单元的数量。例如,计算设备400的调度器428减少正在处理的指令工作单元424的数量。如果当前工作单元被允许完成处理(即,来自块614的“是”),或从块616继续,本方法在块606处继续再次收集用于处理资源的性能数据。
图7示出示例设备700的各种组件,示例设备700可实现为参照前图1-6所描述的任何设备或由设备实现的服务。在实施例中,设备可被实现为如下任何形式的固定或移动设备的任一个和组合:消费者、计算机、服务器、便携式设备、用户、通信、电话、导航、电视、电器、游戏、媒体播放和/或电子设备。该设备也可以与操作设备的用户(即人)和/或实体相关联,以使得设备描述逻辑设备,其包括用户、软件、固件、硬件和/或设备的结合。
设备700包括实现设备数据704的有线和/或无线通信的通信设备702,设备数据704例如是接收到的数据、接收中的数据、广播调度的数据、数据的数据包等。设备数据或其它设备内容可包括设备的配置设置、设备上存储的媒体内容和/或与设备的用户相关联的信息。设备上存储的媒体内容可包括任何类型的音频、视频和/或图像数据。设备包括一个或多个数据输入706,可以通过数据输入706接收任何类型的数据、媒体内容和/或输入,比如用户可选择的输入、消息、通信、音乐,电视内容、记录的视频内容和从任何内容和/或数据源接收到的任何其它类型的音频、视频和/或图像数据。
设备700还包括通信接口708,例如串行、并行、网络或无线接口的任意一个或多个。通信接口在设备与通信网络(其它电子、计算和通信设备与该设备通信数据)之间提供连接和/或通信链接。
设备700包括一个或多个处理器710(例如,微处理器、控制器等中任意一种),其处理各种计算机可执行指令以控制设备的操作。可替代地或者此外,可以利用软件、硬件、固件或与处理和控制电路(这一般在712处标识)结合来实现的固定逻辑电路来实现设备。虽然未示出,但是设备可以包括系统总线或数据传送系统,其耦合设备内的各种组件。系统总线可包括不同的总线结构的任一个或组合,例如存储器总线或存储器控制器、外部总线、通用串行总线和/或利用多种总线结构中任一种的处理器或局部总线。
设备700还包括一个或多个实现数据存储的存储器设备714(例如计算机可读存储介质),例如随机存取存储器(RAM)、非易失性存储器(例如只读存储器(ROM)、闪存等等)及盘存储设备。盘存储设备可以被实现为任何类型的磁或光存储设备,比如硬盘驱动器、可记录的和/或可重写的盘等等。所述设备还可以包括大容量存储介质设备。
计算机可读介质可以是被计算设备访问的任何可用的介质或媒质。通过示例的方式,但不是限制,计算机可读介质可包括存储介质和通信介质。存储介质包括通过用于信息(例如计算机可读指令、数据结构、程序模块或其它数据)存储的任何方法或技术实现的易失性和非易失性、可移除和不可移除的介质。存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储装置、磁盒、磁带、磁盘存储装置或其它磁存储设备、或任何可以用于存储信息且可以被计算机访问的其它介质。
通信介质典型地包含计算机可读指令、数据结构、程序模块、或已调制数据信号中的其它数据,例如载波或其它传输介质。通信介质还包括任何信息传送介质。术语已调制数据信号意指通过在信号中编码信息的这种方式来设置或改变其特性中的一个或多个的信号。通过示例而非限制,通信介质包括有线介质(例如有线网络或直接有线连接)以及无线介质(例如声学、RF、红外和其它无线介质)。
存储器设备714提供数据存储机制以存储设备数据704、其它类型的信息和/或数据及各种设备应用716。例如,操作系统718可通过存储器设备保持为软件应用,并且在处理器上执行。设备应用也可包括设备管理器,例如任何形式的控制应用、软件应用、信号处理和控制模块、源自特定设备的代码、用于特定设备的硬件抽取层等。本示例中,例如当设备700被实现为计算设备时,设备应用716包括调度器应用720和处理优化服务722。调度器应用720和处理优化服务722被显示为软件模块和/或计算机应用。可替代地或此外,调度器应用720和/或处理优化服务722可以被实现为硬件、软件、固件、固定逻辑或者它们的任何组合。
设备700还包括生成用于音频系统726的音频数据和/或生成用于显示系统728的显示数据的音频和/或视频处理系统724。音频系统和/或显示系统可包括处理、显示和/或否则再现音频、视频、显示和/或图像数据的任何设备。显示数据和音频信号可通过RF(射频)链路、S-视频链路、混合视频链路、分量视频链路、DVI(数字视频接口)、模拟音频连接或其它类似的通信链路被传送到音频设备和/或显示设备。在实现方式中,音频系统和/或显示系统是设备的外部组件。可替代地,音频系统和/或显示系统是示例设备的集成组件。
虽然处理优化负载调整的实施例已经通过特定于特征和/或方法的语言被描述,但所附权利要求的主题不一定限于所描述的特定特征或方法。相反,特定特征和方法作为处理优化负载调整的示例实现方式被公开。

Claims (10)

1. 计算机实现的方法(300),包括:
处理(302)使计算设备(100)的处理资源(108)的利用最大化的软件构建项目(118)的工作单元(122);
随着软件构建项目的一个或多个工作单元被处理,收集(304)处理资源的性能数据(114);
确定(308)处理资源的利用对处理软件构建项目同时避免不利资源条件而言是否是最优的;
响应于所述确定处理资源的利用不是最优的,增加(310)正在处理的工作单元的数量。
2. 如权利要求1所述的计算机实现的方法,还包括:响应于所述确定处理资源的利用超过最优处理,进行以下之一的操作:
减少正在处理的工作单元的数量;或
允许正在处理的工作单元完成处理。
3. 如权利要求1所述的计算机实现的方法,还包括调度软件构建项目的附加工作单元以增加正在处理的工作单元的数量。
4. 如权利要求1所述的方法,其中处理资源的参数可被定义为用于所述确定处理资源的利用是否是最优的基础。
5. 如权利要求1所述的计算机实现的方法,其中:
计算设备的处理资源包括一个或多个处理器(CPU)、随机存取存储器(RAM)及盘输入/输出(盘I/O)等待时间阈值;以及
性能数据指示CPU利用的百分比、可用的RAM的百分比以及盘I/O等待时间。
6. 如权利要求1所述的计算机实现的方法,其中软件构建项目的每个工作单元调用不同水平的处理资源利用。
7. 如权利要求1所述的计算机实现的方法,其中用于处理资源的性能数据是性能数据的平均值并且在实时间隔中被收集。
8. 如权利要求1所述的计算机实现的方法,还包括处理在计算设备上执行的一个或多个附加应用的任务;
其中性能数据指示处理资源的利用以处理软件构建项目的一个或多个工作单元和一个或多个附加应用的任务;以及
其中对处理软件构建项目而言确定处理资源的利用是否是最优的包括:避免中断所述一个或多个附加应用的任务的处理。
9. 一种计算设备(100),包括:
一个或多个处理器(CPU)102,其被配置成执行软件指令(120);
随机存取存储器(RAM)110,其被配置成保持用以处理使计算设备的处理资源(108)的利用最大化的软件构建项目(118)的工作单元(122)的软件指令;
性能数据计数器(114),其随着软件构建项目的一个或多个工作单元被处理而保持处理资源的性能数据;
处理优化服务(106),其被配置成对于处理软件构建项目且避免不利资源条件而言确定处理资源的利用是否是最优的;
调度器(124),其被配置成调度软件构建项目的附加工作单元以响应于处理资源的利用非最优的确定来增加用于处理的工作单元的数量。
10. 如权利要求9所述的计算设备,其中响应于处理资源的利用超过最优处理的确定,调度器还被配置成:
减少用于处理的工作单元的数量;或
允许正在处理的工作单元完成处理。
CN2012100858210A 2011-03-28 2012-03-28 处理优化负载调整 Pending CN102708006A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/073,626 US20120254822A1 (en) 2011-03-28 2011-03-28 Processing optimization load adjustment
US13/073626 2011-03-28

Publications (1)

Publication Number Publication Date
CN102708006A true CN102708006A (zh) 2012-10-03

Family

ID=46900820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012100858210A Pending CN102708006A (zh) 2011-03-28 2012-03-28 处理优化负载调整

Country Status (2)

Country Link
US (1) US20120254822A1 (zh)
CN (1) CN102708006A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838632A (zh) * 2012-11-21 2014-06-04 阿里巴巴集团控股有限公司 数据查询方法及装置
CN114443151A (zh) * 2022-01-14 2022-05-06 山东云海国创云计算装备产业创新中心有限公司 一种轮询方法、装置及计算机可读存储介质

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996987B2 (en) * 2011-06-30 2015-03-31 Apple Inc. List view optimization
US8805986B2 (en) * 2011-10-31 2014-08-12 Sap Ag Application scope adjustment based on resource consumption
US20130160024A1 (en) * 2011-12-20 2013-06-20 Sybase, Inc. Dynamic Load Balancing for Complex Event Processing
KR101733117B1 (ko) * 2012-01-31 2017-05-25 한국전자통신연구원 멀티코어 시스템의 태스크 분배 방법 및 장치
EP3275170B1 (en) * 2015-03-23 2023-07-05 Tahoe Research, Ltd. Workload scheduler for computing devices with camera
US10176014B2 (en) * 2015-07-27 2019-01-08 Futurewei Technologies, Inc. System and method for multithreaded processing
US10572306B2 (en) 2016-09-14 2020-02-25 Cloudera, Inc. Utilization-aware resource scheduling in a distributed computing cluster

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862381A (en) * 1996-11-26 1999-01-19 International Business Machines Corporation Visualization tool for graphically displaying trace data
US6477561B1 (en) * 1998-06-11 2002-11-05 Microsoft Corporation Thread optimization
US20020174389A1 (en) * 2001-05-18 2002-11-21 Fujitsu Limited Event measuring apparatus and method, computer readable record medium in which an event measuring program is stored, and computer system
US20040194075A1 (en) * 2003-03-26 2004-09-30 Sun Microsystems, Inc., A Delaware Corporation Dynamic distributed make
US20070018601A1 (en) * 2005-06-29 2007-01-25 International Business Machines Corporation Method to automatically detect and predict performance shortages of databases
CN101334741A (zh) * 2007-06-27 2008-12-31 国际商业机器公司 对应用进行建模的方法及对应用进行部署的系统
CN101938396A (zh) * 2009-06-30 2011-01-05 华为技术有限公司 数据流控制方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1649377B1 (en) * 2003-07-11 2013-02-13 CA, Inc. Method and system for monitoring a computer system for dynamic reconfiguration
US7392159B2 (en) * 2005-06-20 2008-06-24 International Business Machines Corporation Method and apparatus of capacity learning for computer systems and applications
US8245239B2 (en) * 2005-07-06 2012-08-14 Honeywell International Inc. Deterministic runtime execution environment and method
US8635308B2 (en) * 2008-02-26 2014-01-21 Sap Ag Performance optimization of business processes by stochastic environmental changes
US8219999B2 (en) * 2008-07-31 2012-07-10 International Business Machines Corporation System and method for determining a number of threads to maximize utilization of a system
US8224934B1 (en) * 2009-03-09 2012-07-17 Netapp, Inc. Running third party applications as embedded agents in a storage management server
US8103769B1 (en) * 2009-09-03 2012-01-24 Amazon Technologies, Inc. Dynamic isolation of shared resources
US20110239195A1 (en) * 2010-03-25 2011-09-29 Microsoft Corporation Dependence-based software builds

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862381A (en) * 1996-11-26 1999-01-19 International Business Machines Corporation Visualization tool for graphically displaying trace data
US6477561B1 (en) * 1998-06-11 2002-11-05 Microsoft Corporation Thread optimization
US20020174389A1 (en) * 2001-05-18 2002-11-21 Fujitsu Limited Event measuring apparatus and method, computer readable record medium in which an event measuring program is stored, and computer system
US20040194075A1 (en) * 2003-03-26 2004-09-30 Sun Microsystems, Inc., A Delaware Corporation Dynamic distributed make
US20070018601A1 (en) * 2005-06-29 2007-01-25 International Business Machines Corporation Method to automatically detect and predict performance shortages of databases
CN101334741A (zh) * 2007-06-27 2008-12-31 国际商业机器公司 对应用进行建模的方法及对应用进行部署的系统
CN101938396A (zh) * 2009-06-30 2011-01-05 华为技术有限公司 数据流控制方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838632A (zh) * 2012-11-21 2014-06-04 阿里巴巴集团控股有限公司 数据查询方法及装置
CN103838632B (zh) * 2012-11-21 2017-04-12 阿里巴巴集团控股有限公司 数据查询方法及装置
CN114443151A (zh) * 2022-01-14 2022-05-06 山东云海国创云计算装备产业创新中心有限公司 一种轮询方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
US20120254822A1 (en) 2012-10-04

Similar Documents

Publication Publication Date Title
CN102708006A (zh) 处理优化负载调整
US11294714B2 (en) Method and apparatus for scheduling task, device and medium
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
CN101354661B (zh) 基于工作负载的时间特征优化os调度决策的系统和方法
US20150121387A1 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium
US8424007B1 (en) Prioritizing tasks from virtual machines
KR101686010B1 (ko) 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법
CN106557369A (zh) 一种多线程的管理方法及系统
US20070150759A1 (en) Method and apparatus for providing for detecting processor state transitions
Xu et al. Adaptive task scheduling strategy based on dynamic workload adjustment for heterogeneous Hadoop clusters
CN102779075A (zh) 一种在多处理器核系统中进行调度的方法、装置及系统
CN108173840B (zh) 基于云平台的智能物流终端集成系统
CN102096603A (zh) MapReduce系统中的作业分解控制方法及调度节点设备
CN111176806B (zh) 一种业务处理方法、装置及计算机可读存储介质
RU2453901C2 (ru) Аппаратно-реализуемый способ планирования заданий (варианты), система планирования заданий и машиночитаемый носитель
US9176783B2 (en) Idle transitions sampling with execution context
Obukhova et al. Diagnostics of power consumption of a mobile device multi-core processor with detail of each core utilization
CN100538649C (zh) 用于分发分派窗内的未使用的处理器循环的方法和系统
EP3311270A1 (en) Virtual machine management method and apparatus including idling and scheduling of virtual processors
US20090328039A1 (en) Deterministic Real Time Business Application Processing In A Service-Oriented Architecture
CN110837415B (zh) 一种基于risc-v多核处理器的线程调度方法和装置
CN109426556B (zh) 一种进程调度方法和装置
CN113986097B (zh) 一种任务调度的方法、装置及电子设备
CN117093335A (zh) 分布式存储系统的任务调度方法及装置
CN101349975A (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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150623

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150623

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

AD01 Patent right deemed abandoned

Effective date of abandoning: 20170908

AD01 Patent right deemed abandoned