Carbon-aware predictive workload scheduling and scaling

By predicting the scaling events of data center services and using machine learning to determine the green level and actively scheduling workloads, the problem of imbalance in green energy utilization in the existing technology is solved, and energy efficiency and service stability in the scaling process are improved.

CN119597441APending Publication Date: 2025-03-11HEWLETT PACKARD ENTERPRISE DEV LP

Patent Information

Application Number
CN202411247961.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-06-28
Filing Date
2024-09-06
Publication Date
2025-03-11

AI Technical Summary

Technical Problem

The prior art is difficult to effectively utilize green energy during the expansion and scheduling of data centers, resulting in an imbalance in service-level green energy SLAs, which may lead to service interruptions and functional SLAs.

Method used

By predicting scaling events, machine learning technology is used to determine the predicted green level of the service, and actively reschedule the workload according to the green SLA threshold to ensure effective resource utilization and carbon emission control.

Benefits of technology

It improves the green energy utilization efficiency of data centers during the expansion process, reduces service interruptions and carbon emissions, and ensures the stability of service levels and the satisfaction of functional SLAs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119597441A_ABST
    Figure CN119597441A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to carbon aware predictive workload scheduling and scaling, and the disclosure describes example techniques and devices for scheduling workloads. An example computing device is configured to predict an occurrence of a scaling event for a first service. The computing device is configured to determine a predicted green level for the first service based on a predicted occurrence of the scaling event for the first service, the predicted green level based on a current green level for the first service and a predicted extension factor. The computing device is configured to determine whether a predicted green level for a first service satisfies a first threshold. The computing device is configured to perform a first action on a first workload of the first service based on whether the predicted green level for the first service satisfies a first threshold.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Related Applications

[0002] This application claims the benefit of U.S. Patent Application No. 18 / 759,468, filed on June 28, 2024, which claims the benefit of Indian Provisional Patent Application No. 202341060929, filed on September 11, 2023, the entire contents of each application are incorporated herein by reference. Technical Field

[0003] The present disclosure relates to computer networks, and more particularly to computer networks having at least a portion of their energy requirements met by renewable energy sources. Background Art

[0004] In a typical cloud data center environment, there are a large number of interconnected servers that provide computing and / or storage capabilities to run various applications. For example, a data center may include facilities that host applications and services for subscribers (e.g., customers of the data center). For example, a data center may host all infrastructure equipment, such as networking and storage systems, redundant power supplies, and environmental controls. In a typical data center, clusters of storage servers and application servers (computing nodes) are interconnected via a high-speed switching fabric that is provided by one or more layers of physical network switches and routers. More complex data centers provide infrastructure throughout the world to subscriber support equipment located in various physical hosting facilities.

[0005] As data centers become larger, energy usage by data centers increases. Some large data centers require large amounts of electricity (e.g., about 100 megawatts), which is enough to power a large number of homes (e.g., about 80,000). Data centers may also run compute- and data-intensive application workloads, such as cryptocurrency mining and machine learning applications, which consume large amounts of energy. As energy usage increases, data center customers and data center providers themselves are increasingly concerned about meeting energy requirements by using renewable (e.g., green) energy sources rather than non-renewable, carbon-emitting, fossil fuel-based (e.g., non-green or black) energy sources. As a result, some service level agreements (SLAs) associated with data center services include green energy targets or requirements. Summary of the invention

[0006] In general, techniques for power management and workload scheduling and scaling are described to address issues regarding the use of green and non-green energy sources (sometimes referred to as black energy sources). In microservices-based architectures, such as Kubernetes, service or workload scaling can be based on resources (e.g., CPU resources, memory resources, etc.) and / or custom metrics. As used herein, workload scaling refers to horizontal scaling, such as the increase or decrease of replicas (e.g., workloads) of a particular service. Scheduling such scaling can be based on the availability of required computing resources and / or other constraints. Some scaling and scheduling techniques may be based on or take into account carbon emission factors.

[0007] If green nodes are available during scaling, existing scheduling techniques may attempt to schedule the scaled workload onto green nodes. If green nodes are not available, existing techniques may starve the services associated with the workload (e.g., not replicate the workload) until green nodes become available, or alternatively, the replicated workload may be scheduled to non-green nodes. This may result in an unbalanced utilization of green energy by services, which may result in one or more violations of the service level green energy SLA. In some existing scaling and scheduling techniques, in an attempt to improve compliance with the service level green energy SLA, these techniques may reschedule various workloads at runtime when scaling occurs. This rescheduling may result in many service preemptions and increased service interruptions due to the many reschedulings, which may have a negative impact on services that meet functional SLA requirements.

[0008] Therefore, when making scaling and scheduling decisions, it may be desirable to utilize predictive techniques to better comply with service level green energy SLAs. For example, a computing device may determine an energy metric associated with an application, such as a green quotient. The energy metric may indicate the percentage of total energy consumption associated with the application that is due to green power. The computing device may reschedule "high green" workloads from green nodes to non-green nodes before a scaling event to free up resources on the green nodes for scaling other workloads that may be more in need of utilizing green power to comply with carbon emission SLA requirements. A high green workload may be a workload whose energy metric (e.g., green quotient) meets a threshold level that is higher than the carbon emission SLA requirement.

[0009] In one example, the present disclosure describes a computing device comprising one or more memories and one or more processors communicatively coupled to the one or more memories, the one or more processors being configured to: predict an occurrence of a scaling event for a first service; determine a predicted green level for the first service based on the predicted occurrence of the scaling event for the first service, the predicted green level being based on a current green level for the first service and a predicted expansion factor; determine whether the predicted green level for the first service satisfies a first threshold; and based on whether the predicted green level for the first service satisfies the first threshold, perform a first action on a first workload of the first service.

[0010] In another example, the present disclosure describes a method, including: predicting, by one or more processors, an occurrence of a scaling event for a first service; determining, by one or more processors, a predicted green level for the first service based on the predicted occurrence of the scaling event for the first service, the predicted green level being based on a current green level for the first service and a predicted expansion factor; determining, by one or more processors, whether the predicted green level for the first service satisfies a first threshold; and performing, by one or more processors, a first action on a first workload of the first service based on whether the predicted green level for the first service satisfies the first threshold.

[0011] In another example, the present disclosure describes a computer-readable medium storing instructions that, when executed, cause one or more processors to: predict an occurrence of a scaling event for a first service; determine a predicted green level for the first service based on the predicted occurrence of the scaling event for the first service, the predicted green level being based on a current green level for the first service and a predicted expansion factor; determine whether the predicted green level for the first service satisfies a first threshold; and based on whether the predicted green level for the first service satisfies the first threshold, perform a first action on a first workload of the first service.

[0012] The details of one or more examples of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] Figure 1 is a block diagram illustrating an example network system with a data center in which examples of the techniques described herein may be implemented.

[0014] Figure 2 is a block diagram illustrating an example computing device in accordance with the techniques described herein.

[0015] Figure 3is a conceptual diagram illustrating a system for carbon-aware predictive workload scheduling and scaling in accordance with one or more aspects of the present disclosure.

[0016] Figure 4 is a flow diagram illustrating an example technique for carbon-aware workload scheduling and scaling according to one or more aspects of the present disclosure.

[0017] Figure 5 is a flow chart illustrating other example techniques for carbon-aware workload scheduling and scaling according to one or more aspects of the present disclosure.

[0018] Like reference numerals denote like elements in the description and drawings. DETAILED DESCRIPTION

[0019] Figure 1 is a block diagram of an example system 8 with a computing infrastructure that illustrates an example of the carbon-aware workload scheduling and scaling techniques described herein. In general, a data center 10 provides an operating environment for applications and services at one or more customer sites 11 (illustrated as "customer 11"), which have one or more customer networks coupled to the data center through a service provider network 7. For example, the data center 10 can host infrastructure equipment such as networking and storage systems, redundant power supplies, and environmental controls. The service provider network 7 is coupled to a public network 4, which can represent one or more networks managed by other providers and can therefore form part of a large-scale public network infrastructure, such as the Internet. For example, the public network 4 can represent a local area network (LAN), a wide area network (WAN), the Internet, a virtual LAN (VLAN), an enterprise LAN, a layer 3 virtual private network (VPN), an Internet Protocol (IP) intranet operated by a service provider operating the service provider network 7, an enterprise IP network, or some combination thereof.

