CN111831390B - 服务器的资源管理方法、装置及服务器 - Google Patents

服务器的资源管理方法、装置及服务器 Download PDF

Info

Publication number
CN111831390B
CN111831390B CN202010017727.6A CN202010017727A CN111831390B CN 111831390 B CN111831390 B CN 111831390B CN 202010017727 A CN202010017727 A CN 202010017727A CN 111831390 B CN111831390 B CN 111831390B
Authority
CN
China
Prior art keywords
resource
container
contention
server
contending
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
CN202010017727.6A
Other languages
English (en)
Other versions
CN111831390A (zh
Inventor
吴锋
张伟平
阮帅
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.)
Beijing Didi Infinity Technology and Development Co Ltd
Original Assignee
Beijing Didi Infinity Technology and Development Co Ltd
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 Beijing Didi Infinity Technology and Development Co Ltd filed Critical Beijing Didi Infinity Technology and Development Co Ltd
Priority to CN202010017727.6A priority Critical patent/CN111831390B/zh
Publication of CN111831390A publication Critical patent/CN111831390A/zh
Application granted granted Critical
Publication of CN111831390B publication Critical patent/CN111831390B/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供一种服务器的资源管理方法、装置及服务器,该方法包括:获取每个容器针对资源的争抢信息,根据所述N个容器各自针对所述资源的争抢信息,获取所述服务器对应的资源争抢信息,所述资源争抢信息用于指示所述资源的被争抢程度;根据所述服务器对应的资源争抢信息,对所述服务器的资源进行管理。由于资源争抢信息能够反映资源的被争抢程度,因此,可以根据资源的被争抢程度,采用不同的管理方案对服务器的资源进行管理,保证了采用的资源管理方案是符合当前的资源争抢程度的,能够提高资源管理的针对性和精准性,从而最大程度的避免服务器资源争抢问题,提升容器的运行性能。

Description

