Dependence-aware intelligent green workload expander
By calculating and considering the direct and indirect carbon emissions of workloads, determining replica counts and scheduling replica generation or destruction, the problem of inaccurate carbon emissions in the prior art is solved, achieving more accurate carbon emission management and sustainability of energy use.
Patent Information
- Application Number
- CN202411247863.9
- 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
The prior art fails to fully consider direct and indirect carbon emissions when scaling workloads, resulting in inaccurate carbon emissions SLA.
By determining that the first workload depends on other workloads, calculate direct and indirect carbon emissions, determine the replica count of the workload based on combined emissions and emission thresholds, and schedule the generation or destruction of the replica to achieve replica counting.
A more accurate carbon emission SLA is achieved, ensuring that direct and indirect carbon emissions are taken into account during workload expansion and improving the sustainability of energy use.
Smart Images

Figure CN119597440A_ABST
Abstract
Description
[0001] Related Applications
[0002] This application claims the benefit of U.S. Patent Application No. 18 / 759,383 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 which 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 workload scaling are described to address issues and / or SLAs regarding the use of green and / or non-green energy sources (sometimes referred to as black energy sources). Currently, carbon emission-aware workload scalers can be used for horizontal scaling (e.g., scaling multiple copies of a workload). In such scalers, the scaling factor for generating copies of a particular workload is calculated based on the carbon emission index of the particular workload. However, generating copies of a particular workload may increase the number of other workloads that the particular workload depends on. Such other workloads may result in carbon emissions. Therefore, scaling a workload may result in more carbon emissions than the carbon emissions directly associated with the particular workload. The technology disclosed herein provides a more accurate carbon emission SLA implementation when determining how to scale a particular workload, taking into account not only the carbon emissions directly attributed to the particular workload, but also the indirect carbon emissions caused by scaling other workloads that the particular workload depends on.
[0007] In one example, the present disclosure describes a computing system comprising one or more memories and one or more processors communicatively coupled to the one or more memories, the one or more processors configured to: determine that a first workload is dependent on one or more other workloads; determine a measure of a first carbon emission associated with the first workload; determine a predicted measure of a second carbon emission associated with the one or more other workloads; determine a combined emission, the combined emission comprising the measure of the first carbon emission and the predicted measure of the second carbon emission; determine a replica count of the first workload based on the combined emission and an emission threshold; and schedule the generation of replicas of the first workload or the destruction of replicas of the first workload to achieve the replica count.
[0008] In another example, the present disclosure describes a method comprising: determining, by one or more processors, that a first workload depends on one or more other workloads; determining, by one or more processors, a measure of a first carbon emission associated with the first workload; determining, by one or more processors, a predicted measure of a second carbon emission associated with one or more other workloads; determining, by one or more processors, a combined emission comprising the measure of the first carbon emission and the predicted measure of the second carbon emission; determining, by one or more processors, a replica count of the first workload based on the combined emission and an emission threshold; and scheduling, by one or more processors, the generation of replicas of the first workload or the destruction of replicas of the first workload to achieve the replica count.
[0009] In another example, the present disclosure describes a non-transitory computer-readable medium storing instructions that, when executed, cause one or more processors to determine that a first workload is dependent on one or more other workloads; determine a measure of a first carbon emission associated with the first workload; determine a predicted measure of a second carbon emission associated with the one or more other workloads; determine a combined emission that includes the measure of the first carbon emission and the predicted measure of the second carbon emission; determine a replica count of the first workload based on the combined emission and an emission threshold; and schedule the generation of replicas of the first workload or the destruction of replicas of the first workload to achieve the replica count.
[0010] 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
[0011] 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.
[0012] Figure 2 is a block diagram illustrating an example computing device in accordance with the techniques described herein.
[0013] Figure 3 is a conceptual diagram illustrating example scaling of a workload in accordance with one or more aspects of the present disclosure.
[0014] Figure 4 is a block diagram illustrating an example cluster controller including a dependency-aware green workload scaler according to one or more aspects of the present disclosure.
[0015] Figure 5 is a flow chart illustrating an example technique for a dependency-aware smart green workload scaler according to one or more aspects of the present disclosure.
[0016] Figure 6 is a flow chart illustrating other example techniques for a dependency-aware smart green workload scaler according to one or more aspects of the present disclosure.
[0017] Like reference numerals denote like elements in the description and drawings. DETAILED DESCRIPTION
[0018] Figure 1is a block diagram of an example system 8 with a computing infrastructure that illustrates an example of a dependency-aware intelligent green workload scaler described herein. Typically, 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 5, 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 5 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.
[0019] Although customer site 11 and public network 5 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 5 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.
[0020] The service provider network 7 provides packet-based connectivity to attached customer sites 11, data centers 10, and public networks 5. 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.
[0021] In some examples, data center 10 may represent one of many geographically distributed network data centers. Figure 1As 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.
[0022] 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.
[0023] 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.
[0024] 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.
[0025] 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 the NFV architecture.
[0026] 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.
[0027] 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."
[0028] 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.
[0029] 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.
[0030] 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.
[0031] Edge service controller 28 may, in part, orchestrate services to be performed by processing unit 25 (e.g. Figure 2The invention manages the operation of the edge service platform within the NIC 13 by including the following: services 233 shown in the figure); 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.
[0032] 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 network 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.
[0033] Any of the servers 12 or NICs 13 may execute a workload of a service or application. The execution of the workload may consume energy provided by the power supply 30. In some examples, a service level agreement (SLA) may require a service or application so that the workload of the service or application does not exceed a specified "green" level or result in a specified level of carbon dioxide (CO2) emissions. Therefore, the network controller 24 and / or the edge service controller 28 may monitor and determine the energy consumption and / or energy efficiency associated with the workload of the service or application.
[0034] In some examples, network controller 24 or edge service controller 28 determines 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 1The 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 / or 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] As an example, the network controller 24 and / or edge service controller 28 may include an energy efficiency module 32 that is configured to monitor and / or determine the energy efficiency of a data center, cluster (including a cluster spanning multiple data centers), server, NIC, other computing nodes, workloads, etc.
[0036] exist Figure 1 In the example of FIG. 1 , 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 sources 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 the power 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.
[0037] The energy efficiency module 32 may obtain telemetry data, including energy usage data of a computing node, such as any of the servers 12 and / or the NICs 13. The current energy usage data may include, for example, the amount of power currently used by the computing node, the amount of carbon emissions (CO2 emissions) associated with the power currently used by the computing node, and the like. In some examples, the energy efficiency module 32 may obtain telemetry data, including energy usage data and / or emissions data, based on the workload. For example, the energy efficiency module 32 may obtain telemetry data indicating that a particular workload uses a particular number of kilowatt-hours or has a property of emitting a particular number of grams of CO2 per hour.
[0038] In some examples, energy efficiency module 32 may determine the power currently used by the workload or the carbon emissions associated with the power currently used by the workload. For example, energy efficiency module 32 may determine the power currently used by the workload or the carbon emissions associated with the power currently used by the workload as a pro rata share of the power or carbon emissions associated with all workloads currently executing on the computing node providing energy usage data. In some examples, energy efficiency module 32 may determine the power currently used by the workload or the carbon emissions associated with the power currently used by the workload by comparing the power or emissions used when the workload is not running with the power or emissions used when the workload is running.
[0039] Any workload executing on server 12 and / or NIC 13 may depend on one or more other workloads. For example, the workload on server 12A may depend on the workload on NIC 13D. In some examples, a workload is said to depend on another workload if it makes a function call to the other workload. Each of the workloads may consume energy provided by power supply 30. In some examples, one workload may depend on another workload, which in turn may depend on yet another workload, thereby forming a chain of dependencies. Figure 3 Dependencies are discussed in further detail.
[0040] For example, network controller 24 may determine that a first workload executed on server 12A is dependent on one or more other workloads that may be executed on NIC 13D. Network controller 24 may determine a first measure of carbon emissions associated with the first workload executed on server 12A. The first measure of carbon emissions may be a measure of carbon emissions that is directly attributable to the first workload.
[0041] The network controller 24 may also determine a predicted measure of second carbon emissions associated with the one or more other workloads. For example, the predicted measure of the second carbon emissions may be an estimated measure of indirect carbon emissions caused by generating (multiple) copies of the first workload on the server 12A. The indirect carbon emissions may include carbon emissions caused by additional copies of the one or more other workloads that will be generated to meet the increased demand for the (multiple) additional copies of the first workload.
[0042] The network controller 24 may determine a combined emission including a measure of the first carbon emission and a predicted measure of the second carbon emission. The network controller 24 may determine a replica count of the first workload based on the combined emission and the emission threshold, and schedule generation of a replica of the first workload or destruction of a replica of the first workload to achieve the replica count.
[0043] 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 124. 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.
[0044] 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).
[0045] 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.
[0046] The main memory 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 media 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 the computer. The main memory 244 provides a physical address space consisting of addressable memory locations.
[0047] 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.
[0048] The memory 244 , NIC 230 , storage disk 246 , and microprocessor 210 provide an operating environment for executing a software stack of a hypervisor 214 and one or more virtual machines 228 managed by the hypervisor 214 .
[0049] 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.
[0050] 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.
[0051] 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.
[0052] 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).
[0053] 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.
[0054] Hypervisor 214 includes a physical driver 225 to use the physical functions provided by NIC 230. In some cases, NIC 230 can also implement SR-IOV to enable sharing of physical network functions (I / O) between virtual machines. Each port of NIC 230 can be associated with a different physical function. Shared virtual devices (also referred to as virtual functions) provide dedicated resources so that each virtual machine 228 (and the corresponding guest operating system) in virtual machines 228 can access the dedicated resources of NIC 230, so NIC 230 appears to be a dedicated NIC to each virtual machine in the virtual machine. A virtual function can represent a lightweight PCIe function that shares physical resources with a physical function and other virtual functions. According to the SR-IOV standard, 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.
[0055] 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 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.
[0056] The NIC 230 may also include a hardware-based Ethernet bridge or embedded switch 234. The Ethernet bridge / embedded switch 234 may perform Layer 2 forwarding between virtual functions and physical functions of the NIC 230. Thus, in some cases, the Ethernet bridge / embedded switch 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 / embedded switch 234 may be physically separate from the processing unit 25.
[0057] 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 1 A 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.
[0058] 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.
[0059] 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).
[0060] In one implementation, the computing device 200 includes a virtual network (VN) agent (not shown) that controls the overlay of a virtual network 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 a virtual machine 228 and a virtual network controller (such as a network 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.
[0061] 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.
[0062] 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.
[0063] 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.
[0064] 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 OS kernel, or other kernel for managing the hardware resources of the processing unit 25 and managing the user space 241.
[0065] 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.
[0066] 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.
[0067] 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.
[0068] In some examples, edge service controller 28 manages the operation of processing unit 25 by, for example, orchestrating and configuring services 233 performed by 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 NIC 230; and managing connectivity between various services 233 running on NIC 230. Example resources on NIC 230 include memory 227 and processing circuitry 231. In some examples, edge service controller 28 may invoke one or more actions to improve energy usage of data center 10 via managing the operation of processing unit 25. In some examples, edge service controller 28 may set a target green quotient for processing unit 25 that causes processing unit 25 to select or adjust a particular routing or tunneling protocol, a particular algorithm, an MTU size, an interface, and / or any service 233.
[0069] In some examples, (multiple) virtual machines 228 can execute multiple different workloads, such as workloads of multiple services. Energy efficiency module 32 can obtain telemetry data of computing device 200, including energy usage data, emission data, etc., to determine resource usage caused by the workload executed by computing device 200, and scale the workload based on the telemetry data from computing device 200.
[0070] In a cluster of compute nodes, an expander can scale a workload by spawning additional copies of the workload. Typically, an expander can scale a workload based on resource usage metrics or some load indication metrics. For example, in Kubernetes, an autoscaler can be configured for a workload to scale when the workload's CPU resource usage exceeds a threshold limit of 80%. Another example can be that a web server workload may be scaled when the incoming http request count exceeds a target threshold of 10K requests.
[0071] Currently, carbon-aware workload scalers are available. In such scalers, the scaling factor for scaling a particular workload is calculated based on the carbon emission index of the particular workload. However, these scalers do not consider indirect carbon emissions due to scaling of a particular workload. For example, the workloads of a cluster may be interdependent, such that scaling up / down of one workload may result in scaling up / down of one or more additional, interdependent workloads.
[0072] For example, when a regular workload is scaled, this may result in the scaling of cloud-native network functions. When a web server is scaled due to an increase in incoming request counts, this scaling may also result in the scaling of database, storage, and / or network function workloads. For example, a web server workload may depend on storage and network function workloads. Carbon emissions caused by the scaling of these additional workloads are currently not considered when calculating the scaling factor for a web server.
[0073] With existing green-aware scalers, the scaler may allow a specific workload to scale to a maximum configuration value when the specific workload results in a reduction in carbon emissions. However, such scaling may result in scaling of other workloads that the specific workload depends on, an increase in network bandwidth, and / or an eventual scaling of network functions. Due to the scaling of the specific workload, the resulting scaling of other workloads may also result in an increase in carbon emissions. Therefore, the carbon emissions SLA for a specific workload may not be accurate if the indirect emissions caused by the scaling of the specific workload are not actually considered.
[0074] This carbon emission may be referred to herein as the indirect carbon emission of a particular workload. In some examples, a device such as network controller 24 may determine the carbon emission of a workload as:
[0075] Carbon emissions of workload = direct CO2 emissions (workload) + indirect CO2 emissions (workload)
[0076] According to the techniques of this disclosure, the carbon-aware scaler can also take into account the estimated indirect CO2 emissions to calculate the scaling factor for the workload. Thus, by taking into account end-to-end emissions when scaling the workload of the application and any workloads that the workload depends on, the techniques of this disclosure help to achieve green SLA requirements, or mark an application as greener.
[0077] According to the techniques of the present disclosure, in some examples, the system may use machine learning techniques to estimate the indirect CO2 emissions caused by the expansion of a particular workload. The machine learning-based estimation function may use the scaling telemetry data of the relevant workloads and network functions to derive the approximate indirect carbon emissions caused by the particular workload. When determining the scaling factor for a particular workload, the network controller 24 may use a scaling factor derivation function to derive the scaling factor, which may take into account both the direct carbon emissions and the estimated indirect carbon emissions of the particular workload. For example, the scaling factor may be determined as a linear function of both the direct carbon emissions and the estimated indirect carbon emissions:
[0078] Scaling Factor (Workload) = Linear_Function (Direct CO2 Emissions, Indirect CO2 Emissions)
[0079] For example, the network controller 24 may employ a derivation function that uses linear programming function(s) to derive the maximum possible scaling factor based on both direct and indirect carbon emissions.In some examples, scaling factor determination may be time-limited using a predictive machine learning algorithm.
[0080] Figure 3 is a conceptual diagram illustrating an example scaling of a workload according to one or more aspects of the present disclosure. A service is shown at a first time (service 300) and at a second time (service 310) after service 1 (S1) has been scaled. In service 300, S1 and service 2 (S2) each have one workload copy, which is represented by the rectangles above S1 and S2. Service 3 (S3) and service 4 (S4) each have two workload copies. S1 depends on S3 and S4, S3 depends on S4, and S2 depends on S4. For example, S1 can make a function call to S3, and both S2 and S3 can make a function call to S4. At a second time, as indicated by service 310, S1 is expanded from one workload copy to two workload copies (as indicated by a blank rectangle and a filled rectangle above S1). This scaling in S1 results in a scaling in S3 from 2 workload copies to 3 workload copies. This scaling in S3 results in a scaling in S4 from 2 workload copies to 3 workload copies. Since the scaling of S1 may lead to the scaling of S3 and S4, the scaling of S1 may indirectly increase carbon emissions due to the scaling of S3 and S4.Workloads that another workload may depend on may include infrastructure workloads, such as network functions, storage, backup, and the like.
[0081] Because indirect scaling may increase carbon emissions, it may be desirable to consider the emissions of the workload plus the emissions of other workloads on which the workload depends when determining a scaling factor for a workload. For example, the network controller 24 may use emissions information for a specific workload and any workloads on which the specific workload depends to determine the replica count of a specific workload. For example, the network controller 24 may determine the direct emissions of a specific workload (S1) as a measure of CO2 emissions that are attributed only to the specific workload (S1) or caused only by the specific workload (S1). The network controller 24 may determine the indirect emissions of a specific workload (S1) as a measure or estimate of CO2 emissions caused by all workloads (S3 and S4) that the specific workload ultimately depends on. The network controller 24 may determine the combined emissions of a specific workload as the sum of the direct emissions of the specific workload and the indirect emissions of the specific workload.
[0082] Figure 4is a block diagram illustrating an example cluster controller including a dependency-aware green workload scaler according to one or more aspects of the present disclosure. Figure 4 In the example of FIG. 4 , a cluster controller 410 for a cluster having two nodes (i.e., node 402A and node 402B) is shown. The cluster controller 410 may be implemented by the network controller 24, the edge service controller 28, and / or any other device capable of performing the techniques of the present disclosure. Figure 4 The example of is shown as having two nodes, but the number of nodes may be less than or greater than two. The cluster controller 410 may periodically determine how to scale the workload of the nodes 402A and / or 402B.
[0083] like Figure 4 As depicted, node 402A executes multiple workloads, as depicted by service 1 workload 1 (S11), service 2 workload 1 (S21), service 3 workload 1 (S31), and service 4 workload 2 (S42). Node 402B executes service 1 workload 2 (S12), service 2 workload 2 (S22), service 2 workload 3 (S23), service 3 workload 2 (S32), and service 4 workload 1 (S41). Workloads of services may sometimes be referred to as replicas. The workloads shown as being implemented on nodes 402A and 402B are shown as examples, and different numbers or types of workloads than shown may be implemented.
[0084] The cluster controller 410 may include an autoscaler. For example, one or more of the depicted elements of the cluster controller 410 may implement an autoscaler. When configuring an autoscaler for a workload, a scaling recommender of a cluster controller (such as the network controller 24) may periodically calculate a recommended replica count (RC). For example, the autoscaler may recommend scaling by a factor of 2 or 3 when scaling out, such that for a workload with 2 replicas, the scaler may recommend a total of 4 or 6 replicas.
[0085] In some examples, the cluster controller 410 (e.g., the indirect emissions calculator 416 and / or the workload scaling calculator 420) can determine multiple replica counts (RCs) as recommendations for scaling. For example, the cluster controller 410 determines each RC based on a corresponding metric in the following metrics: a) a resource or service / application metric (e.g., a service load metric) (RC1); b) the direct emissions of the workload (RC2); and c) the combined CO2 emissions of the workload (e.g., when the workload depends on one or more other workloads) (RC3). In some examples, the direct emissions of the workload may not exceed a user-definable threshold. In this case, the RC in b) can be limited.
[0086] In some examples, cluster controller 410 may recommend an RC that is no higher than an RC derived based on CO2 emissions. For example, an RC based on emission indicator(s) may act as a stop gate or limiter for workload scaling recommender 422. Current autoscalers do not consider the combined CO2 emissions of workloads and ignore any indirect CO2 emissions that may result from scaling a workload.
[0087] For example, the indicator collector 412 can collect resource and / or application indicators and CO2 emission indicators from the nodes 402A and 402B. The indicator collector 412 can store such indicators in one or more indicator databases, such as the indicator database 414. For example, the nodes 402A and 402B can report indicators including resource use / unuse, active workloads, etc. The nodes 402A and 402B can also report CO2 emission indicators for each workload. The CO2 emission indicators can be determined by the nodes 402A and 402B by any of the techniques described herein or by any other techniques.
[0088] Indirect emissions calculator 416 can read resource and application metrics and CO2 emissions metrics from metrics database 414. Indirect emissions calculator 416 can also read configuration information from configuration database 418, which can indicate which workloads depend on which other workloads. Indirect emissions calculator 416 can determine or estimate indirect emissions associated with a workload. In some examples, indirect emissions calculator 416 can determine the combined CO2 emissions of the workload.
[0089] In some examples, the indirect emissions calculator may include a machine learning model that can learn patterns in the metrics database 414. In some examples, the machine learning model can determine which workloads depend on which other workloads. For example, over time (e.g., a week or more), the metrics collector 412 can collect enough metrics that the machine learning model can use to determine patterns about how the scaling of one application affects the scaling of the application(s) that the one application depends on. In some examples, the machine learning model can determine a scaling factor for each workload that a given workload depends on. For example, referring to Figure 3 , the machine learning model can determine that when a new copy of S1 is generated, new copies of S3 and S4 will be generated to meet the increased demand on S3 and S4 created by the new copy of S1.
[0090] For example, the indirect emission calculator 416 can use the scaling indicator data to learn the relative scaling factors (RSFs) of the workload(s) that a particular workload depends on. Indirect emission calculator 416. The indirect emission calculator 416 can determine the RSF using general correlation machine learning models that use replica counts of workloads (e.g., scaling statistics). The RSF can indicate how the replica counts of workloads that a particular workload depends on vary with respect to the replica count of the particular workload. The RSF can be a number that is a correlation coefficient between the replica count of a particular workload and any workload that the particular workload depends on. For example, workload W1 has an RSF = 2 for W2 and an RSF = 1 for W3, which means that when W1 is scaled by 1 replica, W2 will scale by 2 replicas and W3 will scale by 1 replica.
[0091] The indirect emissions calculator 416 may use the emissions metrics stored in the metrics database 414. For example, the indirect emissions calculator 416 may determine or obtain (e.g., read from the metrics database 414) the workload emissions rate (WER). The WER may be a measure of emissions caused by or attributed to the workload per unit time. For example, if the WER of the workload is 150 gCO2 / hour, and the workload runs for one hour, then the workload directly causes or is attributed to causing approximately 150 grams of CO2 emissions.
[0092] If the dependent workload is scaled, the indirect exhaustion calculator 416 may determine the indirect scaling (IS) of the workload as the sum of the estimated replicas of the workloads that the dependent workload depends on. For example, IS=sum[(DR*WRSF1)+(DR*WRSF2)+...+(DR*WRSFn)].
[0093] Indirect emission calculator 416 may determine the indirect emission (IE) of the workload as IE=sum[(DR*WRSF1*WER1)+(DR*WRSF2*WER2)+...+(DR*WRSFn*WERn)].
[0094] In some examples, the indirect emissions calculator 416 can send the indirect emissions associated with the workload to the workload scaling calculator 420, and the workload scaling calculator 420 can calculate the combined CO2 emissions of the workload. In such examples, the workload scaling calculator 420 can include a machine learning model similar to that discussed above with respect to the indirect emissions calculator 416.
[0095] The workload scaling calculator 420 may read resource and application metrics from the database 414 and calculate a plurality of workload scaling options. For example, the workload scaling calculator may determine a plurality of workload scaling options or RCs, each workload scaling option or RC being based on one of a) resource or service / application metrics (e.g., service load metrics) (RC1); b) direct emissions of the workload (RC2); or c) combined CO2 emissions of the workload (e.g., when the workload depends on one or more other workloads) (RC3).
[0096] For example, in each periodic iteration, the workload scaling calculator 420 may calculate the RC to run based on the current value of the configuration metric of the autoscaler for the particular workload. For example, the workload scaling calculator 420 may calculate the scaling calculation based on the resource or application metric. For example, the workload scaling calculator 420 may determine the replica count 1 (RC1) as:
[0097] RC1=ceil[currentReplicas*(currentMetricValue / desiredMetricValue)].
[0098] The workload scaling calculator 420 may calculate the replica count based on the current workload drain and any drain threshold that may be configured. For example, the workload scaling calculator 420 may determine the replica count 2 (RC2) as:
[0099] RC2 = ceil[currentReplicas*(carbon emission threshold / current workload emission)].
[0100] The workload scaling calculator 420 may calculate the replica count based on the combined emission workload and any combined emission threshold that may be configured. For example, the workload scaling calculator 420 may determine the replica count 3 (RC3) as:
[0101] RC3 = ceil[currentReplicas*(combined carbon emission threshold / combined current workload emission)].
[0102] The workload scaling recommender 422 may select one of a plurality of workload scaling options (e.g., RC1, RC2, or RC3) to implement for a given workload. For example, the workload scaling recommender 422 may recommend the lower of an emission-based option or a resource- or service / application-based option. For example, when the workload does not depend on any other workload, the workload scaling recommender 422 may recommend the lower of RC1 or RC2. When the workload depends on at least one other workload, the workload scaling recommender 422 may recommend the lower of RC1 or RC3.
[0103] For example, briefly returning a reference Figure 3 , S2 in service 300 is currently running with a replica count of 1. In a certain iteration, the workload scaling calculator 420 may calculate an RC calculated based on a resource or application metric (incoming_http_request_total) of workload S2, i.e., RC1=3. For example, the current emissions of S2 may be 1000 grams (g) of CO2, and the emission threshold may be 1800g CO2, which may be specified by the SLA in some examples. The workload scaling calculator 420 may determine that RC2=ceil[current replica count*1800 / 1000]=ceil[1*1800 / 100]=2. S2 depends on S4 and may have a relative scaling factor (RSF)=1. The WL scaling calculator 420 (or the indirect emissions calculator 416) may determine that the combined emissions of S2=current emissions of S2+estimated emissions of S4=1000gCO2+1200gCO2=2200gCO2. The 1200 g CO2 associated with S4 can be based on the current emission index of S4 and the RSF of S4. Therefore, RC3 = ceil [current replica * (emission threshold / combined emissions)] = ceil [1 * 1800 / 2200] = 1. Although described here for illustrative purposes, it should be noted that if the workload does depend on one or more other workloads, the workload scaling calculator 420 may not calculate RC2 because RC2 cannot be greater than RC3.
[0104] Therefore, in this example, RC1=3, RC2=2, RC3=1. Since RC1>RC3, the workload scaling recommender 422 can recommend RC3. If S2 does not depend on S4, the workload scaling recommender 422 will recommend RC2, and the cluster workload will control the cluster workload scheduler to generate another copy of S2. In fact, by considering the indirect impact of expanding S2 on CO2 emissions, the cluster controller 410 does not allow S2 to be expanded. Therefore, the cluster controller 410 ensures that S2 remains a green workload, for example, configured as specified in the SLA.
[0105] Cluster workload manager 424 may control cluster workload scheduler 426 to implement the recommended RC option. Cluster workload scheduler 426 may schedule the creation or destruction of workload replicas on nodes 402A and / or 402B to follow the recommended RC option. For example, if recommended service 2 has only 2 replicas, cluster workload scheduler 426 may schedule the destruction of workload S23 on node 402B. If recommended service 4 has 3 replicas, cluster workload scheduler 426 may schedule the creation of a third workload replica (S43-not shown) on one of nodes 402A or 402B.
[0106] Figure 5 is a flow chart illustrating an example technique for a dependency-aware intelligent green workload scaler 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.
[0107] The network controller 24 may pick a workload (502). For example, the network controller 24 may select workload S1. The network controller 24 may check to see if an autoscaler is configured for the selected workload (504). The network controller 24 may determine if an autoscaler is configured for the selected workload (506). For example, the network controller 24 may read configuration data related to workload S1. If an autoscaler is not configured for the workload (the "No" path from block 506), the network controller 24 may pick (e.g., select) a next workload, such as workload S2.
[0108] If the autoscaler is configured for the selected workload ("yes" path from block 506), the network controller 24 may obtain the current resource / application metric value associated with the selected workload (508). For example, the network controller 24 may read the current resource / application metric value associated with the workload from the metric database 414. The network controller 24 may calculate the RC for the current metric value (510). For example, the network controller 24 may calculate the options for the workload RC based on the current resource / application metric value (e.g., RC1) associated with the selected workload.
[0109] Network controller 24 may obtain a current emission value for the workload (512). For example, network controller 24 may read the current emission value associated with the selected workload from metrics database 414. Network controller 24 may calculate a replica count for the current emission value (514). For example, network controller 24 may calculate an option for a workload replica count based on the current emission value (e.g., RC2) associated with the selected workload.
[0110] Network controller 24 may obtain a workload dependency table (516). The workload dependency table may be a table indicating any dependencies between workloads and may be entered by an administrator or determined by network controller 24, such as by analyzing workloads over time. Network controller 24 may read the workload dependency table from a memory such as configuration database 418.
[0111] The network controller 24 may determine whether the selected workload is dependent on any other workload (518). If the selected workload is not dependent on any other workload (the "No" path from box 518), the network controller 24 may determine whether RC1 is greater than RC2 (530). If RC1 is greater than RC2 (the "Yes" path from box 530), the network controller 24 may recommend RC2 (536) as the replica scaling option to be used. In this case, the network controller 24 may implement RC2 for the selected workload. If RC1 is not greater than RC2 (the "No" path from box 530), the network controller 24 may recommend RC1 as the replica scaling option to be used (534). In this case, the network controller 24 may implement RC1 for the selected workload.
[0112] Referring back to block 518, if the selected workload depends on any other workload ("yes" path from block 518), the network controller 24 may calculate the RSF (520). For example, the network controller 24 may determine an RSF indicating how the replica count of the workload on which the selected workload depends changes relative to the replica count of the selected workload. The network controller 24 may obtain the workload emission rates of the (multiple) other workloads on which the selected workload depends (522). For example, the network controller 24 may read the (multiple) workload emission rates from the metrics database 414.
[0113] Network controller 24 may calculate an indirect emission for the selected workload (524). For example, network controller 24 may determine an emission estimate that is due to the expansion of workloads that the selected workload depends on to meet the expansion of the selected workload. Network controller 24 may calculate RC for the combined emission value (526). For example, network controller 24 may determine a replica scaling option based on the combined emission value (e.g., RC3).
[0114] The network controller 24 may determine whether RC1 is greater than RC3 (528). If RC1 is greater than RC3 (the "yes" path from box 528), the network controller may recommend RC3 (532) as the replica scaling option to use. In this case, the network controller 24 may implement RC3 for the selected workload. If RC1 is not greater than RC3 (the "no" path from box 528), the network controller 24 may recommend RC1 (534) as the replica scaling option to use. In this case, the network controller 24 may implement RC1 for the selected workload.
[0115] Figure 6 is a flow chart illustrating other example techniques for a dependency-aware intelligent green workload scaler according to one or more aspects of the present disclosure. Figure 6 The example is described with respect to the network controller 24, but Figure 6 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.
[0116] The network controller 24 may determine that the first workload is dependent on one or more other workloads (602). For example, the network controller 24 may read a workload dependency table from the configuration database 418, or execute a machine learning model to determine the workload dependencies. The network controller 24 may determine a metric of a first carbon emission associated with the first workload (604). For example, the network controller 24 may determine the current emissions via an emission metric stored in the metric database 414 associated with the first workload.
[0117] The network controller 24 may determine a predicted metric of a second carbon emission associated with the one or more other workloads (606). For example, the network controller 24 may determine a relative scaling factor associated with the one or more other workloads and determine the predicted metric of the second carbon emission associated with the one or more other workloads using the relative scaling factor and the current emission metric stored in the metric database 414. The network controller 24 may determine a combined emission that includes the metric of the first carbon emission and the predicted metric of the second carbon emission (608). For example, the network controller 24 may add the predicted metric of the first carbon emission and the second carbon emission to determine the combined emission.
[0118] Network controller 24 may determine a replica count of the first workload based on the combined emission and the emission threshold (610). For example, network controller 24 may determine RC3. Network controller 24 may schedule the generation of replicas of the first workload or the destruction of replicas of the first workload to achieve the replica count (612). For example, network controller 24 may control the creation or removal of replicas so that the total number of replicas of the first workload is equal to the replica count.
[0119] In some examples, the first carbon emission is a direct carbon emission attributable to the first workload, the first carbon emission excluding any emission attributable to one or more other workloads. In some examples, the second carbon emission is an indirect carbon emission attributable to supporting the expansion of one or more other workloads due to the expansion of the first workload. In some examples, network controller 24 may determine the scaling factor as a linear function of the direct carbon emission and the indirect carbon emission.
[0120] In some examples, as part of determining a metric of second carbon emissions associated with one or more other workloads, network controller 24 may determine a corresponding relative scaling factor for each of the one or more other workloads, the relative scaling factor indicating a relative scaling of one of the one or more other workloads caused by scaling of the first workload. In some examples, the network controller may determine the corresponding relative scaling factor by executing a machine learning model, wherein the machine learning model is trained on historical workload metrics. In some examples, network controller 24 may determine that the first workload is dependent on one or more other workloads by executing a machine learning model, wherein the machine learning model is trained on historical workload metrics.
[0121] In some examples, network controller 24 may output an indication that the first workload is certified for the emissions standard. For example, the indication may indicate that the first workload meets or exceeds the SLA emissions requirements.
[0122] In some examples, the replica count is a first replica count. In some examples, the network controller 24 may determine a second replica count for the first workload based on at least one of a resource metric, a service metric, or an application metric. In some examples, the network controller 24 may determine that the second replica count is greater than the first replica count. In some examples, the network controller 24 may determine that the first replica count is achieved based on the second replica count being greater than the first replica count.
[0123] In some examples, the network controller 24 may determine that the second workload is not dependent on one or more other workloads. In some examples, the network controller 24 may determine a measure of carbon emissions associated with the second workload. In some examples, the network controller 24 may determine a first copy count of the second workload based on at least one of a resource metric, a service metric, or an application metric. In some examples, the network controller 24 may determine a second copy count of the second workload based on a measure of carbon emissions associated with the second workload. In some examples, the network controller 24 may determine that the first copy count is greater than the second copy count. In some examples, the network controller 24 may determine to implement the second copy count based on the first copy count being greater than the second copy count. In some examples, the network controller 24 may schedule the generation of a copy of the second workload or the destruction of a copy of the second workload to implement the second copy count.
[0124] In some examples, the emission threshold is specified by a service level agreement.
[0125] 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.
[0126] 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.
[0127] 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.
[0128] 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).
[0129] 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 system comprising: one or more memories; One or more processors, communicatively coupled to the one or more memories, the one or more processors configured to: determining that a first workload is dependent on one or more other workloads; determining a first measure of carbon emissions associated with the first workload; determining a second predicted metric of carbon emissions associated with the one or more other workloads; determining a combined emission, the combined emission comprising the measure of the first carbon emission and the predicted measure of the second carbon emission; determining a replica count for the first workload based on the combined drain and a drain threshold; as well as The generation of copies of the first workload or the destruction of copies of the first workload are scheduled to achieve the copy count.
2. The computing system of claim 1, wherein the first carbon emissions are direct carbon emissions attributable to the first workload, the first carbon emissions excluding any emissions attributable to the one or more other workloads. 3 . The computing system of claim 2 , wherein the second carbon emission is an indirect carbon emission attributable to supporting expansion of the one or more other workloads due to expansion of the first workload. 4 . The computing system of claim 3 , wherein the one or more processors are further configured to determine a scaling factor as a linear function of the direct carbon emissions and the indirect carbon emissions.
5. A computing system according to claim 1, wherein in order to determine the metric of the second carbon emissions associated with the one or more other workloads, the one or more processors are configured to determine a corresponding relative scaling factor for each of the one or more other workloads, the relative scaling factor indicating a relative scaling of one of the one or more other workloads caused by the scaling of the first workload.
6. The computing system of claim 5, wherein the one or more processors are configured to determine the corresponding relative scaling factor by executing a machine learning model, wherein the machine learning model is trained on historical workload metrics.
7. A computing system according to any one of claims 1 to 6, wherein the one or more processors are configured to determine that the first workload is dependent on the one or more other workloads by executing a machine learning model, wherein the machine learning model is trained on historical workload metrics.
8. The computing system of any one of claims 1 to 6, wherein the one or more processors are further configured to output an indication that the first workload is certified for an emissions standard.
9. The computing system of any one of claims 1 to 6, wherein the replica count is a first replica count, and wherein the one or more processors are further configured to: determining a second replica count of the first workload based on at least one of a resource metric, a service metric, or an application metric; determining that the second replica count is greater than the first replica count; and Achieving the first replica count is determined based on the second replica count being greater than the first replica count.
10. The computing system of any one of claims 1 to 6, wherein the one or more processors are further configured to: determining that the second workload is not dependent on the one or more other workloads; determining a measure of carbon emissions associated with the second workload; determining a first replica count of the second workload based on at least one of a resource metric, a service metric, or an application metric; determining a second replica count of the second workload based on the metric of the carbon emissions associated with the second workload; determining that the first replica count is greater than the second replica count; and Determining to implement the second replica count based on that the first replica count is greater than the second replica count; as well as The generation of copies of the second workload or the destruction of copies of the second workload are scheduled to achieve the second copy count.
11. The computing system of any one of claims 1 to 6, wherein the emission threshold is specified by a service level agreement.
12. A method comprising: Determining, by one or more processors, that a first workload is dependent on one or more other workloads; determining, by the one or more processors, a first measure of carbon emissions associated with the first workload; determining, by the one or more processors, a predicted metric of a second carbon emission associated with the one or more other workloads; determining, by the one or more processors, a combined emission comprising the measure of the first carbon emission and the predicted measure of the second carbon emission; determining, by the one or more processors, a replica count for the first workload based on the combined drain and a drain threshold; as well as The one or more processors schedule generation of copies of the first workload or destruction of copies of the first workload to achieve the copy count.
13. The method of claim 12, wherein the first carbon emissions are direct carbon emissions attributable to the first workload, the first carbon emissions excluding any emissions attributable to the one or more other workloads.
14. The method of claim 13, wherein the second carbon emission is an indirect carbon emission attributable to supporting expansion of the one or more other workloads due to expansion of the first workload.
15. The method according to claim 14, further comprising: A scaling factor is determined, by the one or more processors, as a linear function of the direct carbon emissions and the indirect carbon emissions.
16. A method according to claim 12, wherein determining the metric of a second carbon emission associated with the one or more other workloads includes determining a corresponding relative scaling factor for each of the one or more other workloads, the relative scaling factor indicating a relative scaling of one of the one or more other workloads caused by scaling of the first workload.
17. The method of claim 16, wherein determining the corresponding relative scaling factor comprises executing a machine learning model, wherein the machine learning model is trained on historical workload metrics.
18. The method according to any one of claims 12 to 17, wherein the replica count is a first replica count, and wherein the method further comprises: Determining, by the one or more processors, a second replica count of the first workload based on at least one of a resource metric, a service metric, or an application metric; Determining, by the one or more processors, that the second replica count is greater than the first replica count; as well as A determination is made, by the one or more processors, to achieve the first replica count based on the second replica count being greater than the first replica count.
19. The method according to any one of claims 12 to 17, wherein the method further comprises: determining, by the one or more processors, that the second workload is not dependent on the one or more other workloads; determining, by the one or more processors, a measure of carbon emissions associated with the second workload; Determining, by the one or more processors, a first replica count of the second workload based on at least one of a resource metric, a service metric, or an application metric; determining, by the one or more processors, a second replica count of the second workload based on the metric of the carbon emissions associated with the second workload; Determining, by the one or more processors, that the first replica count is greater than the second replica count; as well as Determining, by the one or more processors, to implement the second replica count based on the first replica count being greater than the second replica count; as well as The one or more processors schedule generation of copies of the second workload or destruction of copies of the second workload to achieve the second copy count.
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 12-19.
Citation Information
Patent Citations
Tunneled packet aggregation for virtual networks
US9571394B1