[0020] Although customer site 11 and public network 4 are primarily illustrated and described as edge networks of service provider network 7, in some examples, one or more of customer site 11 and public network 4 may be tenant networks within data center 10 or another data center. For example, data center 10 may host multiple tenants (customers), each tenant being associated with one or more virtual private networks (VPNs), each VPN implementing one of customer sites 11.

[0021] The service provider network 7 provides packet-based connectivity to attached customer sites 11, data centers 10, and public networks 4. The service provider network 7 may represent a network owned and operated by a service provider to interconnect multiple networks. The service provider network 7 may implement multi-protocol label switching (MPLS) forwarding and in such instances may be referred to as an MPLS network or MPLS backbone. In some instances, the service provider network 7 represents multiple interconnected autonomous systems, such as the Internet, that provide services from one or more service providers.

[0022] In some examples, data center 10 may represent one of many geographically distributed network data centers. Figure 1 As illustrated in the example of , data center 10 can be a facility that provides network services to customers. Customers of the service provider can be collective entities such as businesses and governments, or individuals. For example, a network data center can host network services for several businesses and end users. Other exemplary services may include data storage, virtual private networks, traffic engineering, file services, data mining, scientific computing, or supercomputing, etc. Although illustrated as a separate edge network of the service provider network 7, elements of the data center 10 (such as one or more physical network functions (PNFs) or virtualized network functions (VNFs)) can be included in the core of the service provider network 7.

[0023] In this example, data center 10 includes storage and / or computing servers interconnected via a switching fabric 14 provided by one or more layers of physical network switches and routers, wherein servers 12A to 12X (referred to herein as "servers 12") are depicted as being coupled to top-of-rack (TOR) switches 16A to 16N. Servers 12 may also be referred to herein as "hosts" or "host devices." Data center 10 may include many additional servers coupled to other TOR switches 16 of data center 10.

[0024] The switch fabric 14 in the illustrated example includes interconnected top-of-rack (or other "leaf") switches 16A to 16N (collectively, "TOR switches 16"), which are coupled to a distribution layer of chassis (or "spine" or "core") switches 18A to 18M (collectively, "chassis switches 18"). For example, although not shown, the data center 10 may also include one or more non-edge switches, routers, hubs, gateways, security devices such as firewalls, intrusion detection and / or intrusion prevention devices, servers, computer terminals, laptops, printers, databases, wireless mobile devices such as cellular phones or personal digital assistants, wireless access points, bridges, cable modems, application accelerators, or other network devices.

[0025] In this example, the TOR switch 16 and the chassis switch 18 provide redundant (multi-homed) connectivity to the server 12 with the IP structure 20 and the service provider network 7. The chassis switch 18 aggregates traffic flows and provides connectivity between the TOR switches 16. The TOR switch 16 can be a network device that provides Layer 2 (MAC) and / or Layer 3 (e.g., IP) routing and / or switching functionality. The TOR switch 16 and the chassis switch 18 can each include one or more processors and memories, and can execute one or more software processes. The chassis switch 18 is coupled to the IP structure 20, which can perform Layer 3 routing to route network traffic between the data center 10 and the customer site 11 through the service provider network 7. The switching architecture of the data center 10 is only an example. For example, other switching architectures may have more or fewer switching layers.

[0026] Each of the servers 12 may be a computing node, an application server, a storage server, or another type of server. For example, each of the servers 12 may represent a computing device configured to operate according to the techniques described herein, such as an x86 processor-based server. The servers 12 may provide a network function virtualization infrastructure (NFVI) for a network function virtualization (NFV) architecture.

[0027] Server 12 hosts endpoints for one or more virtual networks, which operate over a physical network represented here by IP fabric 20 and switch fabric 14. Although primarily described with respect to a data center based switch fabric, other physical networks such as service provider network 7 may serve as the basis for one or more virtual networks.

[0028] In some examples, server 12 may include at least one network interface card (NIC), NICs 13A through 13X, respectively (collectively, "NICs 13"), each of which includes at least one port to send and receive packets over a communication link to exchange packets therewith. For example, server 12A includes NIC 13A. NIC 13 provides connectivity between the server and the switching fabric. In some examples, NIC 13 includes an additional processing unit in the NIC itself for offloading at least some processing from a host CPU (e.g., a CPU of a server including the NIC) to the NIC, such as for performing supervisory and other advanced functionality, referred to as a "data path."

[0029] In some examples, each NIC 13 in the NIC 13 provides one or more virtual hardware components for virtualized input / output (I / O). The virtual hardware component for I / O can be a virtualization of a physical NIC 13 ("physical function"). For example, in the single root I / O virtualization (SR-IOV) described in the Peripheral Component Interface Special Interest Group SR-IOV specification, the PCIe physical function of the network interface card (or "network adapter") is virtualized to present one or more virtual network interface cards as "virtual functions" for use by corresponding endpoints executed on the server 12. In this way, virtual network endpoints can share the same PCIe physical hardware resources, and the virtual function is an example of a virtual hardware component. As another example, one or more servers 12 can implement Virtio, a paravirtualization framework that can be used for example in a Linux operating system, which provides simulated NIC functionality as a type of virtual hardware component. As another example, one or more servers 12 can implement an open vSwitch to perform distributed virtual multi-layer switching between one or more virtual NICs (vNICs) of a hosted virtual machine, where such a vNIC can also represent a type of virtual hardware component. In some instances, the virtual hardware component is a virtual I / O (e.g., NIC) component. In some instances, the virtual hardware component is an SR-IOV virtual function, and a direct process user space access based on a data plane development kit (DPDK) can be provided for SR-IOV.

[0030] In some examples, including Figure 1 In the illustrated example, one or more of the NICs 13 may include multiple ports. The NICs 13 may be connected to each other via the ports and communication links of the NICs 13 to form a NIC fabric 23 having a NIC fabric topology. The NIC fabric 23 is a collection of NICs 13 connected to at least one other NIC 13.

[0031] In some examples, the NICs 13 each include a processing unit for offloading various aspects of the data path. The processing unit in the NIC may be, for example, a multi-core ARM processor with hardware acceleration provided by a data processing unit (DPU), a field programmable gate array (FPGA), and / or an ASIC. Alternatively, the NIC 13 may be referred to as a SmartNIC or a GeniusNIC.

[0032] Edge service controller 28 may, in part, orchestrate services to be performed by processing unit 25 (e.g. Figure 2The edge service platform within the NIC 13 is managed by application programming interface (API) driven deployment of services 233 on the NIC 13; addition, deletion, and replacement of NICs 13 within the edge service platform; monitoring of services 233 and other resources on the NIC 13; and management of connectivity between various services 233 running on the NIC 13 to manage the operation of the edge service platform within the NIC 13.

[0033] The edge service controller 28 can pass information describing the available services on the NIC 13, the topology of the NIC fabric 13, or other information about the edge service platform to an orchestration system (not shown) or a network controller 24. Example orchestration systems include OpenStack, VMWARE's vCenter, or Microsoft's System Center. Example network controllers 24 include controllers for Juniper Networks or Tungsten Fabric's Contrail. Additional information regarding the controller 24 operating in conjunction with other devices or other software defined networks in the data center 10 is found in International Application No. PCT / US2013 / 044378, filed on June 5, 2013, and entitled “PHYSICAL PATH DETERMINATION FOR VIRTUAL NETWORK PACKET FLOWS”; and U.S. Patent Application No. 14 / 226,509, filed on March 26, 2014, and entitled “Tunneled Packet Aggregation for Virtual Networks,” each of which is incorporated herein by reference as if fully set forth herein.

[0034] In some examples, network controller 24 or edge service controller 28 can determine the energy efficiency and / or energy usage of data center 10 and / or the energy efficiency and / or energy usage of data center 10 when deploying application workloads, and can invoke one or more actions to improve the energy efficiency (e.g., save energy) of data center 10. In some examples, network controller 24 or edge service controller 28 can determine the energy efficiency and / or energy usage of data center 10 for workloads running on servers 12 and / or NICs 13. In some examples, Figure 1 The network controller 24, edge service controller 28 and / or (multiple) other devices can determine the type of energy usage, such as green energy usage and non-green energy usage associated with the data center 10, a given service, a given workload, a given node, a given node cluster, etc.

[0035] Self-learning green network

[0036] As an example, the network controller 24 and / or the edge service controller 28 may include an energy efficiency module 32 configured to determine the energy efficiency of the data center, referred to herein as a green quotient (GQ) of the data center, based on the energy usage of the data center 10 with respect to a percentage (g) of energy provided to the data center by one or more renewable energy sources, such as solar energy, wind energy, hydroelectric power, etc. (also referred to herein as “green energy sources”). dc ).exist Figure 1 In the example of , the data center 10 may obtain energy from one or more power sources 30 of the data center 10. Although shown within the data center 10, it should be understood that the power generation equipment for the power source 30 may be located outside the data center 10. For example, a windmill or power plant may be located outside the data center 10, but electricity from the windmill or power plant may be obtained in the data center 10 via the power source 30. The power source 30 may include a renewable (green) energy source, a non-renewable (non-green) energy source, or a combination of renewable and non-renewable energy sources. The energy efficiency module 32 obtains telemetry data, including energy usage data of the data center 10. If the data center is operating at full capacity (e.g., as determined by information provided by the manufacturer), the telemetry data includes the current energy usage (E C ) and the total energy usage (E T ). The current energy usage data may include, for example, the amount of power currently used by one or more devices within the data center or other metrics indicating the energy currently consumed. If operating at maximum capacity, the total energy usage of the data center 10 may indicate the maximum amount of power that one or more devices can use. The energy efficiency module 32 may obtain the energy usage data of the data center 10 directly from the servers 12 and / or network devices (e.g., chassis switches 18 and TOR switches 16) of the data center 10, a centralized controller that collects energy usage data from the servers 12 and / or network devices of the data center, and / or static information provided by the manufacturers of the servers and / or network devices (e.g., the maximum capacity of the servers and / or computing nodes).