服务器的资源管理方法、装置及服务器
技术领域
本发明涉及云计算技术领域,尤其涉及一种服务器的资源管理方法、装置及服务器。
背景技术
容器是一种内核轻量级的操作***层虚拟化技术。容器技术是指在操作***层上创建一个个容器,这些容器共享下层的操作***内核和底层资源。启动容器不需要启动整个操作***,因此,容器具有易部署、快启动、开销小、易迁移等优点。
通常一个物理机上会部署多个容器。这些容器会共享物理机的各种底层资源。实际应用过程中,在多个容器同时运行时,物理机的底层资源经常会在多个容器之间发生争抢,从而影响容器的运行性能。
发明内容
本发明提供一种服务器的资源管理方法、装置及服务器,能够对服务器的资源争抢情况进行监控和管理,提高容器的运行性能。
第一方面,本申请提供一种服务器的资源管理方法,所述服务器中部署有N个容器,所述N个容器共享所述服务器中的资源,N为大于1的整数;所述方法包括:
获取每个容器针对所述资源的争抢信息,所述争抢信息用于指示所述容器在运行过程中所述资源受到争抢的时长占比;
根据所述N个容器各自针对所述资源的争抢信息,获取所述服务器对应的资源争抢信息,所述资源争抢信息用于指示所述资源的被争抢程度;
根据所述服务器对应的资源争抢信息,对所述服务器的资源进行管理。
一种可能的实现方式中,所述争抢信息包括多个争抢参数,每个所述争抢参数对应一个争抢类型,每个所述争抢参数用于指示所述容器在运行过程中所述资源受到对应争抢类型的争抢的时长占比;
相应的,所述服务器对应的资源争抢信息包括与每个所述争抢类型对应的资源争抢参数;所述根据所述服务器对应的资源争抢信息,对所述服务器的资源进行管理,包括:
根据每个争抢类型对应的资源争抢参数,确定与该争抢类型对应的管理方案,并根据所述管理方案对所述服务器的资源进行管理。
一种可能的实现方式中,所述获取每个容器针对所述资源的争抢信息,包括:
针对每个容器,在预设时长内对该容器的运行情况进行周期性采样,确定该容器在每个周期内针对所述资源发生的争抢类型;
根据确定出的该容器在每个周期内针对所述资源发生的争抢类型,获取所述预设时长内该容器针对所述资源发生每个争抢类型的争抢的周期数;
根据发生每个争抢类型的争抢的周期数、周期时长以及所述预设时长,获取该容器的每个争抢类型对应的争抢参数。
一种可能的实现方式中,所述争抢类型包括:内部争抢和外部争抢;其中,
所述内部争抢是指所述资源受到本容器内的其他任务的抢占;所述外部争抢是指所述资源受到本容器之外的其他容器的抢占。
一种可能的实现方式中,所述争抢类型包括:内部争抢、第一外部争抢、以及第二外部争抢;其中,
所述内部争抢是指所述资源受到本容器内的其他任务的抢占;所述第一外部争抢是指在所述资源的总体使用率小于预设阈值的情况下,所述资源受到本容器之外的其他容器的抢占;所述第二外部争抢是指在所述资源的总体使用率大于或者等于所述预设阈值的情况下,所述资源受到本容器之外的其他容器的抢占。
一种可能的实现方式中,当所述资源为CPU资源时,所述确定该容器在每个周期内针对所述资源发生的争抢类型,包括:
根据该容器在每个周期内的运行状态,获取该容器在每个周期内的CPU资源等待参数,所述CPU资源等待参数包括:内部等待时长和外部等待时长;
根据所述CPU资源等待参数,确定该容器在每个周期内针对CPU资源发生的争抢类型;
其中,所述内部等待时长是指该容器内的任务由于该容器内的其他任务在运行而等待CPU资源的时长,所述外部等待时长是指该容器内的任务由于其他容器内的任务在运行而等待CPU资源的时长。
一种可能的实现方式中,所述根据该容器在每个周期内的运行状态,获取该容器在每个周期内的CPU资源等待参数,包括:
根据该容器和/或该容器中的各任务的运行状态的切换时间点,将每个周期划分为多个时间片;
初始化所述CPU资源等待参数中的各时长参数;
针对每个时间片,执行时长累加操作,得到该容器在每个周期内经过累加后的CPU资源等待参数;其中,所述时长累加操作包括:
获取该容器在该时间片内的运行状态;
根据不同运行状态与所述CPU资源等待参数中的各时长参数之间的对应关系,将该时间片的时长累加至与所述运行状态对应的时长参数。
一种可能的实现方式中,所述资源为下述中的任一种:中央处理器CPU资源、内存资源、输入输出I/O资源、网络资源。
一种可能的实现方式中,所述服务器为单物理机服务器,或者,所述服务器为包括多个物理机的集群服务器。
第二方面,本申请提供一种服务器的资源管理装置,所述服务器中部署有N个容器,所述N个容器共享所述服务器中的资源,N为大于1的整数;所述装置包括:
第一获取模块,用于获取每个容器针对所述资源的争抢信息,所述争抢信息用于指示所述容器在运行过程中所述资源受到争抢的时长占比;
第二获取模块,用于根据所述N个容器各自针对所述资源的争抢信息,获取所述服务器对应的资源争抢信息,所述资源争抢信息用于指示所述资源的被争抢程度;
处理模块,用于根据所述服务器对应的资源争抢信息,对所述服务器的资源进行管理。
一种可能的实现方式中,所述争抢信息包括多个争抢参数,每个所述争抢参数对应一个争抢类型,每个所述争抢参数用于指示所述容器在运行过程中所述资源受到对应争抢类型的争抢的时长占比;
相应的,所述服务器对应的资源争抢信息包括与每个所述争抢类型对应的资源争抢参数;所述处理模块具体用于根据每个争抢类型对应的资源争抢参数,确定与该争抢类型对应的管理方案,并根据所述管理方案对所述服务器的资源进行管理。
一种可能的实现方式中,所述第一获取模块具体用于:
针对每个容器,在预设时长内对该容器的运行情况进行周期性采样,确定该容器在每个周期内针对所述资源发生的争抢类型;
根据确定出的该容器在每个周期内针对所述资源发生的争抢类型,获取所述预设时长内该容器针对所述资源发生每个争抢类型的争抢的周期数;
根据发生每个争抢类型的争抢的周期数、周期时长以及所述预设时长,获取该容器的每个争抢类型对应的争抢参数。
一种可能的实现方式中,所述争抢类型包括:内部争抢和外部争抢;其中,所述内部争抢是指所述资源受到本容器内的其他任务的抢占;所述外部争抢是指所述资源受到本容器之外的其他容器的抢占。
一种可能的实现方式中,所述争抢类型包括:内部争抢、第一外部争抢、以及第二外部争抢;其中,所述内部争抢是指所述资源受到本容器内的其他任务的抢占;所述第一外部争抢是指在所述资源的总体使用率小于预设阈值的情况下,所述资源受到本容器之外的其他容器的抢占;所述第二外部争抢是指在所述资源的总体使用率大于或者等于所述预设阈值的情况下,所述资源受到本容器之外的其他容器的抢占。
一种可能的实现方式中,当所述资源为CPU资源时,所述第一获取模块具体用于:
根据该容器在每个周期内的运行状态,获取该容器在每个周期内的CPU资源等待参数,所述CPU资源等待参数包括:内部等待时长和外部等待时长;
根据所述CPU资源等待参数,确定该容器在每个周期内针对CPU资源发生的争抢类型;
其中,所述内部等待时长是指该容器内的任务由于该容器内的其他任务在运行而等待CPU资源的时长,所述外部等待时长是指该容器内的任务由于其他容器内的任务在运行而等待CPU资源的时长。
一种可能的实现方式中,所述第一获取模块具体用于:
根据该容器和/或该容器中的各任务的运行状态的切换时间点,将每个周期划分为多个时间片;
初始化所述CPU资源等待参数中的各时长参数;
针对每个时间片,执行时长累加操作,得到该容器在每个周期内经过累加后的CPU资源等待参数;其中,所述时长累加操作包括:
获取该容器在该时间片内的运行状态;
根据不同运行状态与所述CPU资源等待参数中的各时长参数之间的对应关系,将该时间片的时长累加至与所述运行状态对应的时长参数。
一种可能的实现方式中,所述资源为下述中的任一种:中央处理器CPU资源、内存资源、输入输出I/O资源、网络资源。
一种可能的实现方式中,所述服务器为单物理机服务器,或者,所述服务器为包括多个物理机的集群服务器。
第三方面,本申请提供一种服务器,包括:存储器、处理器以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行如第一方面任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的方法。
本申请提供的服务器的资源管理方法、装置及服务器,该方法包括:获取每个容器针对资源的争抢信息,根据所述N个容器各自针对所述资源的争抢信息,获取所述服务器对应的资源争抢信息,所述资源争抢信息用于指示所述资源的被争抢程度;根据所述服务器对应的资源争抢信息,对所述服务器的资源进行管理。由于资源争抢信息能够反映资源的被争抢程度,因此,可以根据资源的被争抢程度,采用不同的管理方案对服务器的资源进行管理,保证了采用的资源管理方案是符合当前的资源争抢程度的,能够提高资源管理的针对性和精准性,从而最大程度的避免服务器资源争抢问题,提升容器的运行性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的一种可能的应用场景示意图;
图2为本申请实施例的另一种可能的应用场景示意图;
图3为本申请一个实施例提供的服务器的资源管理方法的流程示意图;
图4为本申请另一个实施例提供的服务器的资源管理方法的流程示意图;
图5为本申请一个实施例提供的对CPU资源进行周期性采样并确定每个周期内的争抢类型的流程示意图;
图6为本申请一个实施例提供的服务器的资源管理装置的结构示意图;
图7为本申请一个实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为本申请实施例的一种可能的应用场景示意图。如图1所示,本实施例的应用场景可以为单物理机服务器的场景。单物理机上部署有多个容器。容器是一种内核轻量级的操作***层虚拟化技术,参见图1,容器没有自己的操作***,多个容器共享物理机的操作***内核以及底层资源。每个容器中可以运行有一个或者多个任务(也可以称为进程)。
图2为本申请实施例的另一种可能的应用场景示意图。如图2所示,本实施例的应用场景还可以为包括多个物理机的集群服务器的场景。集群服务器中包括多个物理机,每个物理机上部署有多个容器。每个物理机的架构可以如图1所示,这里不再赘述。
上述两种应用场景中,由于多个容器共享物理机的底层资源,当多个容器同时运行时,可能会出现底层资源被多个容器同时请求使用的情况(本实施例中,将其称为资源争抢)。当出现资源争抢时,会影响到容器的运行性能。例如:会使得容器中运行的业务时延增加,降低业务服务质量。因此,需要对服务器中的资源争抢情况进行监控,以便及时获知服务器的资源争抢情况,并根据资源争抢情况对服务器的资源进行调整和管理。
目前,Linux基础指标监控能够对物理机或容器在某个资源维度的使用量进行监控,但是,监控结果不能很好的反映该资源维度的争抢严重程度。以CPU资源为例进行举例,假设一个***中只有一个CPU,若***中只有一个进程一直在运行,则监控结果显示CPU资源的使用率为100%。该情况下,CPU资源不会发生争抢,并且CPU资源得到完美利用。如果***中有两个进程同时运行,则监控结果依然显示CPU资源的使用率是100%。但是,该情况下,CPU资源可能已经发生了比较严重的争抢,可见,根据目前的CPU资源的监控结果并不能反映出资源的争抢情况。
基于图1和图2所示的容器应用场景中,由于多个容器共享服务器的底层资源,资源争抢情况更加普遍。因此,如何对基于容器架构的服务器的资源争抢情况进行监控,并根据监控结果对服务器的资源进行管理,成为亟待解决的问题。
为此,本申请提供一种服务器的资源管理方法,能够实时监控各容器对资源的争抢信息,并根据各容器的监控结果获取服务器的资源被争抢程度,进而根据资源被争抢程度,对服务器的资源进行管理,从而最大程度的避免服务器资源争抢问题,提升容器的运行性能。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图3为本申请一个实施例提供的服务器的资源管理方法的流程示意图。本实施例的方法可以由图1或者图2所示的服务器执行。服务器中部署有N个容器,所述N个容器共享服务器中的资源,N为大于1的整数。
如图3所示,本实施例的方法包括:
S301:获取每个容器针对所述资源的争抢信息,所述争抢信息用于指示所述容器在运行过程中所述资源受到争抢的时长占比。
本实施例的方法可适用于对服务器中的任何一种资源进行监控和管理。本实施例中的资源可以为下述中的任意一种:中央处理器(Central Processing Unit,CPU)资源、内存资源、输入输出(Input/Output,I/O)资源、网络资源等。
本实施例中,可以通过对每个容器的运行状态进行监控,得到每个容器针对所述资源的争抢信息,争抢信息指示的是该容器在运行过程中所述资源受到争抢的时长占比。示例性的,争抢信息可以采用如下公式表示:
例如,容器A在运行过程中,在1分钟内有30秒的时间CPU资源受到争抢,则容器A针对CPU资源的争抢信息可以为0.5。
需要说明的是,本实施例所述的“资源受到争抢”可以是指资源被多个容器请求使用,还可以是指资源被一个容器中的多个任务请求使用。可见,本实施例中的争抢可以包括一个或者多个类型的争抢。
相应的,当本实施例的争抢包括多个类型的争抢时,S201中获取的争抢信息中可以包括多个争抢参数,每个争抢参数对应一个争抢类型,即每个争抢参数指示该容器在运行过程中所述资源受到对应争抢类型的争抢的时长占比。
示例性的,假设争抢类型划分为内部争抢和外部争抢。其中,所述内部争抢是指所述资源受到本容器内的其他任务的抢占;所述外部争抢是指所述资源受到本容器之外的其他容器的抢占。这样,S201中获取的争抢信息中可以包括:内部争抢对应的争抢参数(可以简称为内部争抢参数)和外部争抢对应的争抢参数(可以简称为外部争抢参数),内部争抢参数指示容器在运行过程中资源受到内部争抢的时长占比,外部争抢参数指示容器在运行过程中资源受到外部争抢的时长占比。
能够理解,通过将争抢类型划分为内部争抢和外部争抢,使得根据各容器的争抢信息可以准确识别出资源争抢是来自于容器内部的任务之间,还是来自于其它容器,从而有利于后续步骤准确地对服务器的资源争抢情况进行监控和评估。
需要说明的是,本实施例对于争抢类型的划分不作具体限定,上述划分仅为一种可能的示例,还可以存在其他的划分方式,具体可以参见后续实施例的详细描述。
S302:根据所述N个容器各自针对所述资源的争抢信息,获取所述服务器对应的资源争抢信息,所述资源争抢信息用于指示所述资源的被争抢程度。
不难理解,S301中获取到每个容器针对资源的争抢信息后,将N个容器各自针对资源的争抢信息进行聚合,可以得到服务器对应的资源争抢信息。由于本实施例中的服务器可以为单物理机服务器,还可以为集群服务器。因此,S302中可以获取单物理机维度的资源争抢信息,还可以是集群维度的资源争抢信息。
示例性的,服务器对应的资源争抢信息可以采用如下公式表示:
能够理解,资源争抢信息在一定程度上可以反映资源的被争抢程度,资源争抢信息的大小与资源的被争抢程度程正比,即资源争抢信息越大,表明资源被争抢的越严重,资源争抢信息越小,表明资源被争抢的越不严重。
能够理解,当本实施例的争抢包括多个类型的争抢时,服务器对应的资源争抢信息可以包括与每个争抢类型对应的资源争抢参数。例如:服务器的资源争抢信息可以包括:内部争抢对应的资源争抢参数和外部争抢对应的资源争抢参数。这样,服务器的资源争抢信息可以直观反映出资源受到内部争抢的严重程度以及受到外部争抢的严重程度。
S303:根据所述服务器对应的资源争抢信息,对所述服务器的资源进行管理。
本实施例中,服务器可以为单物理机服务器,还可以为集群服务器。因此,本实施例对服务器的资源进行管理时,可以是单机级别的管理,还可以是集群级别的管理。
由于资源争抢信息能够反映资源的被争抢程度,因此,可以根据资源的被争抢程度,采用不同的管理方案对服务器的资源进行管理,例如,对各容器的资源分配情况进行调整。这样,保证了采用的资源管理方案是符合当前的资源争抢程度的,因此,能够提高资源管理的针对性和精准性。
当本实施例的争抢包括多个类型的争抢时,服务器对应的资源争抢信息包括与每个争抢类型对应的资源争抢参数,这时,可以根据每个争抢类型对应的资源争抢参数,确定与该争抢类型对应的管理方案,并根据确定出的管理方案对服务器的资源进行管理。示例性的,以争抢划分为内部争抢和外部争抢为例,可以根据内部争抢对应的资源争抢参数,确定出用于解决内部争抢的管理方案,并采用该方案对服务器的资源进行管理;根据外部争抢对应的资源争抢参数,确定出用于解决外部争抢的管理方案,并采用该方案对服务器的资源进行管理。
需要说明的是,本实施例对于具体的管理方案不作具体限定,几种可能的实施方式可以参见后续实施例的详细描述。
本实施例提供的服务器的资源管理方法,包括:获取每个容器针对资源的争抢信息,根据所述N个容器各自针对所述资源的争抢信息,获取所述服务器对应的资源争抢信息,所述资源争抢信息用于指示所述资源的被争抢程度;根据所述服务器对应的资源争抢信息,对所述服务器的资源进行管理。本实施例中,由于资源争抢信息能够反映资源的被争抢程度,因此,可以根据资源的被争抢程度,采用不同的管理方案对服务器的资源进行管理,保证了采用的资源管理方案是符合当前的资源争抢程度的,能够提高资源管理的针对性和精准性,从而最大程度的避免服务器资源争抢问题,提升容器的运行性能。
图4为本申请另一个实施例提供的服务器的资源管理方法的流程示意图。本实施例对图3所示的实施例进行进一步细化。如图4所示,本实施例的方法,包括:
S401:针对每个容器,在预设时长内对该容器的运行情况进行周期性采样,确定该容器在每个周期内针对所述资源发生的争抢类型。
本实施例中,争抢类型可以包括:内部争抢、第一外部争抢(也可以称为资源充足情况下的外部争抢)、以及第二外部争抢(也可以称为资源不足情况下的外部争抢)。其中,所述内部争抢是指所述资源受到本容器内的其他任务的抢占;所述第一外部争抢是指在所述资源的总体使用率小于预设阈值的情况下,所述资源受到本容器之外的其他容器的抢占;所述第二外部争抢是指在所述资源的总体使用率大于或者等于所述预设阈值的情况下,所述资源受到本容器之外的其他容器的抢占。
本实施例中,在将争抢类型划分为内部争抢和外部争抢的基础上,对外部争抢进行进一步的细分,即分为第一外部争抢和第二外部争抢。这样可以精确判断出外部争抢是否是由于本机资源不足导致的。示例性的,以CPU资源为例,假设预设阈值为60%(即,当CPU资源的总体使用率小于60%时,认为单机资源充足能够满足业务服务质量的需求,当CPU资源的总体使用率大于或者等于60%时,认为单机资源不足以满足业务服务质量的需求),则在CPU资源总体使用率小于60%的情况下发生的外部争抢称为第一外部争抢,在CPU资源总体使用率大于或者等于60%的情况下发生的外部争抢称为第二外部争抢。
本实施例中,通过周期性地对容器的运行情况进行采样,可以确定出该容器在每个周期内针对所述资源发生的争抢类型。能够理解,对于不同的资源,对容器的运行情况进行采样并确定该资源的争抢类型的原理是类似的,本实施例对此不一一详述。下面仅以CPU资源为例,结合图5描述通过周期性采样确定争抢类型的具体实施过程。
图5为本申请一个实施例提供的对CPU资源进行周期性采样并确定每个周期内的争抢类型的流程示意图。如图5所示,本实施例的方法包括:
S4011:根据该容器和/或该容器中的各任务的运行状态的切换时间点,将每个周期划分为多个时间片。
示例性的,所述切换时间点可以为下述中的任一:(1)容器中的任务进入或者离开运行队列;(2)容器中的任务开始在CPU上运行或者结束在CPU上的运行;(3)容器的运行状态切换为节流态(throttle)或者非节流态(unthrottle);(4)容器节点本身进入或者离开运行队列;(5)容器在CPU上运行或者结束在CPU上运行。
能够理解,各时间片的时长可以相同,也可以不同。本实施例对应各时间片的时长不作具体限定。
S4012:初始化CPU资源等待参数中的各时长参数。
其中,所述CPU资源等待参数包括:内部等待时长和外部等待时长。所述内部等待时长是指该容器内的任务由于该容器内的其他任务在运行而等待CPU资源的时长。所述外部等待时长是指该容器内的任务由于其他容器内的任务在运行而等待CPU资源的时长。
S4013:针对每个时间片,执行时长累加操作,得到该容器在每个周期内经过累加后的CPU资源等待参数。
其中,所述时长累加操作包括:获取该容器在该时间片内的运行状态;根据不同运行状态与所述CPU资源等待参数中的各时长参数之间的对应关系,将该时间片的时长累加至与所述运行状态对应的时长参数。
示例性的,以其中一个时间片的处理过程为例,假设该时间片的时长为delta_time。具体的时长累加过程可以如下:
如果容器处于节流(throttle)状态,则将(delta_time*容器内部任务数)累加到“内部等待时长”。
如果容器处于运行状态,则将(delta_time*(容器内部任务数-1))累加到“内部等待时长”。
如果容器处于其他状态,则则将(delta_time*容器内部任务数)累加到外部等待时长。
S4014:根据每个周期内累加后的CPU资源等待参数,确定该容器在每个周期内针对CPU资源发生的争抢类型。
示例性的,可以根据下述公式确定出不同争抢类型对应的指标:
其中,总体等待时长是指容器在该周期内处于等待CPU资源状态的时长,能够理解,总体等待时长=内部等待时长+外部等待时长。总体运行时长是指容器在该周期内处于占用CPU资源状态的时长。
可以预先设置阈值t,当总体争抢指标大于该阈值t时,认为该周期内发生了争抢,当总体争抢指标小于阈值t时,认为该周期内没有发生争抢。进一步的,在确定该周期内发生了争抢时,还可以根据上述各指标之间的大小关系确定出在该周期内占主导地位的争抢类型。例如:若内部争抢指标大于外部争抢指标,则说明该周期内占主导地位的争抢类型为内部争抢,因此,可以确定该容器在该周期内针对CPU资源的争抢类型为内部争抢。若内部争抢指标小于或等于外部争抢指标,则说明该周期内占主导地位的争抢类型为外部争抢。
进一步的,在确定某个周期内的争抢类型为外部争抢时,可以根据该周期内CPU资源的总体使用率来确定该外部争抢为第一外部争抢还是第二外部争抢。示例性的,若该周期内CPU资源的总体使用率小于预设阈值(例如60%),则确定该周期内的争抢类型为第一外部争抢,若该周期内CPU资源的总体使用率大于或者等于预设阈值(例如60%),则确定该周期内的争抢类型为第二争抢类型。
下面结合一个举例进行说明,为了描述方便,该举例中仅为内部争抢和外部争抢为例进行示意。假设一个物理机上部署了四个容器,分别为A、B、C、D。采用本实施例的方法,能够分别得到容器在各个资源维度的争抢指标。以CPU资源为例,假设四个容器的外部争抢指标分别为80%、30%、20%、25%,内部争抢指标分别为20%、50%、20%、10%。根据上述的争抢指标可以得出:容器A受到的CPU资源争抢大部分来自外部,因此,可以对其他容器进行更强的隔离或直接将容器A迁移至其他物理机。容器B受到CPU资源争抢大部分来自内部,因此,可以增加该容器的CPU数量或优化该容器里运行的程序。容器C和容器D受到的CPU资源的内部争抢和外部争抢都不明显,说明这两个容器目前运行的状态良好。
S402:根据确定出的该容器在每个周期内针对所述资源发生的争抢类型,获取所述预设时长内该容器针对所述资源发生每个争抢类型的争抢的周期数。
示例性的,可以确定出在预设时长内,容器针对资源发生“内部争抢”的周期数、发生“第一外部争抢”的周期数、发生“第二外部争抢”的周期数。当然,还可以确定出容器针对资源发生争抢的周期数(相当于上述三种类型对应的周期数之和)。
S403:根据发生每个争抢类型的争抢的周期数、周期时长以及所述预设时长,获取该容器的每个争抢类型对应的争抢参数。
其中,争抢参数指示的是容器在运行过程中所述资源受到对应争抢类型的争抢的时长占比。为了描述方面,内部争抢对应的争抢参数可以简称为内部争抢参数;第一外部争抢对应的争抢参数可以简称为第一外部争抢参数;第二外部争抢对应的争抢参数可以简称为第二外部争抢参数。各个争抢参数可以根据如下公式得到:
能够理解,上述各个争抢参数可以表示资源受争抢的程度,争抢越严重,业务受影响的就越严重,导致对外提供的服务受损。例如,内部争抢参数表示资源在容器内部发生争抢的严重程度,能够反映容器自身各个任务相互之间的争抢程度。外部争抢参数表示容器的资源被外部其他容器争抢的严重程度,能够反映其他容器对本容器的争抢程度。
S404:针对每个争抢类型,对N个容器的该争抢类型对应的争抢参数进行聚合,获取所述服务器的该争抢类型对应的资源争抢参数。
本实施例中,可以按照单物理机维度和集群维度对多个容器的争抢参数进行聚合。为了描述方面,将内部争抢对应的资源争抢参数记为S1;将第一外部争抢对应的资源争抢参数记为S2,将第二外部争抢对应的资源争抢参数记为S3。示例性的,各资源争抢参数可以参见下述公式:
/>
当然,还可以获取服务器对应的总体资源争抢参数,相当于上述各资源争抢参数之和,示例性的:
S405:根据每个争抢类型对应的资源争抢参数,确定与该争抢类型对应的管理方案,并根据所述管理方案对所述服务器的资源进行管理。
下面结合单物理机服务器场景和集群服务器场景,分别说明在不同场景下如何降低服务器的资源争抢参数,从而保障服务器中各容器的业务服务质量。
在单物理机服务器场景中,针对上述的三种争抢类型可以分别采取如下管理方案:
(1)降低内部争抢对应的资源争抢参数S1的管理方案:A、对容器进行资源扩容,或者增加运行容器的实例个数;B、优化业务软件逻辑,避免在同一时刻产生大量线程导致瞬间需要大量的资源。
(2)降低第一外部争抢对应的资源争抢参数S2的管理方案:A、对容器的业务服务建立优先级机制,给重要的业务服务设置高优先级,非重要的业务服务设置低优先级;B、根据各容器对应的争抢参数,动态的调整资源的分配,确保重要服务获得充足的资源,从而降低外部争抢的资源争抢参数;C、优化内核资源调度算法,加强负载均衡能力。
(3)降低第二外部争抢对应的资源争抢参数S3的管理方案:A、找到总体资源争抢参数S较低的物理机。B、通过容器的迁移技术将外部争抢参数较高的容器业务迁移到上面这个物理机上,达到降低外部争抢的目的。
在集群服务器场景中,针对上述的三种争抢类型可以分别采用如下管理方案:
(1)降低内部争抢对应的资源争抢参数S1的管理方案:A、对容器进行资源扩容,或者增加运行容器的实例个数;B、优化业务软件逻辑,避免在同一时刻产生大量线程导致瞬间需要大量的资源。
(2)降低第一外部争抢对应的资源争抢参数S2的管理方案:A、根据各个容器对资源的争抢参数进行分析,得到容器的资源画像,对资源需求不同的容器进行合理的混部,能从源头上避免资源争抢的发生。
(3)降低第二外部争抢对应的资源争抢参数S3的管理方案:A、这种情况下主要争抢来自外部,但是集群整体资源已经不足,因此需要对集群进行扩容,加入更多的物理机到集群中提供服务。
本实施例提供的服务器的资源管理方法,能够监控识别到服务器的资源发生内部争抢、第一外部争抢和第二外部争抢的情况,从而能够采用针对性方案对服务器的资源进行管理,从而最大程度降低资源争抢情况,提高容器的运行性能。
图6为本申请一个实施例提供的服务器的资源管理装置的结构示意图。本实施例的装置可以为软件和/或硬件的形式,本实施例的装置可以设置在服务器中。所述服务器中部署有N个容器,所述N个容器共享所述服务器中的资源,N为大于1的整数。
如图6所示,本实施例提供的服务器的资源管理装置600,包括:第一获取模块601、第二获取模块602和处理模块603。其中,
第一获取模块601,用于获取每个容器针对所述资源的争抢信息,所述争抢信息用于指示所述容器在运行过程中所述资源受到争抢的时长占比;
第二获取模块602,用于根据所述N个容器各自针对所述资源的争抢信息,获取所述服务器对应的资源争抢信息,所述资源争抢信息用于指示所述资源的被争抢程度;
处理模块603,用于根据所述服务器对应的资源争抢信息,对所述服务器的资源进行管理。
一种可能的实现方式中,所述争抢信息包括多个争抢参数,每个所述争抢参数对应一个争抢类型,每个所述争抢参数用于指示所述容器在运行过程中所述资源受到对应争抢类型的争抢的时长占比;
相应的,所述服务器对应的资源争抢信息包括与每个所述争抢类型对应的资源争抢参数;所述处理模块603具体用于根据每个争抢类型对应的资源争抢参数,确定与该争抢类型对应的管理方案,并根据所述管理方案对所述服务器的资源进行管理。
一种可能的实现方式中,所述第一获取模块601具体用于:
针对每个容器,在预设时长内对该容器的运行情况进行周期性采样,确定该容器在每个周期内针对所述资源发生的争抢类型;
根据确定出的该容器在每个周期内针对所述资源发生的争抢类型,获取所述预设时长内该容器针对所述资源发生每个争抢类型的争抢的周期数;
根据发生每个争抢类型的争抢的周期数、周期时长以及所述预设时长,获取该容器的每个争抢类型对应的争抢参数。
一种可能的实现方式中,所述争抢类型包括:内部争抢和外部争抢;其中,所述内部争抢是指所述资源受到本容器内的其他任务的抢占;所述外部争抢是指所述资源受到本容器之外的其他容器的抢占。
一种可能的实现方式中,所述争抢类型包括:内部争抢、第一外部争抢、以及第二外部争抢;其中,所述内部争抢是指所述资源受到本容器内的其他任务的抢占;所述第一外部争抢是指在所述资源的总体使用率小于预设阈值的情况下,所述资源受到本容器之外的其他容器的抢占;所述第二外部争抢是指在所述资源的总体使用率大于或者等于所述预设阈值的情况下,所述资源受到本容器之外的其他容器的抢占。
一种可能的实现方式中,当所述资源为CPU资源时,所述第一获取模块601具体用于:
根据该容器在每个周期内的运行状态,获取该容器在每个周期内的CPU资源等待参数,所述CPU资源等待参数包括:内部等待时长和外部等待时长;
根据所述CPU资源等待参数,确定该容器在每个周期内针对CPU资源发生的争抢类型;
其中,所述内部等待时长是指该容器内的任务由于该容器内的其他任务在运行而等待CPU资源的时长,所述外部等待时长是指该容器内的任务由于其他容器内的任务在运行而等待CPU资源的时长。
一种可能的实现方式中,所述第一获取模块601具体用于:
根据该容器和/或该容器中的各任务的运行状态的切换时间点,将每个周期划分为多个时间片;
初始化所述CPU资源等待参数中的各时长参数;
针对每个时间片,执行时长累加操作,得到该容器在每个周期内经过累加后的CPU资源等待参数;其中,所述时长累加操作包括:
获取该容器在该时间片内的运行状态;
根据不同运行状态与所述CPU资源等待参数中的各时长参数之间的对应关系,将该时间片的时长累加至与所述运行状态对应的时长参数。
一种可能的实现方式中,所述资源为下述中的任一种:中央处理器CPU资源、内存资源、输入输出I/O资源、网络资源。
一种可能的实现方式中,所述服务器为单物理机服务器,或者,所述服务器为包括多个物理机的集群服务器。
本实施例提供的服务器的资源管理装置,可用于执行如上述任一方法实施例中的技术方案,其实现原理和技术效果类似,此处不作赘述。
图7为本申请一个实施例提供的服务器的结构示意图。本实施例的服务器可以为单物理机服务器,还可以为包括多个物理机的集群服务器。如图7所示,本实施例的服务器700,包括:处理器701以及存储器702;其中,存储器702,用于存储计算机程序;处理器701,用于执行存储器存储的计算机程序,以实现上述实施例中的服务器的资源管理方法。具体可以参见前述方法实施例中的相关描述。
可选地,存储器702既可以是独立的,也可以跟处理器701集成在一起。
当所述存储器702是独立于处理器701之外的器件时,所述服务器700还可以包括:总线703,用于连接所述存储器702和处理器701。
本实施例提供的服务器,可用于执行上述任一方法实施例中的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序用于实现如上任一方法实施例中的技术方案。
本发明实施例还提供一种芯片,包括:存储器、处理器以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行上述任一方法实施例中的技术方案。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本发明附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (20)

