WO2019011262A1 - 分配资源的方法和装置 - Google Patents

分配资源的方法和装置 Download PDF

Info

Publication number
WO2019011262A1
WO2019011262A1 PCT/CN2018/095229 CN2018095229W WO2019011262A1 WO 2019011262 A1 WO2019011262 A1 WO 2019011262A1 CN 2018095229 W CN2018095229 W CN 2018095229W WO 2019011262 A1 WO2019011262 A1 WO 2019011262A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
resource
time period
resource utilization
resources
Prior art date
Application number
PCT/CN2018/095229
Other languages
English (en)
French (fr)
Inventor
冯雪冬
夏海
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2019011262A1 publication Critical patent/WO2019011262A1/zh

Links

Images

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/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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]

Definitions

  • the present application relates to the field of computers, and in particular to a method and apparatus for allocating resources in the field of computers.
  • the network that provides the resources is called the "cloud.”
  • clouds that is, clouds available to public users
  • users can use the container deployment service provided by the public cloud or the built-in container deployment service.
  • a user can select a certain number of fixed-size virtual machines to create a virtual machine cluster according to virtual machine specifications, user resource requirements, and expected resource utilization, and complete the container cluster according to the container application orchestration file in the created virtual machine cluster. deploy.
  • the actual operation of the cloud is complex and variable.
  • the user resource requirement is not the same as the actual resource occupied by the container.
  • the actual capacity of the virtual machine may be different from its nominal value. This makes the cloud usually not reach the actual operation. Expected resource utilization to the user.
  • the present application provides a method and apparatus for allocating resources, determining resources allocated to nodes according to user resource requirements and expected resource utilization ratios of operators, so that user resource requirements and resources allocated to nodes The ratio is at or near the expected resource utilization, thereby reducing the cost of the operator while meeting the needs of the user.
  • a first aspect provides a method for allocating resources, the method comprising: determining a resource demand quantity of a first node; determining resources allocated to the first node according to a resource demand quantity of the first node and a preset expected resource utilization rate So that the ratio of the resource demand of the first node to the resource allocated to the first node corresponds to the expected resource utilization.
  • the determining the resource requirement of the first node includes: determining, according to the resource usage of the first node, the resource usage of the first node in the second time period, where the first time period is located in the second Before the time.
  • the device for allocating resources may estimate the resource usage of the first node in a future period, so that resources may be allocated to the first node in advance, and the reliability of the first node is improved.
  • the first time period is in a first time period
  • the second time period is in a second time period, where the position of the first time period in the first time period and the position of the second time period in the second time period are correspond.
  • the device for allocating resources may use the rule that the user uses the resources of the first node to determine the resource demand for the first node in a future period of time, and apply for or allocate resources for the user in advance, thereby avoiding the temporary User traffic caused by a node that cannot be allocated to resources in time is affected.
  • the method further includes: performing K adjustments on the resources allocated to the first node according to the resource requirement amount of the first node and the preset expected resource utilization, where K is a non-negative integer.
  • the device that allocates the resource may adjust the resource of the first node, so that the resource utilization rate can be met while satisfying the user demand. Expected value.
  • K is less than or equal to a preset number of times threshold.
  • the resource is allocated even if the current actual resource utilization is different from the expected resource utilization.
  • the device does not adjust the resources of the first node, so that the stability of the network where the first node is located due to frequent resource adjustment can be avoided.
  • the preset resource utilization rate includes a first resource utilization threshold and a second resource utilization threshold, where the resource requirement amount corresponding to the first resource utilization threshold is u1, and the second resource utilization threshold corresponds to The resource demand is u2, and u1 is greater than u2, and the resources allocated to the first node are determined according to the resource requirement of the first node and the preset expected resource utilization, including:
  • the resource utilization ratio is expected to be a utilization interval.
  • the utilization interval corresponds to two resource demand thresholds.
  • the resource demand of the first node is greater than or equal to the upper threshold
  • the resource redundancy of the first node is insufficient
  • the resource allocated to the first node needs to be increased
  • the resource demand of the first node is less than or equal to the lower threshold
  • the resource allocated to the first node is reduced.
  • the resource requirement of the first node is between the upper threshold and the lower threshold, the resource of the first node does not need to be adjusted, so that the network where the first node is located due to frequent resource adjustment can be avoided.
  • the stability is degraded.
  • an apparatus for allocating resources may implement the functions in the method involved in the foregoing first aspect, and the functions may be implemented by hardware or by executing corresponding software by hardware.
  • the hardware or software includes one or more corresponding units or modules of the above functions.
  • the apparatus includes a processor and a communication interface configured to support the apparatus to perform the corresponding functions of the above methods.
  • the communication interface is used to support communication between the device and other devices or network elements.
  • the apparatus can also include a memory for coupling with the processor that retains the program instructions and data necessary for the apparatus to perform the functions described above.
  • a computer storage medium for storing computer software instructions for use in a device for allocating resources as described above, comprising a program for performing the first aspect described above.
  • a computer program product comprising: computer program code for causing a device for allocating resources to perform the method of the first aspect when the computer program code is run by a device that allocates resources.
  • a chip in which instructions are stored that, when run on a device that allocates resources, cause the device to control the method of allocating resources to perform the method of the first aspect.
  • FIG. 1 is a schematic diagram of a network architecture to which the present application is applied;
  • Figure 2 is a diagram showing the relationship between actual resource utilization and time of a node
  • FIG. 3 is a schematic diagram of a network architecture provided by the present application.
  • FIG. 4 is a schematic diagram of a method for allocating resources provided by the present application.
  • FIG. 5 is a schematic flowchart of a method for deploying a container provided by the present application.
  • FIG. 6 is a schematic flowchart of a method for running monitoring provided by the present application.
  • FIG. 7 is a schematic flow chart of a method for elastic stretching provided by the present application.
  • FIG. 8 is a schematic structural diagram of a possible resource optimization center provided by the present application.
  • FIG. 9 is a schematic structural diagram of another possible resource optimization center provided by the present application.
  • the present application can be applied to various cloud network architectures, for example, a network architecture based on an application container engine (eg, Docker), a virtual machine monitor (VMM) based network architecture, or other virtualized network architecture, below
  • an application container engine eg, Docker
  • VMM virtual machine monitor
  • the solution of the application is described by taking the network architecture based on the application container engine as an example.
  • a container is a unified view of a layer, wherein the top layer is a read-write layer, and the remaining layers are read-only layers. In addition to the bottom layer, the other layers will have a pointer to the next layer. These layers are implementation details of the container and are accessible on the host.
  • the unified file system technology can integrate different layers into a file system, providing a unified perspective for these layers, thus hiding the existence of multiple layers. From the user's point of view, there is only one file system. . Therefore, in essence, a container is software code that can implement a specific function. For example, an application (application) is usually composed of multiple containers.
  • the container needs to run in an operating system (such as Windows, Linux, IOS, Android), and the operating system can be installed in a virtual machine or in a physical machine. Therefore, as the operating environment of the container, the nodes may be virtual machines and physical machines, but the definition of the nodes is not limited thereto, and the environments in which other containers can run may be referred to as nodes.
  • an operating system such as Windows, Linux, IOS, Android
  • FIG. 1 shows a schematic diagram of a network architecture to which the present application is applied.
  • the user can determine the virtual machine specifications and charging conditions that can be provided by the public cloud through the virtual machine specification list (that is, the node specification).
  • the operation and maintenance personnel select a certain number according to the resource requirements and expected resource utilization of the application.
  • the virtual machine creates a cluster, and then the container deployment service completes the deployment of the container cluster based on the container application orchestration file in the created cluster.
  • the public cloud can be either a cloud providing infrastructure services, that is, an infrastructure as a service (IaaS) cloud, or a cloud providing platform services, that is, platform as a service (platform as a service,
  • the PaaS) cloud can also be a cloud that provides software services, that is, a software as a service (SaaS) cloud.
  • the actual running status of the application is complex and variable.
  • the actual capacity of the virtual machine may differ from its declared value. Therefore, in order to ensure that the application can run normally, users usually apply for more resources. However, the resources actually used by the application are usually changed with time. As shown in Figure 2, the actual resource utilization rate is relatively low most of the time, far from the expected resource utilization rate, and only reaches the peak business hours. Resource utilization is expected, resulting in wasted resources and increased user costs.
  • One solution is to monitor the running status of the application in real time after the application is deployed, calculate the gap between the application real-time resource utilization and the expected resource utilization, and re-schedule the application accordingly.
  • the rescheduling is limited to The container is re-scheduled in the current virtual machine cluster. Since the current virtual machine cluster is fixed, the number and specifications of the virtual machines included in the virtual machine cluster are fixed. Therefore, the rescheduling cannot meet the application requirements in many cases. Especially when the VM cluster size is small, or when the correlation between multiple containers is complex, the effect of rescheduling on improving resource utilization is even less obvious.
  • the present application adds a resource optimization center based on the network architecture shown in FIG. 1, and the resource optimization center allocates files according to user-defined expected resource utilization and container application, and nodes provided by the public cloud.
  • the specification list and node specification capabilities calculate the node specification, quantity, and node-to-container deployment relationship closest to the expected resource utilization, and feed this information back to the container deployment service, which requests the public cloud to specify the quantity and Specify the node for the specification and complete the container deployment.
  • the resource optimization center can obtain a node specification list from the public cloud, and can monitor the resource usage of each node through the container deployment service, and obtain the actual resource usage of the container in real time, thereby being able to self-contain according to the container requirement.
  • the specification of the node is defined or updated such that the ratio of the actual resource usage of the application to the total resource amount of the node (ie, the actual resource utilization of the node) is close to the expected resource utilization.
  • the resource optimization center may be an entity device having the above functions, or may be a logical entity running on a certain node.
  • FIG. 4 shows a method for allocating resources provided by the present application.
  • the method 400 includes:
  • S420 Determine a resource allocated to the first node according to the resource requirement quantity of the first node and a preset expected resource utilization rate, so that the resource requirement quantity of the first node is allocated to the first node.
  • the ratio of resources corresponds to the expected resource utilization.
  • Method 400 can be performed by any device or module capable of executing S410 and S420, for example, method 400 can be performed by the resource optimization center illustrated in FIG.
  • the first node is any node that provides services for the user, and the resource requirement may be the actual resource usage of the current first node, or the resource requirement reported by the user, or may be estimated by the resource optimization center. The resources that the user needs to use at the first node for some time to come.
  • the expected resource utilization rate is a value set by the user in advance, and is a ratio of the resources of the first node that the user desires to be used.
  • the resource optimization center can monitor the resource demand of the first node in real time, and determine the resources allocated to the first node according to the monitoring result.
  • the resource usage of the first node is relatively tight, and the number of resources may be increased.
  • the number of virtual machine clusters of a node can also increase the specifications of the virtual machine cluster of the first node and redeploy the container, so that the resource redundancy of the first node can be improved, and the traffic peak will not occur because The lack of resources on the first node causes the business to be affected.
  • the first node when the ratio of the resource requirement of the first node to the current resource total of the first node is lower than the expected resource utilization, the first node has more idle resources, and the virtuality of the first node may be reduced.
  • the number of clusters can also reduce the size of the virtual machine cluster of the first node and redeploy the container, so that the cost can be reduced while meeting the user's needs.
  • the above example is only an example.
  • the method for adjusting resources of the first node is not limited in this application.
  • the ratio of the resource demand of the first node to the resource allocated to the first node corresponds to the expected resource utilization rate, which may be understood as the actual resource utilization rate equal to the expected resource utilization rate, and may also be It is understood to make the actual resource utilization greater or less than the expected resource utilization.
  • the resource requirements of the container are complex and variable, it is difficult to make the actual resource utilization and the expected resource utilization completely equal by adjusting the resources of the first node, and the difference between the actual resource utilization rate and the expected resource utilization rate can be limited to a preset. Within the scope, it can reduce the difficulty of resource adjustment.
  • the determining the resource requirement of the first node includes:
  • S411 Determine, according to the resource usage amount of the first node in the first time period, a resource usage amount of the first node in a second time period, where the first time period is located before the second time period.
  • a learning period (the first period belongs to the learning period) may be set, and the resource optimization center does not perform the resource optimization operation during the learning period, and the statistical learning period is adopted.
  • the resource usage of the first node determines the rule of the user using the resource of the first node, and determines the resource requirement of the user for the first node in a future period according to the statistically obtained rule, so that it is possible to determine in advance whether the resource needs to be used for the first node. Optimize operations.
  • the resource optimization center may schedule resources of other nodes in advance to cope with the first node.
  • the peak demand for resources can improve the reliability of the first node.
  • the resource optimization center determines, according to the statistical rule, that there is a valley value of the resource demand of the first node in the second time period, it may determine in advance that the resource resources of the first node are allocated to other resources in the second time period. Multi-node, which improves resource utilization.
  • the resource optimization center may not be correct.
  • the first node performs resource optimization operations, thereby improving the stability of the first node.
  • the first time period is in a first time period
  • the second time period is in a second time period
  • the position of the first time period in the first time period and the second time period are in the The position within the second time period corresponds.
  • the learning period may be 7 days, one cycle per day (ie, the first time period), and the resource optimization center determines the daily 9:00 to 10:00 (ie, the first) according to the statistics of the resource demand of the first node every day.
  • the resource optimization center may increase the allocation to the first node every day (ie, the second time period) from 9:00 to 10:00 (ie, the second time period).
  • Resources may also increase the resources allocated to the first node every day from 8:50 to 10:00 (ie, the second time period) after the learning period, thereby avoiding that the first node cannot be allocated resources in time due to the peak traffic volume. The resulting user business is affected.
  • the resource optimization center can also set a learning period at regular intervals, so that the accuracy of estimating the resource demand of the first node can be continuously improved.
  • the method 400 further includes:
  • the K is less than or equal to a preset number of times threshold.
  • the resource optimization center also no longer adjusts the resources of the first node, thereby avoiding the stability degradation of the network where the first node is located due to frequent adjustment of resources.
  • the preset expected resource utilization includes a first resource utilization threshold and a second resource utilization threshold, where the resource requirement amount corresponding to the first resource utilization threshold is u1, and the second resource utilization The resource demand corresponding to the rate threshold is u2, and u1 is greater than u2.
  • Determining the resources allocated to the first node according to the resource requirement of the first node and the preset expected resource utilization including:
  • the resource utilization ratio is expected to be a utilization interval.
  • the utilization interval corresponds to two resource demand thresholds.
  • the resource demand of the first node is greater than or equal to the upper threshold
  • the resource redundancy of the first node is insufficient
  • the resource allocated to the first node needs to be increased
  • the resource demand of the first node is less than or equal to the lower threshold
  • the resource allocated to the first node is reduced.
  • the resource requirement of the first node is between the upper threshold and the lower threshold, the resource of the first node does not need to be adjusted, so that the network where the first node is located due to frequent resource adjustment can be avoided.
  • the stability is degraded.
  • FIG. 5 shows a schematic flow chart of a method for deploying a container provided by the present application.
  • the method 500 includes:
  • the resource optimization center obtains a node specification capability and a node specification list from the IaaS according to the configured IaaS information.
  • the node specification list reflects the specification and number of virtual machine clusters of the current node, and the node specification capability reflects the ability of the IaaS to allow the user to customize the node specifications.
  • S505 The user sets a desired resource utilization rate, a learning period, and a suppression period to the resource optimization center.
  • the content and meaning of the foregoing parameters are as shown in Table 1.
  • the user submits a container application orchestration description file, and the content of the file description includes but is not limited to: a requirement of resources of various containers and a requirement of affinity and anti-affinity between the containers.
  • the container deployment service After parsing the application orchestration description file, the container deployment service sends information about the resource requirements, the number of deployments, the affinity between the containers, and the anti-affinity requirements of the various containers to the resource optimization center.
  • the resource optimization center calculates the node specification capability, the node specification list, the expected resource utilization rate, the number of deployments of various containers, the demand for resources, and the requirements of affinity and anti-affinity between the containers. Add new node deployment information.
  • a piece of deployment information can include the following:
  • the container deployment service requests the IaaS to specify the node according to the deployment information fed back by the resource optimization center, and deploys the container to the specified node.
  • FIG. 6 shows a schematic flow chart of a method for running monitoring provided by the present application.
  • the method 600 includes:
  • the resource optimization center continuously collects the resource usage of the container and the node through the resource monitoring unit pre-deployed on each node, and periodically calculates the actual resource utilization rate of the system, and continuously learns.
  • the resource optimization center finds that the actual resource utilization of the node is outside the threshold interval of expected resource utilization, and the resource optimization operation has not been performed during the suppression period, then the resource optimization operation is started, and the following three options may be selected as needed. Any of the operations (ie, performing S603 and S604):
  • the system needs to be able to flexibly flex. That is, when the service peaks, the node resources and the container instance are added to keep the service normal; when the service is low, the node resources and the container instance need to be reduced to improve the resource utilization.
  • FIG. 7 shows a schematic flow chart of a method for elastic stretching provided by the present application.
  • the method 700 includes:
  • the container deployment service delivers the expansion information to the resource optimization center according to the pre-defined expansion policy.
  • the expansion information includes but is not limited to: the number of containers to be added and their instances.
  • the resource optimization center integrates actual resource utilization, expected resource utilization, container resource requirement, affinity and anti-affinity, and number of new container instances, and calculates container deployment information and feeds back to the container deployment service.
  • Container deployment information can be, for example, one of the following two types of information:
  • the container deployment service applies to the IaaS to update or expand the expansion node according to the container deployment information fed back by the resource optimization center, and completes the expansion deployment.
  • the container deployment service delivers the reduced content information to the resource optimization center according to the preset shrinkage policy.
  • the retraction information includes but is not limited to: the container to be deleted and the number of instances thereof.
  • the resource optimization center integrates actual resource utilization, expected resource utilization, container resource requirements, affinity and anti-affinity, and the number of deleted container instances, and calculates container deployment information.
  • the container deployment information may be, for example, an update node that deletes a container instance on the specified node.
  • the container deployment service deletes the container instance on the specified node according to the container deployment information fed back by the resource optimization center, and completes the shrinking operation.
  • the resource optimization center reserves resources in advance of the expected next service peak (that is, the next elastic capacity expansion) based on the historical information of the elastic scalability and actual resource utilization records. That is, the deployment information is reserved for the container deployment service.
  • the reserved deployment information may be, for example, one of the following two types of information:
  • the container deployment service requests the IaaS to reserve resources according to the reserved deployment information, and completes preloading of the specified container image.
  • the resource optimization center may release the reserved resource before the node performs elastic expansion, resulting in failure of the reserved resource.
  • the center determines whether it is necessary to release the resource, wherein the time point T2 is a time point after the time point T1 of the "next elastic expansion".
  • the present application introduces a resource optimization center to replace the traditional manual calculation: according to the expected resource utilization rate of the system, automatically selects the most suitable node for container application deployment in the container application deployment phase; and monitors the actual resource usage of the container application. According to the historical information of the business operation, the resource optimization operation is performed in time, so that the high resource utilization rate close to the expected value can be maintained regardless of the peak, stable or low period of the business, thereby achieving the purpose of cost saving.
  • a device for allocating resources for example, a resource optimization center
  • a device for allocating resources includes a corresponding hardware structure and/or software module for executing each function in order to implement the above functions.
  • the present application can be implemented in a combination of hardware or hardware and computer software in combination with the elements and algorithm steps of the various examples described in the embodiments disclosed herein. Whether a function is implemented in hardware or computer software to drive hardware depends on the specific application and design constraints of the solution. A person skilled in the art can use different methods to implement the described functions for each particular application, but such implementation should not be considered to be beyond the scope of the present application.
  • the present application may divide a functional unit into a device for allocating resources according to the above method example.
  • each functional unit may be divided corresponding to each function, or two or more functions may be integrated into one processing unit.
  • the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit. It should be noted that the division of the unit in the present application is schematic, and is only a logical function division, and the actual implementation may have another division manner.
  • FIG. 8 shows a possible structural diagram of the resource optimization center involved in the above embodiment.
  • the resource optimization center 800 includes a processing unit 802 and a communication unit 803.
  • the processing unit 802 is configured to control management of the actions of the resource optimization center 800, for example, the processing unit 802 is configured to support the resource optimization center 800 to perform S410 of FIG. 4 and/or other processes for the techniques described herein.
  • the communication unit 803 is configured to support communication between the resource optimization center 800 and other network elements, such as communication with a container deployment service.
  • the resource optimization center 800 may also include a storage unit 801 for storing program codes and data of the resource optimization center 800.
  • the processing unit 802 can be a processor or a controller, and can be, for example, a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), and an application-specific integrated circuit (application-specific). Integrated circuit (ASIC), field programmable gate array (FPGA) or other programmable logic device, transistor logic device, hardware component, or any combination thereof. It is possible to implement or carry out the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
  • the processor may also be a combination of computing functions, for example, including one or more microprocessor combinations, a combination of a DSP and a microprocessor, and the like.
  • the communication unit 803 can be a communication interface.
  • the storage unit 801 can be a memory.
  • the resource optimization center involved in the present application may be the resource optimization center shown in FIG.
  • the resource optimization center 900 includes a processor 902, a communication interface 903, and a memory 901.
  • the communication interface 903, the processor 902, and the memory 901 can communicate with each other through an internal connection path to transfer control and/or data signals.
  • the resource optimization center 700 and the resource optimization center 800 provided by the present application determine the resources allocated to the node according to the resource demand of the node and the expected resource utilization rate of the user, so that the actual resource utilization is always close to the expected resource utilization, thereby Cost savings can be achieved while meeting user needs.
  • the size of the sequence number of each process does not mean the order of execution sequence, and the order of execution of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the present application.
  • the steps of a method or algorithm described in connection with the present disclosure may be implemented in a hardware or may be implemented by a processor executing software instructions.
  • the software instructions may be composed of corresponding software modules, which may be stored in a random access memory (RAM), a flash memory, a read only memory (ROM), an erasable programmable read only memory ( Erasable programmable ROM (EPROM), electrically erasable programmable read only memory (EEPROM), registers, hard disk, removable hard disk, compact disk read only (CD-ROM) or any other form of storage medium known in the art.
  • An exemplary storage medium is coupled to the processor to enable the processor to read information from, and write information to, the storage medium.
  • the storage medium can also be an integral part of the processor.
  • the processor and the storage medium can be located in an ASIC. Additionally, the ASIC can be located in a resource optimization center. Of course, the processor and the storage medium can also exist as discrete components in the resource optimization center.
  • the computer program product includes one or more computer instructions.
  • the computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable device.
  • the computer instructions can be stored in or transmitted by a computer readable storage medium.
  • the computer instructions may be from a website site, computer, server or data center via a wired (eg, coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (eg, infrared, wireless, microwave, etc.) Another website site, computer, server, or data center for transmission.
  • the computer readable storage medium can be any available media that can be accessed by a computer or a data storage device such as a server, data center, or the like that includes one or more available media.
  • the usable medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a digital versatile disc (DVD), or a semiconductor medium (eg, a solid state disk (SSD)). Wait.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种分配资源的方法,该方法包括:确定第一节点的资源需求量;根据第一节点的资源需求量和预设的期望资源利用率确定分配给第一节点的资源,以使第一节点的资源需求量与分配给第一节点的资源的比值与所述期望资源利用率相对应。从而可以在满足用户的需求的同时降低成本。

Description

分配资源的方法和装置
本申请要求于2017年7月14日提交中国专利局、申请号为201710576312.0、发明名称为“分配资源的方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机领域,尤其涉及计算机领域中分配资源的方法和装置。
背景技术
提供资源的网络被称为“云”。当前各种公有云(即,可供公共用户使用的云)均仅提供固定规格的虚拟机和/或物理机供用户使用,用户可以使用公有云提供的容器部署服务或者自带的容器部署服务在虚拟机集群内完成容器集群的部署。
例如,用户可以根据虚拟机规格、用户资源需求和期望资源利用率选择一定数量的固定规格的虚拟机创建虚拟机集群,并在创建好的虚拟机集群内,根据容器应用编排文件完成容器集群的部署。
然而,云的实际运行情况是复杂多变的,用户资源需求并不等同于容器实际占用的资源,虚拟机的实际能力与其标称值也可能存在差异,这使得云在实际运行中通常达不到用户的期望资源利用率。
发明内容
有鉴于此,本申请提供了一种分配资源的方法和装置,根据用户的资源需求量和运营商的期望资源利用率确定分配给节点的资源,使得用户的资源需求量与分配给节点的资源的比值达到或接近期望资源利用率,从而在满足用户的需求的同时降低了运营商的成本。
第一方面,提供了一种分配资源的方法,该方法包括:确定第一节点的资源需求量;根据第一节点的资源需求量和预设的期望资源利用率确定分配给第一节点的资源,以使第一节点的资源需求量与分配给第一节点的资源的比值与所述期望资源利用率相对应。从而在满足用户的需求的同时降低了成本。
可选地,确定第一节点的资源需求量,包括:根据第一节点在第一时段的资源使用量确定所述第一节点在第二时段的资源使用量,其中,第一时段位于第二时段之前。
根据本实施例提供的方法,分配资源的装置可以估计出第一节点在未来的时段的资源使用量,从而可以提前为第一节点分配资源,提高第一节点的可靠性。
可选地,第一时段处于第一时间周期,第二时段处于第二时间周期,该第一时段在第一时间周期内的位置与该第二时段在所述第二时间周期内的位置相对应。
分配资源的装置可以根据用户使用第一节点的资源的规律将用户确定未来一段时间内用于对第一节点的资源需求,提前为用户申请或分配资源,从而可以避免因业务量高峰来临时第一节点不能及时分配到资源导致的用户业务受到影响。
可选地,该方法还包括:根据第一节点的资源需求量和预设的期望资源利用率,对分配给所述第一节点的资源进行K次调整,其中,K为非负整数。
当资源需求量与当前第一节点的资源总量的比值不满足期望资源利用率时,分配资源的装置可以对第一节点的资源进行调整,从而可以在满足用户需求的同时使得资源利用率符合期望值。
可选地,K小于或等于预设的次数阈值。
根据本实施例提供的方法,若在一个预设的时间周期内第一节点的资源调整次数已经达到了预设的次数阈值,则即使当前实际资源利用率与期望资源利用率有差异,分配资源的设备也不再调整第一节点的资源,从而可以避免因频繁调整资源导致的第一节点所在网络的稳定性下降。
可选地,预设的期望资源利用率包括第一资源利用率阈值和第二资源利用率阈值,该第一资源利用率阈值对应的资源需求量为u1,该第二资源利用率阈值对应的资源需求量为u2,u1大于u2,根据第一节点的资源需求量和预设的期望资源利用率确定分配给第一节点的资源,包括:
当第一节点的资源需求量大于或等于u1时,确定增加分配给第一节点的资源;或者,
当第一节点的资源需求量小于或等于u2时,确定减小分配给第一节点的资源;或者,
当第一节点的资源需求量大于或等于u2,且小于或等于u1时,确定分配给第一节点的资源不变。
根据本实施例提供的方法,期望资源利用率为一个利用率区间,相应的,该利用率区间对应两个资源需求量阈值,当第一节点的资源需求量大于或等于阈值上限时,说明此时第一节点的资源冗余量不足,需要增加分配给第一节点的资源;当第一节点的资源需求量小于或等于阈值下限时,说明此时第一节点的资源冗余量过剩,需要减少分配给第一节点的资源;当第一节点的资源需求量位于阈值上限和阈值下限之间时,无需调整第一节点的资源,从而可以避免因频繁调整资源导致的第一节点所在网络的稳定性下降。
第二方面,提供了一种分配资源的装置,该装置可以实现上述第一方面所涉及的方法中的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的单元或模块。
在一种可能的设计中,该装置的结构中包括处理器和通信接口,该处理器被配置为支持该装置执行上述方法中相应的功能。该通信接口用于支持该装置与其它装置或网元之间的通信。该装置还可以包括存储器,该存储器用于与处理器耦合,其保存该装置必要的程序指令和数据用于实现上述功能。
第三方面,提供了一种计算机存储介质,用于存储为上述分配资源的装置所用的计算机软件指令,其包含用于执行上述第一方面所设计的程序。
第四方面,提供了一种计算机程序产品,该计算程序产品包括:计算机程序代码,当该计算机程序代码被分配资源的装置运行时,使得分配资源的装置执行第一方面所 涉及的方法。
第五方面,提供了一种芯片,其中存储有指令,当其在分配资源的装置上运行时,使得该芯片控制分配资源的装置执行第一方面的方法。
附图说明
图1是适用本申请的一种网络架构的示意图;
图2是节点的实际资源利用率与时间的关系图;
图3是本申请提供的一种网络架构的示意图;
图4是本申请提供的一种分配资源的方法的示意图;
图5是本申请提供的一种部署容器的方法的示意性流程图;
图6是本申请提供的一种运行监控的方法的示意性流程图;
图7是本申请提供的一种弹性伸缩的方法的示意性流程图;
图8是本申请提供的一种可能的资源优化中心的结构示意图;
图9是本申请提供的另一种可能的资源优化中心的结构示意图。
具体实施方式
本申请可以适用于各种云网络架构,例如,基于应用容器引擎(例如Docker)的网络架构、基于虚拟机监视器(virtual machine monitor,VMM)的网络架构或者其它虚拟化的网络架构中,下面,以基于应用容器引擎的网络架构为例,对本申请的方案进行说明。
为了便于理解本申请,首先对本申请涉及的概念做详细介绍。
容器(container)是一堆层(layer)的统一视角,其中,最上面的一个层为可读可写层(read-write layer),其余的层均为只读层(read-only layer),除了最下面的一个层,其它层都会有一个指针指向下一层。这些层是容器的实现细节,并且能够在主机上访问到。统一文件系统(union file system)技术能够将不同的层整合成一个文件系统,为这些层提供一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。因此,从本质上讲,容器是能够实现特定功能的软件代码,例如,一个应用(application,APP)通常是由多个容器组成。
容器需要在操作系统(例如Windows、Linux、IOS、Android)中运行,操作系统可以安装在虚拟机内,也可以安装在物理机内。因此,作为容器的运行环境,节点可以是虚拟机和物理机,但节点的定义不限于此,其它的容器可以运行的环境均可称为节点。
容器在部署时需要考虑容器的资源需求以及不同容器间的关联性,其中,所谓的部署即为容器选择合适的节点,资源需求即容器正常运行时所需要的计算能力、内存、磁盘和网络带宽等要素,此外,不同容器之间有一定的关联性,在部署时需要考虑这点,例如,有些容器适合部署在同一个节点上,有些容器需要部署在不同的节点上,这些特性即不同容器间的亲和或反亲和特性。可以根据容器应用编排文件确定一个容器的上述信息,并根据节点规格确定一个节点能够提供的资源的类型和大小,从而可 以将容器部署在合适的节点上。
图1示出了适用本申请的一种网络架构示意图。如图1所示,用户可以通过虚拟机规格列表(即,节点规格)确定公有云可以提供的虚拟机规格及收费情况,由运维人员根据应用的资源需求和期望资源利用率选择一定数量的虚拟机创建集群,随后在创建好的集群中由容器部署服务根据容器应用编排文件完成容器集群的部署。其中,公有云既可以是提供基础设施服务的云,即,基础设施即服务(infrastructure as a service,IaaS)云,也可以是提供平台服务的云,即,平台即服务(platform as a service,PaaS)云,还可以是提供软件服务的云,即,软件即服务(software as a service,SaaS)云。
应用的实际运行情况是复杂多变的,虚拟机的实际能力与其宣称值也可能存在差异,因此,为了保证应用能够正常运行,用户通常会申请较多的资源。然而,应用实际使用的资源通常是随时间变化的,如图2所示,实际资源利用率在大部分时间都比较低,远远达不到期望资源利用率,仅在业务高峰时段才会达到期望资源利用率,从而导致了资源浪费以及用户成本的增加。
一种解决方法是在完成应用部署后实时监控应用的运行状态,通过计算评估应用实时资源利用率与期望资源利用率之间的差距,并据此对应用进行重调度,但是,重调度仅限于在当前虚拟机集群内对容器进行重新调度,由于当前虚拟机集群是固定的,其中包括的虚拟机的数量和规格都是固定的,因此,重调度在很多情况下并不能满足应用的需求,尤其是在虚拟机集群规模较小时,或者在多个容器之间的关联性复杂时,重调度在提升资源利用率方面的效果就更加不明显了。
为了提高资源利用率,本申请在图1所示的网络架构的基础上增加了一个资源优化中心,由资源优化中心根据用户定义的期望资源利用率和容器应用编排文件,以及公有云提供的节点规格列表和节点规格能力计算出最接近期望资源利用率的节点规格、数量及节点与容器之间的部署关系,并将这些信息反馈给容器部署服务,由容器部署服务向公有云申请指定数量和指定规格的节点,并完成容器部署。
如图3所示,该资源优化中心能够从公有云获取节点规格列表,并能够通过容器部署服务对各个节点的资源使用情况进行监控,实时获取容器的实际资源使用量,从而可以根据容器需求自定义或者更新节点的规格,使得应用的实际资源使用量与节点的资源总量的比值(即,节点的实际资源利用率)接近期望资源利用率。其中,该资源优化中心可以是具有上述功能的实体设备,也可以是运行在某个节点上的逻辑实体。
图4示出了本申请提供的一种分配资源的方法。该方法400包括:
S410,确定第一节点的资源需求量。
S420,根据所述第一节点的资源需求量和预设的期望资源利用率确定分配给所述第一节点的资源,以使所述第一节点的资源需求量与分配给所述第一节点的资源的比值与所述期望资源利用率相对应。
方法400可以由任意能够执行S410和S420的装置或模块执行,例如,方法400可以由图3所示的资源优化中心执行。
S410中,第一节点为任意一个为用户提供服务的节点,资源需求量可以是当前第 一节点的实际资源使用量,也可以是用户上报的资源需求量,还可以是资源优化中心预估的未来一段时间用户在第一节点需要使用的资源。
S420中,期望资源利用率是用户预先设定的数值,是用户所期望的第一节点的资源被使用的比例。资源优化中心可以实时监控第一节点的资源需求量,并根据监控结果确定分配给第一节点的资源。
例如,当第一节点的资源需求量与第一节点当前的资源总量的比值(即,实际资源利用率)超过期望资源利用率时,说明第一节点的资源使用情况比较紧张,可以增加第一节点的虚拟机集群的数量,也可以增大第一节点的虚拟机集群的规格,并对容器进行重新部署,从而可以提高第一节点的资源冗余,保证业务量高峰出现时不会因为第一节点的资源不足导致业务受到影响。
又例如,当第一节点的资源需求量与第一节点当前的资源总量的比值低于期望资源利用率时,说明第一节点有较多的空闲资源,此时可以减少第一节点的虚拟机集群的数量,也可以缩小第一节点的虚拟机集群的规格,并对容器进行重新部署,从而可以在满足用户需求的同时降低成本。
上述示例仅是举例说明,本申请对调整第一节点的资源的方法不做限定。
S420中,使第一节点的资源需求量与分配给第一节点资源的比值(实际资源利用率)与期望资源利用率相对应,可以理解为使实际资源利用率等于期望资源利用率,也可以理解为使实际资源利用率大于或小于期望资源利用率。
由于容器对资源的需求复杂多变,通过调整第一节点的资源很难使得实际资源利用率与期望资源利用率完全相等,可以限定实际资源利用率与期望资源利用率的差值在一个预设的范围内,从而可以降低资源调整的难度。
可选地,所述确定第一节点的资源需求量,包括:
S411,根据所述第一节点在第一时段的资源使用量确定所述第一节点在第二时段的资源使用量,其中,所述第一时段位于所述第二时段之前。
为了提高资源优化操作(即,调整第一节点的资源)的精确性,可以设置一段学习期(第一时段属于学习期),资源优化中心在学习期内不进行资源优化操作,通过统计学习期内第一节点的资源使用情况确定用户使用第一节点的资源的规律,根据统计得到的规律确定未来一段时间内用户对第一节点的资源需求,从而可以提前确定是否需要对第一节点进行资源优化操作。
例如,若资源优化中心根据统计规律确定第二时段内第一节点的资源需求量会有一个峰值,第一节点需要分配大量资源,则资源优化中心可以提前调度其它节点的资源以应对第一节点的资源需求量峰值,从而可以提高第一节点的可靠性。
又例如,若资源优化中心根据统计规律确定第二时段内第一节点的资源需求量会有一个谷值,则可以提前确定将第一节点的部分资源在第二时段内分配其它资源需求量较多节点,从而提高了资源利用率。
再例如,若资源优化中心根据统计规律确定第二时段内第一节点的资源需求量虽然有变化但变化量不大,现有的第一节点的资源可以满足用户需求,则资源优化中心可以不对第一节点进行资源优化操作,从而提高了第一节点的稳定性。
可选地,所述第一时段处于第一时间周期,所述第二时段处于第二时间周期,所述第一时段在所述第一时间周期内的位置与所述第二时段在所述第二时间周期内的位置相对应。
例如,学习期可以是7天,每天为一个周期(即,第一时间周期),资源优化中心根据每天对第一节点的资源需求量的统计确定每天早上9点到10点(即,第一时段)用户对资源的需求量逐渐加,则经过学习期后,资源优化中心可以在每天(即,第二时间周期)早上9点到10点(即,第二时段)增加分配给第一节点的资源,也可以在学习期后的每天早上8点50至10点(即,第二时段)增加分配给第一节点的资源,从而避免因业务量高峰来临时第一节点不能及时分配到资源导致的用户业务受到影响。
此外,资源优化中心还可以每隔一段时间设置一段学习期,从而可以不断提高预估用户对第一节点的资源需求的准确度。
可选地,方法400还包括:
S430,根据所述第一节点的资源需求量和所述的预设期望资源利用率,对分配给所述第一节点的资源进行K次调整,其中,K为非负整数。
可选地,所述K小于或等于预设的次数阈值。
若在一个预设的时间周期(也可以称为“抑制期”)内第一节点的资源调整次数已经达到了预设的次数阈值,则即使当前实际资源利用率与期望资源利用率有差异,资源优化中心也不再调整第一节点的资源,从而可以避免因频繁调整资源导致的第一节点所在网络的稳定性下降。
可选地,所述预设的期望资源利用率包括第一资源利用率阈值和第二资源利用率阈值,所述第一资源利用率阈值对应的资源需求量为u1,所述第二资源利用率阈值对应的资源需求量为u2,u1大于u2,
所述根据所述第一节点的资源需求量和预设的期望资源利用率确定分配给所述第一节点的资源,包括:
当所述第一节点的资源需求量大于或等于u1时,确定增加分配给所述第一节点的资源;或者,
当所述第一节点的资源需求量小于或等于u2时,确定减小分配给所述第一节点的资源;或者,
当所述第一节点的资源需求量大于或等于u2,且小于或等于u1时,确定分配给所述第一节点的资源不变。
根据本实施例提供的方法,期望资源利用率为一个利用率区间,相应的,该利用率区间对应两个资源需求量阈值,当第一节点的资源需求量大于或等于阈值上限时,说明此时第一节点的资源冗余量不足,需要增加分配给第一节点的资源;当第一节点的资源需求量小于或等于阈值下限时,说明此时第一节点的资源冗余量过剩,需要减少分配给第一节点的资源;当第一节点的资源需求量位于阈值上限和阈值下限之间时,无需调整第一节点的资源,从而可以避免因频繁调整资源导致的第一节点所在网络的稳定性下降。
下面将基于上述的本申请涉及的共性方面,对本申请做进一步详细说明。
图5示出了本申请提供的一种部署容器的方法的示意性流程图。该方法500包括:
S501-S504,资源优化中心根据配置的IaaS信息,从IaaS获取节点规格能力和节点规格列表。其中,节点规格列表反应当前节点的虚拟机集群的规格和数量,节点规格能力反映IaaS是否允许用户自定义节点规格的能力。
S505,用户给资源优化中心设置期望资源利用率、学习期和抑制期,上述参数的内容和含义如表1所示。
表1
Figure PCTCN2018095229-appb-000001
S506,用户提交容器应用编排描述文件,文件描述的内容包括但不限于:各种容器对资源的需求和容器间的亲和性和反亲和性的需求。
S507,容器部署服务解析应用编排描述文件之后,将各种容器对资源的需求、部署数量、容器间的亲和性和反亲和性的需求等信息发送给资源优化中心。
S508,资源优化中心根据节点规格能力、节点规格列表、期望资源利用率、各种容器的部署数量及对资源的需求,及容器间的亲和性和反亲和性的需求等信息,计算得出新增节点部署信息。一条部署信息可以包括以下内容:
表2
Figure PCTCN2018095229-appb-000002
Figure PCTCN2018095229-appb-000003
S509-S510,容器部署服务根据资源优化中心反馈的部署信息向IaaS申请指定规格的节点,并将容器部署到指定节点上。
图6示出了本申请提供的一种运行监控的方法的示意性流程图。该方法600包括:
S601-S602,资源优化中心通过预先部署在各节点上的资源监控单元持续收集容器和节点的资源使用情况,并周期计算系统的实际资源利用率,持续进行学习。
学习期过后,资源优化中心发现节点的实际资源利用率在期望资源利用率的阈值区间外,且在抑制期内尚未进行过资源优化操作,则启动资源优化操作,根据需要,可选择执行下列三种操作中的任意一个(即,执行S603和S604):
(1)新增节点,并将指定容器迁移到新增节点上。
(2)更新节点规格,并将指定容器迁移到更新节点上。
(3)仅更新节点规格。
当资源优化中心发现指定节点上所有的容器都被迁移出去之后,通知容器部署服务将指定节点删除,以节省成本。即,执行S605-S607。
由于指定容器的最大处理能力是固定的,为了应对业务高峰,系统需要具备弹性伸缩的能力。即,在业务高峰时,增加节点资源和容器实例,以保持业务正常;在业务低谷时,则需要减少节点资源和容器实例,以提高资源利用率。
图7示出了本申请提供的一种弹性伸缩的方法的示意性流程图。该方法700包括:
S701,业务高峰时,容器部署服务根据事先设定的扩容策略,将扩容信息下发给资源优化中心。扩容信息包括但不限于:待新增容器及其实例数目。
S702,资源优化中心综合实际资源利用率、期望资源利用率、容器资源需求、亲和性和反亲和性以及新增容器实例数目等信息,计算得出容器部署信息并向容器部署服务反馈上述容器部署信息。该容器部署信息例如可以是下列两种信息中的一种:
a)新增节点,并在指定节点上增加容器实例。
b)更新节点规格,并在指定节点上增加容器实例。
S703-S704,容器部署服务根据资源优化中心反馈的容器部署信息向IaaS申请或更新扩容节点,完成扩容部署。
S705,业务低谷时,容器部署服务根据事先设定的缩容策略,将缩容信息下发给资源优化中心。缩容信息包括但不限于:待删除容器及其实例数目。
S706,资源优化中心综合实际资源利用率、期望资源利用率、容器资源需求、亲和性和反亲和性、及删除容器实例数目等信息,计算得出容器部署信息。该容器部署信息例如可以是:更新节点,删除指定节点上的容器实例。
S707,容器部署服务根据资源优化中心反馈的容器部署信息删除指定节点上的容器实例,完成缩容操作。
S708,扩容时往往需要新增节点,向IaaS申请新增节点速度较慢,特别是新增虚拟机节点用时较长,这样会影响到弹性扩容的速度,难以应对快速到来的业务高峰。资源优化中心根据记录的弹性伸缩和实际资源利用率的历史信息,在预计的下一个业务高峰(即下一次弹性扩容)到来之前提前预留资源,即,向容器部署服务反馈预留部署信息。该预留部署信息例如可以是下列两种信息中的一种:
a)新增节点,并设定“容器信息”中“数目”为0,表示新增节点,预加载镜像。
b)更新节点规格,并设定“容器信息”中“数目”为0,预加载镜像。
S709-S710,容器部署服务根据预留部署信息,向IaaS申请预留资源,并完成指定容器镜像的预加载。
由于预留资源后,节点的实际资源利用率可能会下降,因此,资源优化中心有可能在节点进行弹性扩容之前就将预留资源释放掉,从而导致预留资源失败。
为了避免出现上述情况,不论下一次弹性扩容是否如期到达,预留资源在时间点T2前不计入实际资源利用率的计算,直到时间点T2过后再纳入实际资源利用率的计算,由资源优化中心判断是否需要释放资源,其中,时间点T2是所述“下一次弹性扩容”的时间点T1之后的一个时间点。
综上所述,本申请引入资源优化中心取代传统的人工计算:根据系统的期望资源利用率,在容器应用部署阶段自动选择规格最合适的节点进行容器应用部署;通过监测容器应用实际资源使用情况,并根据业务运行的历史信息,及时进行资源优化操作,使得无论是业务高峰、平稳或是低谷期,都能维持接近期望值的较高的资源利用率,从而达到节约成本的目的。
上文详细介绍了本申请提供的分配资源的方法示例。可以理解的是,分配资源的装置(例如资源优化中心)为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请可以根据上述方法示例对分配资源的装置等进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用集成的单元的情况下,图8示出了上述实施例中所涉及的资源优化中心的一种可能的结构示意图。资源优化中心800包括:处理单元802和通信单元803。处理单元802用于对资源优化中心800的动作进行控制管理,例如,处理单元802用于支持资源优化中心800执行图4的S410和/或用于本文所描述的技术的其它过程。通信单元803用于支持资源优化中心800与其它网元的通信,例如与容器部署服务之间的通信。资源优化中心800还可以包括存储单元801,用于存储资源优化中心800的程序代码和数据。
其中,处理单元802可以是处理器或控制器,例如可以是中央处理器(central processing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元803可以是通信接口。存储单元801可以是存储器。
当处理单元802为处理器,通信单元803为通信接口,存储单元801为存储器时,本申请所涉及的资源优化中心可以为图9所示的资源优化中心。
参阅图9所示,该资源优化中心900包括:处理器902、通信接口903、存储器901。其中,通信接口903、处理器902以及存储器901可以通过内部连接通路相互通信,传递控制和/或数据信号。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不加赘述。
因此,本申请提供的资源优化中心700和资源优化中心800,根据节点的资源需求量和用户的期望资源利用率确定分配给节点的资源,可以使得实际资源利用率始终接近期望资源利用率,从而可以在满足用户需求的前提下节约成本。
在本申请各个实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施过程构成任何限定。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软 件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read only memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于资源优化中心中。当然,处理器和存储介质也可以作为分立组件存在于资源优化中心中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。

Claims (12)

  1. 一种分配资源的方法,其特征在于,所述方法包括:
    确定第一节点的资源需求量;
    根据所述第一节点的资源需求量和预设的期望资源利用率确定分配给所述第一节点的资源,以使所述第一节点的资源需求量与分配给所述第一节点的资源的比值与所述期望资源利用率相对应。
  2. 根据权利要求1所述的方法,其特征在于,所述确定第一节点的资源需求量,包括:
    根据所述第一节点在第一时段的资源使用量确定所述第一节点在第二时段的资源使用量,其中,所述第一时段位于所述第二时段之前。
  3. 根据权利要求2所述的方法,其特征在于,所述第一时段处于第一时间周期,所述第二时段处于第二时间周期,所述第一时段在所述第一时间周期内的位置与所述第二时段在所述第二时间周期内的位置相对应。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
    根据所述第一节点的资源需求量和所述的预设期望资源利用率,对分配给所述第一节点的资源进行K次调整,其中,K为非负整数。
  5. 根据权利要求4所述的方法,其特征在于,所述K小于或等于预设的次数阈值。
  6. 根据权利要求1至5中任一项所述的方法,其特征在于,所述预设的期望资源利用率包括第一资源利用率阈值和第二资源利用率阈值,所述第一资源利用率阈值对应的资源需求量为u1,所述第二资源利用率阈值对应的资源需求量为u2,u1大于u2,
    所述根据所述第一节点的资源需求量和预设的期望资源利用率确定分配给所述第一节点的资源,包括:
    当所述第一节点的资源需求量大于或等于u1时,确定增加分配给所述第一节点的资源;或者,
    当所述第一节点的资源需求量小于或等于u2时,确定减小分配给所述第一节点的资源;或者,
    当所述第一节点的资源需求量大于或等于u2,且小于或等于u1时,确定分配给所述第一节点的资源不变。
  7. 一种分配资源的装置,其特征在于,所述装置包括处理单元,所述处理单元用于:
    确定第一节点的资源需求量;
    根据所述第一节点的资源需求量和预设的期望资源利用率确定分配给所述第一节点的资源,以使所述第一节点的资源需求量与分配给所述第一节点的资源的比值与所述期望资源利用率相对应。
  8. 根据权利要求7所述的装置,其特征在于,所述处理单元具体用于:
    根据所述第一节点在第一时段的资源使用量确定所述第一节点在第二时段的资源使用量,其中,所述第一时段位于所述第二时段之前。
  9. 根据权利要求8所述的装置,其特征在于,所述第一时段处于第一时间周期,所述第二时段处于第二时间周期,所述第一时段在所述第一时间周期内的位置与所述第二时段在所述第二时间周期内的位置相对应。
  10. 根据权利要求7至9中任一项所述的装置,其特征在于,所述处理单元还用于:
    根据所述第一节点的资源需求量和所述预设的期望资源利用率,对分配给所述第一节点的资源进行K次调整,其中,K为非负整数。
  11. 根据权利要求10所述的装置,其特征在于,所述K小于或等于预设的次数阈值。
  12. 根据权利要求7至11中任一项所述的装置,其特征在于,所述预设的期望资源利用率包括第一资源利用率阈值和第二资源利用率阈值,所述第一资源利用率阈值对应的资源需求量为u1,所述第二资源利用率阈值对应的资源需求量为u2,u1大于u2,
    所述处理单元具体用于:
    当所述第一节点的资源需求量大于或等于u1时,确定增加分配给所述第一节点的资源;或者,
    当所述第一节点的资源需求量小于或等于u2时,确定减小分配给所述第一节点的资源;或者,
    当所述第一节点的资源需求量大于或等于u2,且小于或等于u1时,确定分配给所述第一节点的资源不变。
PCT/CN2018/095229 2017-07-14 2018-07-11 分配资源的方法和装置 WO2019011262A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710576312.0A CN109254843A (zh) 2017-07-14 2017-07-14 分配资源的方法和装置
CN201710576312.0 2017-07-14

Publications (1)

Publication Number Publication Date
WO2019011262A1 true WO2019011262A1 (zh) 2019-01-17

Family

ID=65001711

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/095229 WO2019011262A1 (zh) 2017-07-14 2018-07-11 分配资源的方法和装置

Country Status (2)

Country Link
CN (1) CN109254843A (zh)
WO (1) WO2019011262A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11178257B1 (en) 2020-10-12 2021-11-16 International Business Machines Corporation Incarnation selection for application hosting on remote services environment

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976771B (zh) * 2019-03-28 2023-06-27 新华三技术有限公司 一种应用的部署方法及装置
CN110474966B (zh) 2019-07-22 2022-04-19 腾讯科技(深圳)有限公司 处理云平台资源碎片的方法及相关设备
CN115145690B (zh) * 2022-06-30 2023-08-04 小米汽车科技有限公司 集群资源伸缩方法、装置及容器集群管理系统
CN117827080A (zh) * 2022-09-28 2024-04-05 华为云计算技术有限公司 磁盘迁移方法、相关设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103369041A (zh) * 2013-07-09 2013-10-23 北京奇虎科技有限公司 基于云计算的资源分配方法及装置
CN103713955A (zh) * 2013-12-31 2014-04-09 曙光云计算技术有限公司 资源动态分配的管理方法和装置
CN104426953A (zh) * 2013-08-28 2015-03-18 腾讯科技(深圳)有限公司 一种分配计算资源的方法及装置
CN105320559A (zh) * 2014-07-30 2016-02-10 中国移动通信集团广东有限公司 一种云计算系统的调度方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130263117A1 (en) * 2012-03-28 2013-10-03 International Business Machines Corporation Allocating resources to virtual machines via a weighted cost ratio
CN104142860A (zh) * 2013-05-10 2014-11-12 中国电信股份有限公司 应用服务系统的资源调整方法与装置
WO2015049789A1 (ja) * 2013-10-04 2015-04-09 株式会社日立製作所 リソース管理システムおよびリソース管理方法
CN106909462A (zh) * 2017-02-27 2017-06-30 郑州云海信息技术有限公司 一种云资源调度方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103369041A (zh) * 2013-07-09 2013-10-23 北京奇虎科技有限公司 基于云计算的资源分配方法及装置
CN104426953A (zh) * 2013-08-28 2015-03-18 腾讯科技(深圳)有限公司 一种分配计算资源的方法及装置
CN103713955A (zh) * 2013-12-31 2014-04-09 曙光云计算技术有限公司 资源动态分配的管理方法和装置
CN105320559A (zh) * 2014-07-30 2016-02-10 中国移动通信集团广东有限公司 一种云计算系统的调度方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11178257B1 (en) 2020-10-12 2021-11-16 International Business Machines Corporation Incarnation selection for application hosting on remote services environment

Also Published As

Publication number Publication date
CN109254843A (zh) 2019-01-22

Similar Documents

Publication Publication Date Title
WO2019011262A1 (zh) 分配资源的方法和装置
US10489343B2 (en) Cluster file system comprising data mover modules having associated quota manager for managing back-end user quotas
US10387202B2 (en) Quality of service implementation in a networked storage system with hierarchical schedulers
TWI591542B (zh) 雲端計算節點、方法與系統及電腦可讀媒體
US10382279B2 (en) Dynamically composed compute nodes comprising disaggregated components
AU2014309371B2 (en) Virtual hadoop manager
US9183016B2 (en) Adaptive task scheduling of Hadoop in a virtualized environment
Nanavati et al. Decibel: Isolation and sharing in disaggregated {Rack-Scale} storage
US20170177221A1 (en) Dynamic core allocation for consistent performance in a non-preemptive scheduling environment
US9529642B2 (en) Power budget allocation in a cluster infrastructure
US20190163371A1 (en) Next generation storage controller in hybrid environments
US20180167461A1 (en) Method and apparatus for load balancing
US10460254B2 (en) System and method for reducing state space in reinforced learning by using decision tree classification
US9110591B2 (en) Memory resource provisioning using SAS zoning
US20150040129A1 (en) System and method for virtual machine placement and management in cluster system
US10705876B2 (en) Operation management system and operation management method
WO2014101086A1 (zh) 存储空间的处理方法、装置及非易失性计算机可读存储介质
US9465549B1 (en) Dynamic allocation of a high-speed memory pool between a cluster file system and a burst buffer appliance
US20150378706A1 (en) Software overlays for disaggregated components
US10761726B2 (en) Resource fairness control in distributed storage systems using congestion data
US9690728B1 (en) Burst buffer appliance comprising multiple virtual machines
TW201327205A (zh) 硬體效能的管理方法及雲端運算系統
US20230100110A1 (en) Computing resource management method, electronic equipment and program product
US9558208B1 (en) Cluster file system comprising virtual file system having corresponding metadata server
KR20160043706A (ko) 가상 머신 스케일링 장치 및 그 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18831575

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18831575

Country of ref document: EP

Kind code of ref document: A1