[0037] In some examples, energy efficiency module 32 determines the current energy usage (E C ) Total energy use (E T ) percentage, referred to in this article as the data center's "energy quotient" (E Q ), such as the following example:

[0038]

[0039] In some examples, energy efficiency module 32 calculates the energy quotient (E Q) is compared to the percentage of energy (g) provided to data center 10 by one or more renewable energy sources (referred to herein as the "green energy percentage" of the data center). As an example of a green energy percentage, if power source 30 provides 20% of energy from renewable energy sources and 80% of energy from non-renewable energy sources, then the percentage of energy provided to data center 10 by one or more renewable energy sources is 20%. Based on the energy quotient (E Q ) and the green energy percentage (g) of the data center 10, the energy efficiency module 32 may assign a green quotient (GQ) for the data center 10. dc ) value, which indicates whether the data center 10 is energy-saving, such as shown in the following example.

[0040]

[0041] In this example, if the energy quotient (E Q ) is less than or equal to the green energy percentage (g) of data center 10 (e.g. E Q ≤g), the energy efficiency module 32 specifies the green quotient (GQ) of the data center 10 dc ) indicates that the energy usage of data center 10 is energy efficient (e.g., "green"). For example, if 20% of the energy provided or allocated to data center 10 comes from renewable energy sources, then a value of 100 assigned to the green quotient of the data center indicates that the energy usage of data center 10 does not exceed 20% of the renewable energy provided or allocated to data center 10. If the energy quotient (E Q ) is greater than the green energy percentage (g) of the data center 10 (e.g. E Q >g), the energy efficiency module 32 specifies the green quotient (GQ) of the data center 10 dc ) value (e.g. ), which indicates that the energy usage of data center 10 is not energy-efficient (e.g., "non-green"). Continuing with the above example, if 20% of the energy source provided or allocated to data center 10 comes from renewable energy sources, the value of the green quotient of data center 10 (e.g., ) indicates that the energy usage of the data center 10 exceeds the amount of renewable energy provided or allocated to the data center 10. It can be inferred from the formula that as the renewable energy percentage increases from g% to 100%, GQ dc Increases exponentially.

[0042] Self-learning green workloads

[0043] As another example, the energy efficiency module 32 is configured to determine the energy efficiency of the application workload deployed in the data center 10, referred to herein as the green quotient (GQ) of the application.app In these examples, energy efficiency module 32 obtains telemetry data, including energy usage data of data center 10, and determines a green quotient (GQ) of data center 10 when an application is running based on the energy usage data. dc2 ), the green quotient indicates the energy efficiency of the data center 10 when the application is running, and determines the green quotient (GQ) of the data center 10 when the application is not running dc1 ), the green quotient indicates the energy efficiency of the data center 10 when the application is not running. The green quotient of the data center 10 when the application is not running can represent the energy efficiency of the stable data center 10. As described above, the energy efficiency module 32 can be based on the “energy quotient” (E Q ) is calculated to determine the green quotient of the data center. In this example, when the application is not running, the energy efficiency module 32 can calculate the "energy quotient" (E Q For example, the energy efficiency module 32 may determine the current energy usage (E C ) Total energy use (E T ) and is based on the “energy quotient” (E Q ) to determine the Green Quotient (GQ) of the data center when the application is not running dc1 The energy efficiency module 32 can also determine the current energy usage (E C ) Total energy use (E T ) and is based on the “energy quotient” (E Q ) to determine the Green Quotient (GQ) of the data center when the application is running dc2 In some examples, the green quotient (GQ) of the data center during application runtime dc2 ) may represent an average value of the green quotient calculated for the data center 10 when the application is running over a period of time.

[0044] The energy efficiency module 32 calculates the green quotient (GQ) of the data center 10 when the application is running. dc2 ) and the Green Quotient (GQ) of the data center 10 when the application is not running dc1 ) increment (GQ Δ ) to determine your app's energy use, as shown in the following example.

[0045] GQ Δ =GQ dc2 -GQ dc1

[0046] Then, the energy efficiency module 32 converts the energy usage (eg, GQ Δ) is compared with the green energy percentage (g) of the data center 10, and a green quotient (GQ) of the application is assigned based on the comparison. app ) value, which indicates whether the data center 10 where the application is deployed is energy-efficient, such as shown in the following example.

[0047]

[0048] In this example, if the energy usage of the application is less than or equal to the green energy percentage of data center 10 (e.g., GQ Δ ≤g), the energy efficiency module 32 specifies the green quotient (GQ app ) indicates that the data center 10 in which the application is deployed is energy efficient. For example, if 20% of the energy source provided or allocated to the data center 10 is from renewable energy sources, then a value of 100 assigned to the green quotient of the application indicates that the energy usage of the data center 10 in which the application is deployed does not exceed 20% of the renewable energy provided or allocated to the data center 10. If the energy usage of the application is greater than the percentage of energy provided to the data center by one or more renewable energy sources (e.g., GQ Δ >g), the energy efficiency module 32 specifies the green quotient (GQ app ) value (e.g. GQ Δ ), which value indicates that the data center 10 in which the application is deployed is not energy efficient. Continuing with the above example, if 20% of the energy source provided or allocated to the data center 10 comes from renewable energy sources, then a value other than 100 assigned to the green quotient of the application indicates that the energy usage of the data center 10 in which the application is deployed exceeds the 20% renewable energy source provided or allocated to the data center 10.

[0049] Green Quotient (GQ) based on application app ), the energy efficiency module 32 invokes one or more actions to affect the green quotient of the application. For example, if the green quotient of the application does not meet the green energy SLA requirement (e.g., the green quotient is lower than the green energy SLA requirement), the energy efficiency module 32 may attempt to reschedule the workload to a greener or greener node to improve the green quotient of the application.

[0050] The above actions are examples only. Energy efficiency module 32 may perform other actions, such as alerting an administrator that a data center 10 deploying an application workload is not energy efficient, and in some examples, providing recommended actions to improve the green quotient of the application.

[0051] The workloads of various services may be executed on any of the servers 12 and / or NICs 13. The servers 12 and NICs 13 may sometimes be referred to as nodes. When the demand for a service changes, the network controller 24 may determine to expand or reduce the service based on demand, available resources, etc. This may be referred to as a scaling event. For example, the network controller 24 may predict the occurrence of a scaling event for a first service. For example, the demand for the first service may increase, and the network controller 24 may decide to increase the number of replicas (e.g., workloads) of the first service. The network controller 24 may determine a predicted green level for the first service based on the predicted occurrence of the scaling event for the first service. The predicted green level may be based on the current green level and the predicted expansion factor for the first service. The network controller 24 may determine whether the predicted green level for the first service meets a first threshold. The network controller may perform an action on the first workload based on whether the predicted green level for the first service meets a first threshold. For example, the network controller 24 may reschedule the workload to another node (e.g., a non-green node or a green node), or allow the workload to continue to execute on the same node.