1.一种服务器的资源管理方法,其特征在于,所述服务器中部署有N个容器,所述N个容器共享所述服务器中的资源,N为大于1的整数;所述方法包括:
获取每个容器针对所述资源的争抢信息,所述争抢信息用于指示所述容器在运行过程中所述资源受到争抢的时长占比;所述时长占比是指所述容器中资源受到争抢的时长与所述容器运行时长之间的比值;所述争抢信息包括多个争抢参数,每个所述争抢参数对应一个争抢类型,每个所述争抢参数用于指示所述容器在运行过程中所述资源受到对应争抢类型的争抢的时长占比;
根据所述N个容器各自针对所述资源的争抢信息,获取所述服务器对应的资源争抢信息,所述资源争抢信息用于指示所述资源的被争抢程度;
根据所述服务器对应的资源争抢信息,对所述服务器的资源进行管理;
其中,所述获取每个容器针对所述资源的争抢信息,包括:
针对每个容器,在预设时长内对该容器的运行情况进行周期性采样,确定该容器在每个周期内针对所述资源发生的争抢类型;
根据确定出的该容器在每个周期内针对所述资源发生的争抢类型,获取所述预设时长内该容器针对所述资源发生每个争抢类型的争抢的周期数;
根据发生每个争抢类型的争抢的周期数、周期时长以及所述预设时长,获取该容器的每个争抢类型对应的争抢参数。
2.根据权利要求1所述的方法,其特征在于,所述服务器对应的资源争抢信息包括与每个所述争抢类型对应的资源争抢参数;所述根据所述服务器对应的资源争抢信息,对所述服务器的资源进行管理,包括:
根据每个争抢类型对应的资源争抢参数,确定与该争抢类型对应的管理方案,并根据所述管理方案对所述服务器的资源进行管理。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
针对每个争抢类型,对N个容器的该争抢类型对应的争抢参数进行聚合,获取所述服务器的该争抢类型对应的资源争抢参数。
4.根据权利要求1所述的方法,其特征在于,所述争抢类型包括:内部争抢和外部争抢;其中,
所述内部争抢是指所述资源受到本容器内的其他任务的抢占;所述外部争抢是指所述资源受到本容器之外的其他容器的抢占。
5.根据权利要求1所述的方法,其特征在于,所述争抢类型包括:内部争抢、第一外部争抢、以及第二外部争抢;其中,
所述内部争抢是指所述资源受到本容器内的其他任务的抢占;所述第一外部争抢是指在所述资源的总体使用率小于预设阈值的情况下,所述资源受到本容器之外的其他容器的抢占;所述第二外部争抢是指在所述资源的总体使用率大于或者等于所述预设阈值的情况下,所述资源受到本容器之外的其他容器的抢占。
6.根据权利要求1所述的方法,其特征在于,当所述资源为CPU资源时,所述确定该容器在每个周期内针对所述资源发生的争抢类型,包括:
根据该容器在每个周期内的运行状态,获取该容器在每个周期内的CPU资源等待参数,所述CPU资源等待参数包括:内部等待时长和外部等待时长;
根据所述CPU资源等待参数,确定该容器在每个周期内针对CPU资源发生的争抢类型;
其中,所述内部等待时长是指该容器内的任务由于该容器内的其他任务在运行而等待CPU资源的时长,所述外部等待时长是指该容器内的任务由于其他容器内的任务在运行而等待CPU资源的时长。
7.根据权利要求6所述的方法,其特征在于,所述根据该容器在每个周期内的运行状态,获取该容器在每个周期内的CPU资源等待参数,包括:
根据该容器和/或该容器中的各任务的运行状态的切换时间点,将每个周期划分为多个时间片;
初始化所述CPU资源等待参数中的各时长参数;
针对每个时间片,执行时长累加操作,得到该容器在每个周期内经过累加后的CPU资源等待参数;其中,所述时长累加操作包括:
获取该容器在该时间片内的运行状态;
根据不同运行状态与所述CPU资源等待参数中的各时长参数之间的对应关系,将该时间片的时长累加至与所述运行状态对应的时长参数。
8.根据权利要求1至5任一项所述的方法,其特征在于,所述资源为下述中的任一种:中央处理器CPU资源、内存资源、输入输出I/O资源、网络资源。
9.根据权利要求1至5任一项所述的方法,其特征在于,所述服务器为单物理机服务器,或者,所述服务器为包括多个物理机的集群服务器。
10.一种服务器的资源管理装置,其特征在于,所述服务器中部署有N个容器,所述N个容器共享所述服务器中的资源,N为大于1的整数;所述装置包括:
第一获取模块,用于获取每个容器针对所述资源的争抢信息,所述争抢信息用于指示所述容器在运行过程中所述资源受到争抢的时长占比;所述时长占比是指所述容器中资源受到争抢的时长与所述容器运行时长之间的比值;所述争抢信息包括多个争抢参数,每个所述争抢参数对应一个争抢类型,每个所述争抢参数用于指示所述容器在运行过程中所述资源受到对应争抢类型的争抢的时长占比;
第二获取模块,用于根据所述N个容器各自针对所述资源的争抢信息,获取所述服务器对应的资源争抢信息,所述资源争抢信息用于指示所述资源的被争抢程度;
处理模块,用于根据所述服务器对应的资源争抢信息,对所述服务器的资源进行管理;
所述第一获取模块具体用于:
针对每个容器,在预设时长内对该容器的运行情况进行周期性采样,确定该容器在每个周期内针对所述资源发生的争抢类型;
根据确定出的该容器在每个周期内针对所述资源发生的争抢类型,获取所述预设时长内该容器针对所述资源发生每个争抢类型的争抢的周期数;
根据发生每个争抢类型的争抢的周期数、周期时长以及所述预设时长,获取该容器的每个争抢类型对应的争抢参数。
11.根据权利要求10所述的装置,其特征在于,所述服务器对应的资源争抢信息包括与每个所述争抢类型对应的资源争抢参数;所述处理模块具体用于:
根据每个争抢类型对应的资源争抢参数,确定与该争抢类型对应的管理方案,并根据所述管理方案对所述服务器的资源进行管理。
12.根据权利要求11所述的装置,其特征在于,所述第一获取模块具体还用于:
针对每个争抢类型,对N个容器的该争抢类型对应的争抢参数进行聚合,获取所述服务器的该争抢类型对应的资源争抢参数。
13.根据权利要求10所述的装置,其特征在于,所述争抢类型包括:内部争抢和外部争抢;其中,
所述内部争抢是指所述资源受到本容器内的其他任务的抢占;所述外部争抢是指所述资源受到本容器之外的其他容器的抢占。
14.根据权利要求10所述的装置,其特征在于,所述争抢类型包括:内部争抢、第一外部争抢、以及第二外部争抢;其中,
所述内部争抢是指所述资源受到本容器内的其他任务的抢占;所述第一外部争抢是指在所述资源的总体使用率小于预设阈值的情况下,所述资源受到本容器之外的其他容器的抢占;所述第二外部争抢是指在所述资源的总体使用率大于或者等于所述预设阈值的情况下,所述资源受到本容器之外的其他容器的抢占。
15.根据权利要求10所述的装置,其特征在于,当所述资源为CPU资源时,所述第一获取模块具体用于:
根据该容器在每个周期内的运行状态,获取该容器在每个周期内的CPU资源等待参数,所述CPU资源等待参数包括:内部等待时长和外部等待时长;
根据所述CPU资源等待参数,确定该容器在每个周期内针对CPU资源发生的争抢类型;
其中,所述内部等待时长是指该容器内的任务由于该容器内的其他任务在运行而等待CPU资源的时长,所述外部等待时长是指该容器内的任务由于其他容器内的任务在运行而等待CPU资源的时长。
16.根据权利要求15所述的装置,其特征在于,所述第一获取模块具体用于:
根据该容器和/或该容器中的各任务的运行状态的切换时间点,将每个周期划分为多个时间片;
初始化所述CPU资源等待参数中的各时长参数;
针对每个时间片,执行时长累加操作,得到该容器在每个周期内经过累加后的CPU资源等待参数;其中,所述时长累加操作包括:
获取该容器在该时间片内的运行状态;
根据不同运行状态与所述CPU资源等待参数中的各时长参数之间的对应关系,将该时间片的时长累加至与所述运行状态对应的时长参数。
17.根据权利要求10至14任一项所述的装置,其特征在于,所述资源为下述中的任一种:中央处理器CPU资源、内存资源、输入输出I/O资源、网络资源。
18.根据权利要求10至14任一项所述的装置,其特征在于,所述服务器为单物理机服务器,或者,所述服务器为包括多个物理机的集群服务器。
19.一种服务器,其特征在于,包括:存储器、处理器以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行如权利要求1至9任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的方法。
CN202010017727.6A 2020-01-08 2020-01-08 服务器的资源管理方法、装置及服务器 Active CN111831390B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010017727.6A CN111831390B (zh) 2020-01-08 2020-01-08 服务器的资源管理方法、装置及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010017727.6A CN111831390B (zh) 2020-01-08 2020-01-08 服务器的资源管理方法、装置及服务器

Publications (2)

Publication Number Publication Date
CN111831390A CN111831390A (zh) 2020-10-27
CN111831390B true CN111831390B (zh) 2024-04-16

Family

ID=72913367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010017727.6A Active CN111831390B (zh) 2020-01-08 2020-01-08 服务器的资源管理方法、装置及服务器

Country Status (1)

Country Link
CN (1) CN111831390B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569895A (zh) * 2016-10-24 2017-04-19 华南理工大学 一种基于容器的多租户大数据平台构建方法
WO2018040750A1 (zh) * 2016-08-31 2018-03-08 华为技术有限公司 一种配置方法、装置和数据处理服务器
CN108769254A (zh) * 2018-06-25 2018-11-06 星环信息科技(上海)有限公司 基于抢占式调度的资源共享使用方法、***及设备
CN109582436A (zh) * 2018-10-15 2019-04-05 上海交通大学 基于容器集群平台的细粒度抢占式资源调度***及方法
CN110032441A (zh) * 2018-11-22 2019-07-19 阿里巴巴集团控股有限公司 提升服务器性能的方法及装置和电子设备
WO2019170084A1 (zh) * 2018-03-07 2019-09-12 华为技术有限公司 抢占信息的传输方法、设备及***
CN110324262A (zh) * 2018-03-30 2019-10-11 华为技术有限公司 一种资源抢占的方法及装置
CN110515704A (zh) * 2019-08-30 2019-11-29 广东浪潮大数据研究有限公司 基于Kubernetes***的资源调度方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018040750A1 (zh) * 2016-08-31 2018-03-08 华为技术有限公司 一种配置方法、装置和数据处理服务器
CN106569895A (zh) * 2016-10-24 2017-04-19 华南理工大学 一种基于容器的多租户大数据平台构建方法
WO2019170084A1 (zh) * 2018-03-07 2019-09-12 华为技术有限公司 抢占信息的传输方法、设备及***
CN110324262A (zh) * 2018-03-30 2019-10-11 华为技术有限公司 一种资源抢占的方法及装置
CN108769254A (zh) * 2018-06-25 2018-11-06 星环信息科技(上海)有限公司 基于抢占式调度的资源共享使用方法、***及设备
WO2020000944A1 (zh) * 2018-06-25 2020-01-02 星环信息科技(上海)有限公司 基于抢占式调度的资源共享使用方法、***及设备
CN109582436A (zh) * 2018-10-15 2019-04-05 上海交通大学 基于容器集群平台的细粒度抢占式资源调度***及方法
CN110032441A (zh) * 2018-11-22 2019-07-19 阿里巴巴集团控股有限公司 提升服务器性能的方法及装置和电子设备
CN110515704A (zh) * 2019-08-30 2019-11-29 广东浪潮大数据研究有限公司 基于Kubernetes***的资源调度方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
多租户集群中基于服务水平目标的调度机制;杜雄杰;王旻;汤学海;张章;;计算机应用(04);全文 *
数据库资源自适应调整优化研究;黄嘉东;佘俊;;信息通信(07);全文 *