[0052] Figure 2 is a block diagram illustrating an example computing device in accordance with the techniques described herein. Figure 2 The computing device 200 may represent a network controller 24, an edge service controller 28, or may represent Figure 1 24. In this example, the computing device 200 includes a bus 242 that couples hardware components of the computing device 200 hardware environment. The bus 242 couples a network interface card (NIC) 230 that supports SR-IOV, a storage disk 246, and a microprocessor 210. In some cases, the front-end bus can couple the microprocessor 210 and the memory device 244. In some examples, the bus 242 can couple the memory device 244, the microprocessor 210, and the NIC 230. The bus 242 can represent a peripheral component interface (PCI) high-speed (PCIe) bus. In some examples, a direct memory access (DMA) controller can control DMA transfers between components coupled to the bus 242. In some examples, components coupled to the bus 242 control DMA transfers between components coupled to the bus 242.

[0053] Microprocessor 210 may include one or more processors, each of which includes independent execution units ("processing cores") to execute instructions that comply with an instruction set architecture. The execution units may be implemented as separate integrated circuits (ICs) or may be combined within one or more multi-core processors (or "many-core" processors) that are separately implemented using a single IC (i.e., a chip multiprocessor).

[0054] Disk 246 represents a computer-readable storage medium, which includes volatile and / or nonvolatile media, removable and / or non-removable media implemented in any method or technology for storing information (such as processor-readable instructions, data structures, program modules or other data). Computer-readable storage media include, but are not limited to, random access memory (RAM), read-only memory (ROM), EEPROM, flash memory, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by microprocessor 210.

[0055] The memory device 244 includes one or more computer-readable storage media, which may include random access memory (RAM), such as various forms of dynamic RAM (DRAM) (e.g., DDR2 / DDR3 SDRAM) or static RAM (SRAM), flash memory, or any other form of fixed or removable storage medium that can be used to carry or store desired program code and program data in the form of instructions or data structures that can be accessed by a computer. The memory device 244 provides a physical address space consisting of addressable memory locations.

[0056] The network interface card (NIC) 230 includes one or more interfaces 232 configured to exchange packets using the links of the underlying physical network. The interface 232 may include a port interface card having one or more network ports. The NIC 230 also includes an on-card memory 227 to, for example, store packet data. Direct memory access transfers between the NIC 230 and other devices coupled to the bus 242 may read / write from the memory 227 to the memory 227.

[0057] The memory device 244 , the NIC 230 , the storage disk 246 , and the microprocessor 210 provide an operating environment for executing a software stack of the hypervisor 214 and one or more virtual machines 228 managed by the hypervisor 214 .

[0058] Typically, a virtual machine provides a virtualized / guest operating system to execute applications in an isolated virtual environment. Since the virtual machine is virtualized by the physical hardware of the host server, the executing application is isolated from both the host's hardware and other virtual machines.

[0059] An alternative to a virtual machine is a virtualized container, such as that provided by the open source DOCKER container application. Like a virtual machine, each container is virtualized and can remain isolated from the host machine and other containers. However, unlike a virtual machine, each container may omit a separate operating system and only provide an application suite and application-specific libraries. The container is executed as an isolated user space instance by the host machine, and can share an operating system and common libraries with other containers executed on the host machine. Therefore, compared with a virtual machine, a container may require less processing power, storage, and network resources. As used herein, a container may also be referred to as a virtualization engine, a virtual private server, a silo, or a jail. In some instances, the technology described herein is relative to containers and virtual machines or other virtualization components.

[0060] Although Figure 2 The virtual network endpoints in are illustrated and described relative to virtual machines, but other operating environments such as containers (e.g., Docker containers) can implement virtual network endpoints. Figure 2 ) may execute in kernel space 243 and may include, for example, Linux, Berkeley Software Distribution (BSD), another Unix variant kernel, or a Windows server operating system kernel available from Microsoft.

[0061] The computing device 200 executes a hypervisor 214 to manage the virtual machines 228 of the user space 245. Example hypervisors include the Linux kernel available from VMWARE, Xen, ESXi's kernel-based virtual machine (KVM), Windows Hyper-V available from Microsoft, and other open source and proprietary hypervisors. The hypervisor 214 may represent a virtual machine manager (VMM).

[0062] The virtual machine 228 can host one or more applications, such as virtual network function instances. In some examples, the virtual machine 228 can host one or more VNF instances, wherein each of the VNF instances is configured to apply a network function to a packet.

[0063] The hypervisor 214 includes a physical driver 225 to use the physical functions provided by the network interface card 230. In some cases, the network interface card 230 can also implement SR-IOV to enable sharing of physical network functions (I / O) between virtual machines. Each port of the NIC 230 can be associated with a different physical function. The shared virtual device (also referred to as a virtual function) provides dedicated resources so that each virtual machine 228 (and the corresponding guest operating system) in the virtual machine 228 can access the dedicated resources of the NIC 230, so the NIC 230 appears to be a dedicated NIC to each virtual machine in the virtual machine. The virtual function can represent a lightweight PCIe function that shares physical resources with physical functions and other virtual functions. According to the SR-IOV standard, the NIC 230 can have thousands of available virtual functions, but for I / O intensive applications, the number of configured virtual functions is typically much smaller.

[0064] The virtual machine 228 includes a corresponding virtual NIC 229 that is directly presented to the guest operating system of the virtual machine 228, thereby providing direct communication between the NIC 230 and the virtual machine 228 via the bus 242 using the virtual functions assigned to the virtual machine. This can reduce the hypervisor 214 overhead involved in software-based VIRTIO and / or vSwitch implementations, where the hypervisor 214 memory address space of the memory device 244 stores packet data and the copying of packet data from the NIC 230 to the hypervisor 214 memory address space and from the hypervisor 214 memory address space to the virtual machine 228 memory address space consumes cycles of the microprocessor 210.

[0065] The NIC 230 may also include a hardware-based Ethernet bridge 234, which may include an embedded switch. The Ethernet bridge 234 may perform Layer 2 forwarding between virtual functions and physical functions of the NIC 230. Thus, in some cases, the Ethernet bridge 234 provides hardware acceleration of inter-virtual machine packet forwarding and packet forwarding between the hypervisor 214 and any virtual machine via the bus 242, with the hypervisor 214 accessing the physical functions via the physical driver 225. The Ethernet bridge 234 may be physically separate from the processing unit 25.

[0066] Computing device 200 may be coupled to a physical network switch fabric that includes software or an overlay network of "virtual" routers that extend the switch fabric from physical switches to physical servers coupled to the switch fabric, including virtual router 220. A virtual router may be a physical server (e.g., Figure 1A process or thread or a combination thereof executed by a server 12) of a physical server that dynamically creates and manages one or more virtual networks that can be used for communication between virtual network endpoints. In one example, the virtual router uses an overlay network to implement each virtual network, which provides the ability to decouple the virtual address of the endpoint from the physical address (e.g., IP address) of the server on which the endpoint is executing. Each virtual network can use its own addressing and security scheme and can be considered to be orthogonal to the physical network and its addressing scheme. Various technologies can be used to transport packets within and across virtual networks through the physical network. At least some of the functions of the virtual router can be performed as a service 233 in service 233.

[0067] exist Figure 2 In the example computing device 200, the virtual router 220 executes within the hypervisor 214 using physical functions for I / O, but the virtual router 220 can execute within the hypervisor, the host operating system, the host application, one of the virtual machines 228, and / or the processing unit 25 of the NIC 230.

[0068] Typically, each virtual machine 228 may be assigned a virtual address for use within a corresponding virtual network, wherein each of the virtual networks may be associated with a different virtual subnet provided by virtual router 220. A virtual machine 228 may be assigned its own virtual layer 3 (L3) IP address, e.g., to send and receive communications, but may not be aware of the IP address of the computing device 200 on which the virtual machine is executing. In this manner, a "virtual address" is an address for an application that is different from a logical address for an underlying physical computer system (e.g., computing device 200).

[0069] In one implementation, the computing device 200 includes a virtual network (VN) agent (not shown) that controls the overlay of virtual networks for the computing device 200 and coordinates the routing of data packets within the computing device 200. Typically, the VN agent communicates with a virtual network controller for multiple virtual networks, which generates commands to control the routing of packets. The VN agent can operate as a proxy for control plane messages between the virtual machine 228 and the virtual network controller (such as controller 24). For example, a virtual machine can request to send a message using its virtual address via the VN agent, and the VN agent can then send the message and request to receive a response to the message for the virtual address of the virtual machine that originated the first message. In some cases, the virtual machine 228 can call a program or function call presented by the application programming interface of the VN agent, and the VN agent can also handle the encapsulation of messages, including addressing.

[0070] In one example, a network packet (e.g., a third layer (L3) IP packet or a second layer (L2) Ethernet packet) generated or consumed by an application instance executed by a virtual machine 228 in a virtual network domain can be encapsulated in another packet (e.g., another IP or Ethernet packet) transported by a physical network. The packet transported in a virtual network can be referred to as an "internal packet" in this article, and the physical network packet can be referred to as an "external packet" or "tunnel packet" in this article. The encapsulation and / or decapsulation of the virtual network packet in the physical network packet can be performed by a virtual router 220. This functionality is referred to as tunnel transmission in this article, and can be used to create one or more overlay networks. In addition to IPinIP, other example tunnel transmission protocols that can be used include IP on generic routing encapsulation (GRE), VxLAN, multi-protocol label switching (MPLS) on GRE, MPLS on user datagram protocol (UDP), etc.

[0071] As mentioned above, a virtual network controller may provide a logically centralized controller to facilitate the operation of one or more virtual networks. For example, a virtual network controller may maintain a routing information base, such as one or more routing tables that store routing information for a physical network and one or more overlay networks. The virtual router 220 of the hypervisor 214 implements network forwarding tables (NFTs) 222A to 222N for N virtual networks, wherein the virtual router 220 operates as a tunnel endpoint. Typically, each NFT 222 stores forwarding information for the corresponding virtual network and identifies where data packets are to be forwarded and whether the packets are to be encapsulated in a tunnel transport protocol, such as with a tunnel header, which may include one or more headers for different layers of the virtual network protocol stack. Each of the NFTs 222 may be an NFT for a different routing instance (not shown) implemented by the virtual router 220.

[0072] The edge service platform utilizes the processing unit 25 of the NIC 230 to enhance the processing and networking functionality of the computing device 200. The processing unit 25 includes a processing circuit system 231 to execute services orchestrated by the edge service controller 28. The processing circuit system 231 can represent any combination of a processing core, an ASIC, an FPGA, or other integrated circuits and programmable hardware. In an example, the processing circuit system may include a system on a chip (SoC) having, for example, one or more cores, a network interface for high-speed packet processing, one or more acceleration engines for dedicated functions (e.g., security / cryptography, machine learning, storage), programmable logic, integrated circuits, etc. Such a SoC may be referred to as a data processing unit (DPU). The DPU may be an example of a processing unit 25.

[0073] In the example NIC 230, the processing unit 25 executes an operating system kernel 237 for services and a user space 241. The kernel may be a Linux kernel, a Unix or BSD kernel, a real-time operating system (OS) kernel, or other kernel for managing the hardware resources of the processing unit 25 and managing the user space 241.

[0074] According to the technology described in this disclosure, service 233 may include network, security, storage, data processing, collaborative processing, machine learning or other services, such as energy efficiency services. Processing unit 25 may execute service 233 and edge service platform (ESP) agent 236 as processes and / or in a virtual execution element such as a container or a virtual machine. As described elsewhere herein, service 233 can enhance the processing power of a host processor (e.g., microprocessor 210) by, for example, enabling computing device 200 to offload packet processing, security, or other operations that would be performed by the host processor.

[0075] The processing unit 25 executes an edge service platform (ESP) agent 236 to exchange data with an edge service controller of the edge service platform and control data. Although shown in user space 241, in some examples, the ESP agent 236 can be a kernel module 237.

[0076] As an example, the ESP agent 236 may collect and send to the ESP controller telemetry data generated by the services 233, the telemetry data describing traffic in the network, computing device 200 or network resource availability, resource availability (such as memory or core utilization) of resources of the processing unit 25, and / or resource energy usage. As another example, the ESP agent 236 may receive from the ESP controller service code for executing any service 233, service configuration for configuring any service 233, packets for injection into the network, or other data.

[0077] The edge service controller 28 manages the operation of the processing unit 25 by, for example, orchestrating and configuring services 233 executed by the processing unit 25; deploying services 233; adding, removing, and replacing NICs 230 within the edge service platform; monitoring of services 233 and other resources on the NIC 230; and managing connectivity between the various services 233 running on the NIC 230. Example resources on the NIC 230 include memory 227 and processing circuitry 231. In some examples, the edge service controller 28 may invoke one or more actions to improve energy usage of the data center 10 via managing the operation of the processing unit 25. In some examples, the edge service controller 28 may set a target green quotient for the processing unit 25 that causes the processing unit 25 to select or adjust a particular routing or tunneling protocol, a particular algorithm, a maximum transmission unit (MTU) size, an interface, and / or any service 233.

[0078] In some examples, (multiple) virtual machines 228 can execute multiple different workloads, such as workloads of multiple services. The energy efficiency module 32 can obtain telemetry data of the computing device 200, including workload data, energy usage data, emission data, etc. The energy efficiency module 32 can use the telemetry data to predict the occurrence of scaling events for services and / or determine a predicted green level for services. The energy efficiency module 32 can compare the predicted green level for the service with a threshold value and determine an action to be performed on the workload of the service based on the comparison.

[0079] Carbon-aware predictive workload scheduling and scaling techniques are now described, such as those executable by the energy efficiency module 32. Typically, workloads of microservices running within a Kubernetes cluster are automatically scaled horizontally by autoscalers based on workload computing resource metrics, custom metrics, and external metrics. Typically, these autoscalers increase the number of replicas of a workload when the load increases by a scaling factor, and decrease the number of replicas of a workload when the load decreases by a scaling factor.

[0080] There are some scaling and scheduling algorithms that consider carbon emissions when making scaling and scheduling decisions. Most of these schedulers try to schedule the expanded workload to greener nodes with renewable energy supplies and low carbon emission rates. When no greener nodes are available, such schedulers may schedule the expanded workload to non-green nodes with power generated by fossil fuels.

[0081] However, there are problems associated with having these kinds of carbon-aware schedulers. First, such carbon-aware schedulers can result in a large number of reschedulings of running workloads as services scale. This increases scheduling costs. Second, such carbon-aware schedulers can result in some services being starved for greener nodes, and these services may ultimately fail to meet their carbon emissions and green quotient SLA targets. Highly compute-intensive and high-power consumption services are particularly prone to this starvation problem. This problem may result in service owners and / or infrastructure providers limiting carbon emission rates and greenness targets, which may be undesirable. Third, such carbon-aware schedulers may result in high levels of service interruptions due to frequent rescheduling. Such high levels of service interruptions may result in service owners failing to meet functional SLA targets.

[0082] To address the issues of current carbon-aware schedulers, the technology disclosed herein includes an active and predictive method for predicting service scaling requirements using machine learning techniques. For example, the energy efficiency module 32 can proactively reschedule at least a portion of a high green workload to a less green node before the predicted scaling occurs (e.g., just before or within a predetermined time period before the predicted scaling) to retain the required resources or make them readily available. This proactive rescheduling can reduce the large amount of rescheduling that may occur due to passive scaling. A high green workload can be a service workload that meets a green SLA target that is far higher than the SLA limit (e.g., exceeds a user-definable amount that is higher than the corresponding SLA target). For example, a workload may run at 100% green power, while the SLA associated with the workload may require the use of 50% green power. An example user-definable amount may be 20%. Because 100% is higher than 70% (50%+20%), the workload can be considered a high green workload and, in some examples, can be rescheduled.