Also Published As

Publication number Publication date
CN111831390A (zh) 2020-10-27

Similar Documents

Publication Publication Date Title
US7865686B2 (en) Virtual computer system, and physical resource reconfiguration method and program thereof
JP5040773B2 (ja) メモリバッファ割当装置およびプログラム
US8869161B2 (en) Characterization and assignment of workload requirements to resources based on predefined categories of resource utilization and resource availability
US9098337B2 (en) Scheduling virtual central processing units of virtual machines among physical processing units
US7487317B1 (en) Cache-aware scheduling for a chip multithreading processor
CN109992366B (zh) 任务调度方法及调度装置
CN105389211B (zh) 适用于numa架构的内存分配方法及延时感知-内存分配装置
US7818747B1 (en) Cache-aware scheduling for a chip multithreading processor
CN103458036A (zh) 一种集群文件***的访问装置和方法
US9612867B2 (en) Apparatus and method for data partition and allocation in heterogeneous multi-processor environment
CN109308220B (zh) 共享资源分配方法及装置
KR101140914B1 (ko) 컴퓨팅 자원들을 제어하는 기술
CN112860387A (zh) 分布式任务调度方法、装置、计算机设备及存储介质
CN112764904A (zh) 基于多任务***中防止低优先级任务饿死的方法
CN109450803B (zh) 流量调度方法、装置和***
US20190286582A1 (en) Method for processing client requests in a cluster system, a method and an apparatus for processing i/o according to the client requests
CN116149846A (zh) 一种应用性能优化方法、装置、电子设备及存储介质
US9128754B2 (en) Resource starvation management in a computer system
US20090165004A1 (en) Resource-aware application scheduling
CN111831390B (zh) 服务器的资源管理方法、装置及服务器
CN111400241B (zh) 数据重构方法和装置
US6915516B1 (en) Apparatus and method for process dispatching between individual processors of a multi-processor system
US9619277B2 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method
US20210019159A1 (en) Workload placement using conflict cost
CN114077493A (zh) 一种资源分配方法及相关设备

Legal Events

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