[0083] In particular, the prediction and proactive rescheduling techniques of the present disclosure can help high energy consumption services reserve slots in greener nodes, thereby improving their green quotients and reducing their overall carbon emissions. In some examples, when both services are predicted for scaling, the current green quotient (e.g., the GQ app ) or carbon emission metrics can be used as a basis for decision making. For example, a service with a low green quotient (e.g., indicating that the service is not energy-efficient) or a higher carbon emission may be prioritized over other services.

[0084] In some examples, when making scaling and scheduling decisions, computing devices (such as network controller 24) can use predictive techniques to better comply with service level green energy SLAs. For example, computing devices can determine energy metrics, such as a green quotient (GQ). The GQ can indicate the green energy consumption of a particular service.

[0085] For example, GQ can be determined as follows:

[0086] GQ = (green energy consumption / total energy consumption) * 100

[0087] Therefore, the GQ can range between 0 and 100. For example, when all workloads of a service are always scheduled to run on non-green nodes, the GQ of the service will be 0, and when all workloads of the service are always scheduled to run on green nodes, the GQ of the service will be 100. When the workloads of the service are scheduled across non-green nodes and green nodes, the GQ of the service will be between 0 and 100. If desired, the GQ of the service can be periodically calculated and exported or sent to another computing device.

[0088] In some examples, network controller 24 may consider the current age of a workload to determine its GQ. This means that the GQ calculation starts with the generation of the first workload and ends with the deletion of the last workload. In some examples, the system continuously determines the GQ of a workload as long as the service is active and at least one replica is running.

[0089] Additionally, the network controller 24 may periodically collect or determine workload / service scaling replica counts and green quotient metrics. For example, for a backup service that may run primarily at night, the service replica count may be 2 during the day and may gradually increase to 10 at night.

[0090] The disclosed techniques may use a time series forecasting machine learning model to forecast the replica count of a service for the next T (multiple) time units. T may be a number of minutes, hours, etc. The disclosed techniques may periodically iterate services / workloads to compare their GQ values ​​with the preconfigured service level agreement (SLA) values ​​for each service.

[0091] In some examples, when the predicted scaling for a service is not expansion (it is expected that no new replicas will be generated within the next T (multiple) time units) or the predicted scaling is reduction (it is expected that the number of replicas will decrease within the next T (multiple) time units), the network controller 24 can determine whether the GQ value of the service meets (e.g., is greater than, or is greater than or equal to) a threshold. The threshold can be equal to the corresponding GQ SLA value plus a user-defined amount. In some examples, if the GQ value of the service meets the threshold, the network controller 24 can reschedule the workload to a non-green node, or recommend to the scheduler that the scheduler reschedule the workload to a non-green node. In some examples, if the GQ value of the service does not meet the threshold, the network controller 24 can allow the workload to continue in the current scheduling state. In other words, the network controller 24 may not reschedule the workload.

[0092] In some examples, when the predicted scaling for a service is expansion (new replicas are expected to be generated within the next T (multiple) time units), the network controller 24 can determine whether the predicted GQ value of the service meets the threshold based on its corresponding GQ SLA value. If the GQ value of the service meets the threshold, the network controller 24 can reschedule the workload to a non-green node, or recommend that the scheduler reschedule the workload to a non-green node. If the GQ value of the service does not meet the threshold, the network controller 24 can recommend that the scheduler reschedule the workload to a green node.

[0093] Thus, the techniques of this disclosure may ensure or increase the likelihood that a service is not starved by a greener node. For example, the techniques of this disclosure may reschedule only workloads whose GQs are far above or far below a specified threshold (e.g., at least a user-defined amount above an associated GQ SLA value or at least a user-defined amount below an associated GQ SLA value).

[0094] Figure 3 is a conceptual diagram illustrating a system for carbon-aware predictive workload scheduling and scaling according to one or more aspects of the present disclosure. Figure 3 In the example of , nodes 302A to 302D represent a single node 302 at different times, and node 302 represents a green node. Similarly, nodes 304A to 304D represent a single node 304 at different times, and node 304 represents a non-green node. Nodes 302 and 304 can together represent a cluster. Energy efficiency module 32 is depicted as including telemetry collector 310, telemetry time series database 312, forecast machine learning model 314, rescheduling recommender 316, and scheduler 318.

[0095] For example, at time A, node 302 (shown as node 302A) executes multiple workloads, as depicted by service 2 workload 1 (S21) and service 1 workload 1 (S11). At time A, node 304 (shown as node 304A) executes multiple workloads, as depicted by service 1 workload 2 (S12) and service 2 workload 2 (S22). The workloads of a service may sometimes be referred to as replicas. Figure 3 The workloads shown are shown as examples, and different numbers or types of workloads than shown may be implemented.

[0096] The telemetry collector 310 may collect telemetry data from the nodes 302 and 304. For example, the telemetry collector 310 may collect GQ data and scale factor (SF) data in the telemetry data from the nodes 302 and 304. The SF data may indicate how many copies of each workload may be running on the nodes 302 and 304. For example, the node 302A may indicate to the telemetry collector 310 in the telemetry data that one copy of service 1 is running and one copy of service 2 is running. The node 304A may similarly indicate to the telemetry collector 310 in the telemetry data that one copy of service 1 is running and one copy of service 2 is running. The nodes 302A and 304A may also indicate their corresponding GQs to the telemetry collector 310 in the telemetry data. For example, the node 302A may indicate that the GQ is 100, while the node 304A may indicate that the GQ is 0. It should be noted that in other examples, one or more of nodes 302 or 304 may be gray nodes (e.g., powered by a combination of green and non-green power sources) and have a GQ between 0 and 100. It should be noted that in the event that the GQ is not directly reported in the telemetry data, the computing device may determine the GQ for a node or application based on reported carbon emissions data in accordance with the techniques of this disclosure.

[0097] The telemetry time series database 312 can store telemetry data collected by the telemetry collector 310. The forecasting machine learning model 314 can use the data stored in the telemetry time series database 312 (such as SF data associated with service 1 and service 2 and GQ data associated with node 302 and node 304) to predict the scaling for service 1 and service 2. It should be noted that over time, the predictions made by the forecasting machine learning model 314 and the additional telemetry data associated with the prediction time frame collected by the telemetry collector 310 can be used to train the forecasting machine learning model 314, so that the forecasting machine learning model 314 can be continuously trained. This training may be unsupervised or supervised. In Figure 3 In the example of , the forecast machine learning model 314 can predict a total of 3 copies (S11 to S13) for S1 and a total of 4 copies (S21 to S24) for S2.

[0098] The rescheduling recommender 316 may be configured to determine any rescheduling recommendations based on the predictions from the forecasting machine learning model 314. For example, the rescheduling recommender 316 may obtain GQ data from the telemetry time series database 312 and obtain GQ requirements from the SLAs for service 1 and service 2. In some examples, the GQ SLA requirements may be stored in the telemetry time series database 312. In some examples, the GQ SLA requirements may be stored elsewhere in the system. In either case, the rescheduling recommender 316 may determine the SLA gap between service 1 and service 2. For example, the GQ of service 1 may be 90, and the GQ of service 2 may be 50. The GQ SLA of service 1 may be 75, and the GQ SLA of service 2 may be 70. In this example, the rescheduling recommender 316 may determine that the difference or GQ SLA gap for service 1 is +15 (e.g., GQ is 90-GQSLA is 75=15). Therefore, the GQ of service 1 is 15 greater than the GQ SLA of service 1. 1. In other words, service 1 is greener than required by the SLA for service 1. The rescheduling recommender 316 may determine that the difference or GQ SLA gap for service 2 is -20 (e.g., GQ is 50 - GQ SLA is 70 = -20). Therefore, the GQ of service 2 is 20 lower than the GQ SLA for service 2. In other words, service 2 is less green than required by the SLA for service 2, and the SLA for service 2 is violated. The rescheduling recommender 316 may obtain a GQ SLA rescheduling threshold, for example, from a configuration file. The GQ SLA rescheduling threshold may be a threshold for determining whether to reschedule a workload. For example, the rescheduling recommender may obtain a GQ SLA rescheduling threshold of + / -20, + / -10, etc.

[0099] As shown in node 302B, a new replica of service 1 (S13) may be proposed at time B. Rescheduling recommender 316 may determine that the GQ SLA gap of +15 for service 1 exceeds the GQ SLA rescheduling threshold of + / -10, and may recommend to scheduler 318 that scheduler 318 reschedule S11 and / or S13 to run on node 304 instead of node 302. This is reflected in nodes 302C and 304C. For example, scheduler 318 may reschedule S11 and / or S13 at time C. Rescheduling S11 and / or S13 from a green node (e.g., node 302) to a non-green node (e.g., node 304) may reduce the GQ of service 1, but the GQ of service 1 is much higher than the GQ SLA for service 1 (e.g., exceeds the GQ SLA rescheduling threshold above it). Therefore, scheduler 318 may release green resources on node 302 while still maintaining the GQ SLA for service 1. It should be noted that these techniques may be repeated periodically, so even if both S11 and S13 are rescheduled to node 304, the system may eventually reschedule the workload again based on these techniques.

[0100] Rescheduling recommender 316 may also determine that the GQ SLA gap of Service 2, -20, exceeds the GQ SLA rescheduling threshold of + / -10, and may recommend to scheduler 318 that scheduler 318 reschedule S22 to run on node 302 instead of node 304. This is also reflected in nodes 302C and 304C. For example, scheduler 318 may reschedule S22 at time C. Rescheduling S22 from a non-green node (e.g., node 304) to a green node (e.g., node 302) may increase the GQ of Service 2 in an attempt to bring the GQ of Service 2 into compliance with the GQ SLA of Service 2.

[0101] The forecast machine learning model 314 may predict that new replicas S23, S24, and S31 will be proposed before time D. Because new service 2 replicas are proposed and the GQ of service 2 may still not meet the GQ SLA 70 for service 2, or because the GQ SLA gap of service 2 may still exceed the GQ SLA threshold, the scheduler 318 may schedule new replicas S24 and S23 on a green node (e.g., node 302). A new workload (S31) for the new service may be proposed, and the scheduler 318 may also schedule S31 on a green node, assuming there are sufficient resources to do so, because service 3 may also have a corresponding GQ SLA that cannot be met if S31 is proposed on a non-green node.

[0102] It should be noted that any or all of the telemetry collector 310, telemetry time series database 312, forecast machine learning model 314, rescheduling recommender 316, and / or scheduler 318 may be implemented in a manner similar to that of FIG. Figure 1 The network controller 24 and / or the edge service controller 28 are implemented.

[0103] An example rescheduling recommender algorithm is set out below.

[0104] Function: Rescheduling recommendations

[0105] enter:

[0106] Mapping<WorkloadID,Predicted Replica Count>

[0107] Mapping<WorkloadID,GQ>

[0108] Mapping<WorkloadID,{GQ_SLA,GQ_SLA_RESCHED_THRESHOLD}> Green Compute Node Count (NCg)

[0109] Total Compute Node Count (NCt)

[0110] Output:

[0111] Mapping<NodeType,List of Workloads> Where NodeType = {green|black}

[0112] definition:

[0113]

[0114]

[0115] Figure 4 is a flow diagram illustrating an example technique for carbon-aware workload scheduling and scaling according to one or more aspects of the present disclosure. Figure 4 The example is relative to Figure 1 24, but may be performed by edge service controller 28 and / or any other device capable of performing such techniques. An administrator may input workloads and compute node information (402). For example, an administrator may input a service 1 workload and a service 2 workload to network controller 24. The administrator may also input nodes 302 and 304.

[0116] The network controller 24 may collect scaling and GQ metrics for the workload (404). For example, the network controller 24 may collect historical scaling data indicating the number of workload replicas for each service that may have occurred at different times and a GQ metric that may be used to determine the GQ of the service over time. The network controller 24 may train a forecasting machine learning model 314 (406). For example, the network controller 24 may train a forecasting machine learning model 314 using historical scaling metrics and, in some examples, a GQ metric that may be used to predict future scaling of the workload.

[0117] The network controller 24 may predict the workload copy count (408). For example, the network controller 24 may execute the forecast machine learning model 314 to forecast the workload copy count. The network controller 24 may determine whether to predict expansion (410). For example, the network controller 24 may determine whether more copies of the workload are expected to be generated within a specific time period. If the network controller 24 determines that expansion is predicted (the "yes" path from box 410), the network controller 24 may use the predicted expansion factor to predict the GQ for the service (412). For example, the network controller 24 may predict the GQ based on the workload that is predicted to be expanding on the available compute node resources.

[0118] The network controller 24 may determine whether the predicted GQ will exceed the GQ SLA rescheduling threshold (414). For example, the network controller 24 may determine that the predicted GQ will cause the GQ SLA gap to exceed the GQ SLA rescheduling threshold. If the predicted GQ will exceed the GQ SLA rescheduling threshold (the "yes" path from block 414), the network controller 24 may reschedule the workload to a non-green node (422). If the predicted GQ will not exceed the GQ SLA rescheduling threshold (the "no" path from block 414), the network controller 24 may reschedule the workload to a green node (416).

[0119] Referring back to block 410, if network controller 24 does not predict expansion ("No" path from block 410), network controller 24 may obtain the GQ SLA and GQ SLA rescheduling threshold for the workload (418). For example, the GQ SLA and GQ SLA rescheduling threshold may be input to network controller 24 by an administrator.

[0120] Network controller 24 may determine whether the workload GQ will exceed the GQ SLA rescheduling threshold (420). If the GQ exceeds the GQ SLA rescheduling threshold (the "yes" path from block 420), network controller 24 may reschedule the workload to a non-green node (422). If the GQ does not exceed the GQ SLA rescheduling threshold (the "no" path from block 420), network controller 24 may allow the workload to continue running on the current node (424). In some examples, network controller 24 may do this for each workload.

[0121] In some examples, network controller 24 may process the new replicas in the same manner as the workloads described above within a predicted time period (e.g., time period T). In some examples, network controller 24 may reschedule or schedule the workload to a node that is greener than the current node on which the workload is scheduled, rather than rescheduling or scheduling the workload to a green node. In some examples, network controller 24 may reschedule or schedule the workload to a node that is less green than the current node on which the workload is scheduled, rather than rescheduling or scheduling the workload to a non-green node.

[0122] Figure 5 is a flow chart illustrating other example techniques for carbon-aware workload scheduling and scaling according to one or more aspects of the present disclosure. Figure 5 The example is described with respect to the network controller 24, but Figure 5 The techniques may be performed by the network controller 24, the edge service controller 28, and / or any other device capable of performing such techniques.

[0123] Network controller 24 may predict the occurrence of a scaling event for a first service (502). For example, network controller 24 may execute a machine learning model and determine that a predicted amount of workload for the first service over a next T time period (e.g., a number of minutes, a number of hours, a number of days, etc.) is greater than a current amount of workload for the first service, which may indicate that a scaling event for the first service is possible or expected over a next T time period.

[0124] The network controller 24 may determine a predicted green level for the first service based on the predicted occurrence of a scaling event for the first service, the predicted green level based on the current green level for the first service and the predicted expansion factor (504). For example, the network controller 24 may determine the current green level for the first service, such as the GQ for the first service. app. The network controller 24 can predict a predicted green level based on where the additional replicas are predicted to be scheduled (e.g., on green nodes or on non-green nodes) and the current green level. For example, if it is predicted that all additional replicas will be scheduled on green nodes, the predicted green level may be higher than the current green level. For example, if the first service currently schedules 3 workloads on non-green nodes and no workloads are currently scheduled on green nodes, the current green level for the first service may be 0%. If two additional replicas are predicted to be scheduled and both replicas are predicted to be scheduled on green nodes, the predicted green level for the first service may be 2 / 5 or 40%.

[0125] Network controller 24 may determine whether the predicted green level for the first service meets a first threshold (506). For example, the first threshold may be based on a green SLA requirement for the first service, such as 50%. For example, the first threshold may be equal to the green SLA requirement for the first service plus some user-definable amount or percentage, such as 15%. In such an example, the first threshold may be equal to 50%+15% or 65%.

[0126] The network controller 24 may perform a first action on a first workload of the first service based on whether the predicted green level for the first service meets a first threshold (508). For example, if the predicted green level for the first service meets the first threshold, the first action may include rescheduling the first workload to a non-green node. If the predicted green level for the first service does not meet the first threshold, the first action includes rescheduling the first workload to a green node. As used in this context, meeting a threshold may mean greater than the first threshold or greater than or equal to the first threshold. In other contexts, meeting a threshold may mean less than or less than or equal to the threshold.

[0127] In some examples, to predict the occurrence of a scaling event for the first service, network controller 24 may execute a machine learning model. In some examples, to predict the occurrence of a scaling event for the first service, network controller 24 may predict a workload replica count for the first service, and determine that the predicted workload replica count for the first service is higher than a current workload replica count for the first service. In some examples, the predicted expansion factor is based on the predicted workload replica count for the first service and the current workload replica count for the first service.

[0128] In some examples, the first threshold is based on a service level agreement requirement applicable to the first service.

[0129] In some examples, the network controller 24 may predict the absence of a scaling event for the second service. In some examples, the network controller 24 may determine the current green level for the second service based on the predicted absence of a scaling event for the second service. In some examples, the network controller 24 may determine whether the current green level meets a second threshold. In some examples, the network controller 24 may perform a second action on a second workload of the second service based on whether the current green level meets a second threshold. In some examples, the current green level meets the threshold, and the second action includes rescheduling the second workload to a non-green node. In some examples, the current green level does not meet the threshold, and the second action includes allowing the second workload to continue running on the current node.

[0130] In some examples, the network controller 24 may predict the occurrence of a scaling event for the second service. In some examples, the network controller 24 may determine a predicted green level for the second service based on the predicted occurrence of the scaling event for the second service, the predicted green level for the second service being based on the current green level for the second service and the predicted expansion factor for the second service. In some examples, the network controller 24 may compare the predicted green level for the first service with the predicted green level for the second service. In some examples, the network controller 24 may assign a first priority to the first service based on the comparison, and assign a second priority to the second service for scaling. In some examples, the first priority is lower than the second priority. In some examples, the network controller 24 may reserve one or more non-green or less green resources for one or more copies of the first service based on the first priority and the second priority. In some examples, the network controller 24 may move the first workload to a non-green or less green resource based on the first priority and the second priority, and reserve the vacated green resources for one or more copies of the second workload of the second service.

[0131] The techniques described herein may be implemented in hardware, software, firmware, or any combination thereof. The various features described as modules, units, or components may be implemented together in an integrated logic device or separately as discrete but cooperable logic devices or other hardware devices. In some cases, the various features of the electronic circuit system may be implemented as one or more integrated circuit devices, such as an integrated circuit chip or chipset.

[0132] If implemented in hardware, the disclosure may be directed to an apparatus, such as a processor or an integrated circuit device, such as an integrated circuit chip or chipset. Alternatively or additionally, if implemented in software or firmware, the techniques may be implemented at least in part by a computer-readable data storage medium that includes instructions that, when executed, cause a processor to perform one or more of the above methods. For example, a computer-readable data storage medium may store such instructions for execution by a processor.

[0133] The computer-readable medium may form part of a computer program product, which may include packaging materials. The computer-readable medium may include computer data storage media, such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic or optical data storage media, etc. In some examples, the article of manufacture may include one or more computer-readable storage media.

[0134] In some examples, computer-readable storage media may include non-transient media. The term "non-transient" may indicate that the storage medium is not implemented in a carrier wave or propagating signal. In some examples, non-transient storage media may store data that may change over time (e.g., in RAM or cache).

[0135] The code or instruction may be software and / or firmware executed by a processing circuit system that includes one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuit systems. Therefore, the term "processor" as used herein may refer to any of the foregoing structures or any other structure suitable for implementing the techniques described herein. In addition, in some aspects, the functionality described in the present disclosure may be provided in a software module or a hardware module.

Claims

1. A computing device, comprising: one or more memories; One or more processors, communicatively coupled to the one or more memories, the one or more processors configured to: Predicting an occurrence of a scaling event for the first service; determining, based on the predicted occurrence of the scaling event for the first service, a predicted green level for the first service, the predicted green level being based on a current green level for the first service and a predicted expansion factor; determining whether the predicted green level for the first service satisfies a first threshold; as well as Based on whether the predicted green level for the first service satisfies the first threshold, a first action is performed on a first workload of the first service.

2. The computing device of claim 1, wherein the predicted green level for the first service satisfies the first threshold, and wherein the first action comprises rescheduling the first workload to a non-green node. 3 . The computing device of claim 1 , wherein the predicted green level for the first service does not satisfy the first threshold, and wherein the first action comprises rescheduling the first workload to a green node.

4. The computing device of claim 1, wherein the one or more processors are configured to execute a machine learning model in order to predict the occurrence of the scaling event for the first service.

5. The computing device of any one of claims 1 to 4, wherein to predict the occurrence of the scaling event for the first service, the one or more processors are configured to: predicting a workload replica count for the first service; and It is determined that the predicted workload copy count for the first service is higher than the current workload copy count for the first service.

6. The computing device of claim 5, wherein the predicted expansion factor is based on the predicted workload copy count of the first service and the current workload copy count of the first service.

7. The computing device of any one of claims 1 to 4, wherein the first threshold is based on a service level agreement requirement applicable to the first service.

8. The computing device of any one of claims 1 to 4, wherein the one or more processors are further configured to: It is predicted that there is no scaling event for the second service; determining a current green level of the second service based on the predicted absence of the scaling event for the second service; determining whether the current green level satisfies a second threshold; as well as Based on whether the current green level satisfies the second threshold, a second action is performed on a second workload of the second service.

9. The computing device of claim 8, wherein the current green level satisfies the second threshold, and wherein the second action comprises rescheduling the second workload to a non-green node.

10. The computing device of claim 8, wherein the current green level does not satisfy the second threshold, and wherein the second action comprises allowing the second workload to continue running on the current node.

11. The computing device of any one of claims 1 to 4, wherein the one or more processors are further configured to: predicting an occurrence of a scaling event for a second service; determining, based on the predicted occurrence of the scaling event for the second service, a predicted green level for the second service, the predicted green level for the second service being based on a current green level for the second service and a predicted expansion factor for the second service; comparing the predicted green level for the first service with the predicted green level for the second service; as well as A first priority is assigned to the first service and a second priority is assigned to the second service for scaling based on the comparison.

12. The computing device of claim 11, wherein the first priority is lower than the second priority, and wherein the one or more processors are further configured to reserve one or more non-green or less-green resources for one or more copies of the first service based on the first priority and the second priority.

13. The computing device of claim 11, wherein the first priority is lower than the second priority, and wherein the one or more processors are further configured to move the first workload to non-green or less-green resources and reserve the vacated green resources for one or more copies of the second workload of the second service.

14. A method comprising: Predicting, by one or more processors, an occurrence of a scaling event for the first service; determining, by the one or more processors, a predicted green level for the first service based on the predicted occurrence of the scaling event for the first service, the predicted green level being based on a current green level for the first service and a predicted expansion factor; determining, by the one or more processors, whether the predicted green level for the first service satisfies a first threshold; as well as A first action is performed, by the one or more processors, on a first workload of the first service based on whether the predicted green level for the first service satisfies the first threshold.

15. The method of claim 14, wherein the predicted green level for the first service satisfies the first threshold, and wherein the first action comprises rescheduling the first workload to a non-green node.

16. The method of claim 14, wherein the predicted green level for the first service does not meet the first threshold, and wherein the first action comprises rescheduling the first workload to a green node.

17. The method according to any one of claims 14 to 16, wherein predicting the occurrence of the scaling event for the first service comprises: predicting a workload replica count for the first service; as well as It is determined that the predicted workload copy count for the first service is higher than the current workload copy count for the first service.

18. The method of claim 17, wherein the predicted expansion factor is based on the predicted workload copy count of the first service and the current workload copy count of the first service.

19. The method according to any one of claims 14 to 16, further comprising: predicting, by the one or more processors, the absence of a scaling event for a second service; determining, by the one or more processors, a current green level of the second service based on the predicted absence of the scaling event for the second service; determining, by the one or more processors, whether the current green level satisfies a second threshold; as well as A second action is performed, by the one or more processors, on a second workload of the second service based on whether the current green level satisfies the second threshold.

20. A computer-readable storage medium encoded with instructions for causing one or more programmable processors to perform the method according to any one of claims 14-19.

Citation Information

Patent Citations

  • Tunneled packet aggregation for virtual networks

    US9571394B1

Cited By

  • Scheduling method in a high performance computer

    EP4807548A1