Carbon-aware intelligent power manager for cluster nodes
By implementing machine learning models in the data center to predict workload requirements and applying energy-saving measures based on node-critical metrics, it solves the problems of difficulty in maintaining the greenness and workload scalability and availability of data centers in the prior art, and achieves efficient energy management and low CO2 emissions.
Patent Information
- Application Number
- CN202411249372.8
- 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 has difficulty maintaining the scalability and availability of workloads while maintaining greenness in data centers and reducing CO2 emissions, and the energy-saving measures taken may lead to service disruption.
By executing machine learning models to predict scalability and availability requirements for cluster workloads, adaptively determine node-critical metrics for cluster nodes, and apply corresponding energy-saving measures, such as closing or putting nodes in sleep mode, to reduce CO2 emissions.
This enables the scalability and availability of workloads while meeting CO2 emissions SLAs, avoids service disruptions, and improves the energy efficiency of data centers.
Smart Images

Figure CN119603147A_ABST
Abstract
Description
[0001] Related Applications
[0002] This application claims the benefit of U.S. Patent Application No. 18 / 759,485 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) 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. Currently, in order to maintain the greenness of a cluster or data center, an administrator may configure an SLA for carbon (e.g., CO2) emissions. In order to meet the CO2 emissions SLA, a cluster controller may shut down cluster computing nodes with high CO2 emissions, or place such nodes in an energy-saving mode, such as a sleep mode, etc. Therefore, in order to save energy, nodes powered by non-renewable energy sources may be selected more frequently than nodes powered by renewable energy sources to reduce emissions. These emission reduction measures may be applied manually by an administrator, or may be applied automatically. However, such actions to address the CO2 emissions SLA may affect the service availability or scalability SLA requirements of workloads running in the cluster. For example, when a cluster node is shut down, a service may lose a standby copy used to maintain service availability. Such actions to address the CO2 emissions SLA may also affect the service scalability SLA requirements. For example, when a cluster node is shut down, a service running on the cluster may not be able to scale to the desired number of copies. Moreover, taking such actions to address the CO2 emissions SLA may cause service interruptions due to the shutdown and restart of cluster nodes.
[0007] Therefore, it may be desirable to adaptively reduce CO2 emissions associated with cluster nodes while maintaining workload scalability and availability SLAs. For example, in the near future, when the demand for scalability and availability decreases, the network controller may apply any energy-saving or carbon reduction measures. In some examples, the network controller may execute one or more machine learning models to predict the scalability and availability requirements of the cluster workload. When the predicted cluster workload scalability and availability requirements are relatively low, the network controller may take CO2 reduction actions. In this way, the technology of the present disclosure can reduce CO2 emissions associated with cluster nodes while maintaining workload scalability and availability SLAs.
[0008] 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 being configured to: determine a node criticality metric for a cluster node based on executing at least one machine learning model; determine an energy-saving measure from one or more energy-saving measures to be applied to the node based on the node criticality metric; and apply the energy-saving measure to the node.
[0009] In another example, the present disclosure describes a method comprising: determining, by one or more processors, a node criticality metric for a cluster node based on executing at least one machine learning model; determining, by one or more processors, an energy-saving measure from one or more energy-saving measures to be applied to the node based on the node criticality metric; and applying, by one or more processors, the energy-saving measure to the node.
[0010] In another example, the present disclosure describes a computer-readable medium storing instructions that, when executed, cause one or more processors to: determine a node criticality metric for a cluster node based on executing at least one machine learning model; determine an energy-saving measure from one or more energy-saving measures to be applied to the node based on the node criticality metric; and apply the energy-saving measure to the node.
[0011] 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
[0012] 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.
[0013] Figure 2 is a block diagram illustrating an example computing device in accordance with the techniques described herein.
[0014] Figure 3 is a conceptual diagram illustrating example prediction and rescheduling techniques in accordance with one or more aspects of the present disclosure.
[0015] Figure 4 is a block diagram illustrating an example cluster controller and multiple nodes according to one or more aspects of the present disclosure.
[0016] Figure 5 is a flow chart illustrating an example technique for power management of cluster nodes according to one or more aspects of the present disclosure.
[0017] Figure 6 is a flow chart illustrating other example techniques for power management of cluster nodes 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 1is a block diagram illustrating an example system 8 with a computing infrastructure that can implement an example of the carbon-aware intelligent power manager technology for cluster node counting 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 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 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.
[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 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 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] Cluster controller 32, which may be implemented in network controller 24 and / or edge service controller 28, may control the cluster of nodes. In some examples, cluster controller 32 may represent a carbon-aware intelligent power manager for cluster nodes in accordance with the techniques of this disclosure.
[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] For example, any of the servers 12 or NIC 13 may be referred to as a node. Any combination of nodes may be used in a cluster, which may be controlled by a cluster controller 32. As further described below, the cluster controller 32 may determine a node criticality metric for a cluster node based on executing at least one machine learning model. For example, the cluster controller 32 may determine a node criticality metric for server 12A for a cluster of server 12A and NIC 13D. The cluster controller 32 may determine an energy saving measure to be applied to a node from among one or more energy saving measures based on the node criticality metric. For example, the cluster controller may determine to apply a specific energy saving measure to server 12A based on the node criticality metric. The cluster controller 32 may apply energy saving measures to a node, such as server 12A.
[0038] 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.
[0039] 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).
[0040] 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.
[0041] 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 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 a computer. The main memory 244 provides a physical address space consisting of addressable memory locations.
[0042] 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.
[0043] 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 .
[0044] 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.
[0045] 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.
[0046] 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.
[0047] 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).
[0048] 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.
[0049] The hypervisor 214 includes a physical driver 225 to use the physical function 221 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 virtual functions available, but for I / O intensive applications, the number of configured virtual functions is typically much smaller.
[0050] 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.
[0051] 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.
[0052] 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.
[0053] exist Figure 2 In the example computing device 200, the virtual router 220 executes within the hypervisor 214 using the physical function 221 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.
[0054] 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).
[0055] 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.
[0056] 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.
[0057] 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.
[0058] 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.
[0059] 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.
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 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.
[0064] In some examples, (multiple) virtual machines 228 can execute multiple different workloads, such as workloads of multiple services. Cluster controller 32 can obtain telemetry data of computing device 200, including workload data. Cluster controller 32 can use workload data to predict the number of workloads to be scheduled during the prediction time window. Cluster controller 32 can use the predicted workload quantity when determining node criticality of computing device 200 and / or determining energy saving measures to be applied to computing device 200.
[0065] Now discuss a carbon-aware intelligent power manager for cluster nodes (such as cluster controller 32). Currently, when the greenness and carbon emission rate of a Kubernetes cluster and / or data center fail to meet the configured SLA greenness threshold, some cluster nodes of the Kubernetes cluster may enter different levels of energy-saving modes to reduce the carbon emission rate and improve the greenness of the cluster or data center. Typically, cluster nodes are identified as entering energy-saving modes based on their power source type and carbon emission rate. The power source type may include renewable (green) or non-renewable (non-green) energy.
[0066] Typically, cluster nodes that are powered by non-renewable energy sources or have a higher carbon emission rate are selected to enter energy-saving mode. The selected cluster nodes can enter energy-saving mode for a certain amount of time until the carbon emission and green level SLA thresholds are met. This approach may cause many problems. First, the method may affect the service scalability or availability SLA requirements of the workloads running in the cluster. For example, when some cluster nodes are shut down, one or more services may lose standby replicas that can be used to maintain availability. Second, the method may affect the service scalability SLA requirements. For example, when some cluster nodes are shut down, some services may not be able to scale to the configured maximum number of replicas. Third, the shutdown and startup of cluster nodes may cause service interruptions.
[0067] To overcome this problem and in accordance with the techniques of the present disclosure, various energy-saving actions may be applied to cluster nodes at different levels when carbon emissions, scalability, and availability SLAs are to be met at the cluster and data center levels. For example, high carbon emission cluster nodes may be put into sleep mode or removed from the node pool of the workload scheduler for a relatively short duration. Such energy-saving actions may have less impact on the scalability and availability of cluster workloads. For example, an action may be taken to put high carbon emission cluster nodes into sleep mode for a certain duration so that the action does not prevent service expansion to meet scalability SLAs.
[0068] For example, the techniques of the present disclosure may include periodically predicting node criticality metrics (e.g., weights) for multiple cluster nodes to indicate to the cluster manager that nodes with higher predicted weights have less impact on scalability and availability and / or vice versa. This means that a relatively higher degree of energy saving measures can be taken on cluster nodes with relatively higher weights.
[0069] The technology of the present disclosure can periodically predict the weight of a node within the next prediction window of a certain preconfigured duration. To some extent, the predicted weight of a node can indicate the level of energy-saving actions that can be applied to the node within the prediction window. For example, on a 10-point scale, when the weight of the first node is 8 and the second node is 3, the first node may have the option of a more impactful or harder energy-saving measure, such as putting the node into sleep or hibernation mode. The second node may have the option of a less impactful or soft energy-saving measure, such as no new services are scheduled to the node in the next 10 minutes.
[0070] Figure 3 is a block diagram illustrating an example three-node cluster implementing the carbon-aware cluster power manager technology of the present disclosure. Figure 3The three-node cluster 300 in the example includes three nodes, but the technology of the present disclosure can be used on a cluster of any number of nodes. The cluster controller 320 may include a metric collector 322, an expander 324, and a scheduler 326. The cluster controller 320 can be implemented on the network controller 24, the edge service controller 28, and / or any other device capable of serving as a cluster controller 320.
[0071] Node 302A may be powered by a renewable (green) power source 310 and may be referred to as a green node. Node 302A may execute multiple workloads, as depicted by Service 1 Workload 1 (S11), Service 1 Workload 2 (S12), Service 2 Workload 1 (S21), and Service 3 Workload 3 (S33). Workloads of a service may sometimes be referred to as replicas. The workloads shown as being implemented on nodes 302A and 302B are shown as examples, and workloads different in number or type than shown may be implemented.
[0072] Node 302B may be powered by a non-renewable power source 312 and may be referred to as a non-green or black node. Node 302B may execute workloads as depicted by Service 2 Workload 2 (S22), Service 3 Workload 1 (S31), and Service 3 Workload 4 (S34). Node 302C may also be powered by a renewable power source 310 and may be referred to as a green node. Node 302C may execute workloads as depicted by Service 3 Workload 2 (S32) and Service 3 Workload 5 (S35).
[0073] Metrics collector 322 may collect metrics from node 302A, node 302B, and node 302C. For example, metrics collector 322 may collect emissions metrics (e.g., a node may report emissions attributed to the node per unit time), workload metrics, information about node capabilities, usage information about the node, and the like.
[0074] The scaler 324 can determine the scale of services 1 to 3 based on the metrics collected by the metric collector 322, such as how many workload copies each service may need and / or how many standby copies each service may need. The scheduler 326 can schedule 330 the generation and / or destruction of workload copies based on the output of the scaler 324.
[0075] According to the techniques of this disclosure, cluster controller 320 can adaptively reduce the carbon emissions of cluster nodes (eg, nodes 302A-302C) while maintaining workload scalability and availability SLAs associated with services 1-3.
[0076] For example, cluster controller 320 can apply any energy saving measures 332 or carbon reduction measures when there is less demand for scalability and availability in the future (e.g., within the next hour or the next T minutes). Such energy saving measures 332 can include shutting down nodes, putting nodes into sleep mode, changing the power level of nodes, etc. In some examples, a user can program which energy saving measures are available. For example, cluster power manager 328 can apply energy saving measures 332 to any of nodes 302A to 302C.
[0077] For example, the cluster power manager 328 can apply one or more forecasting machine learning models to predict the scalability and availability requirements of the cluster workload. Such forecasting machine learning models can be trained using historical cluster workload scheduling indicators. Since the cluster total workload count may change over time due to scaling and / or availability requirements, the machine learning model can predict future workload counts based on the historical cluster workload scheduling indicators.
[0078] When the predicted scaling and availability requirements are low, the cluster power manager 328 can select one or more nodes (e.g., of nodes 302A to 302C) to apply energy saving measures 332 to improve the CO2 emissions of the node(s), the cluster, or a given service. For example, the cluster power manager 328 can determine a criticality factor for each node of the node cluster. The criticality factor can be a measure of how critical each node is to the cluster at a given time. For example, the cluster power manager 328 can determine the criticality attributes of a node based on the node's need for the upcoming scaling and availability requirements of the cluster workload.
[0079] For example, if the machine learning model predicts that more workloads will be scaled out rather than destroyed (e.g., the total number of workloads will increase) over the next hour, then the scheduler 326 may require each node of the cluster and the cluster power manager 328 may refrain from taking energy saving measures 332 during the next hour.
[0080] In some examples, the cluster power manager 328 can utilize one or more machine learning-based (multiple) prediction algorithms to predict cluster node indicators for a configured time window. In some examples, the predicted cluster node indicators may include: a) server utilization (SU) of the cluster node (e.g., the percentage of utilization of node resources relative to node capacity); b) carbon emission rate (CER) of the cluster node (e.g., carbon emissions caused or attributed to the cluster node per hour or minute); c) workload scaling factor (WSF) (e.g., how many service replicas will be generated within the next configured time window of t minutes / hours / days); and / or d) workload availability factor (WAF) (e.g., how many standby replicas will be generated within the next configured time window of t minutes / hours / days).
[0081] For example, the cluster power manager 328 can execute a machine learning model to predict that the service workload S1 can be expanded to 10 service replicas distributed on 5 nodes in 3 geographic zones within the next 2 hours (when the cluster is a regional cluster). Using the predicted scalability and availability indicators, the node dependency factor indicators can be determined as follows: a) Node Scalability Dependency Factor (NSDF) (e.g., how many workloads require the node to achieve its scalability goals within the next time period or window of 'T' hours / minutes / days, which can be calculated as NSDF = the number of workloads that require the node / the total number of workloads of the cluster); and / or b) Node Availability Dependency Factor (NADF) (e.g., how many workloads require the node to achieve its availability goals within the next time period or window of 'T' hours / minutes / days, which can be calculated as NADF = the number of workloads that require the node / the total number of workloads of the cluster). In some examples, the total number of workloads of the cluster used to determine NSDF and NADF is the current total number of workloads of the cluster. In other examples, the total number of workloads of the cluster used to determine NSDF and NADF is the predicted total number of cluster workloads for the next time period.
[0082] Using the above prediction indicators, a weighted indicator called 'Node Power Saving Level (NPSL)' can be predicted for all cluster nodes. The energy saving level indicator of a node can indicate: a) the level of energy saving action applied to the cluster node, in which case hard energy saving actions can be applied and / or vice versa in case of higher levels; and / or b) the degree to which the cluster node is required by the cluster workload within the next configured time window.
[0083] Based on these weights, cluster power manager 328 can place predicted cluster nodes into different levels of energy-saving modes. In some examples, cluster controller 320 can: 1. shut down one or more NIC cards of a node; 2. reduce the frequency of one or more CPU cores of a node; and / or 3. put one or more CPU cores of a node into different power-optimized CPU states called C-states. In C-states, the CPU can shut down one or more unused components to save energy.
[0084] The (multiple) machine learning models of the present disclosure can be trained based on historical indicator data of a cluster or more clusters. As the (multiple) machine learning models are used, the (multiple) machine learning models can be further trained after each iteration of use. In some examples, the training is unsupervised.
[0085] Figure 4 is a flow chart illustrating an example technique for determining power and / or emission reduction measures according to one or more aspects of the present disclosure. For example, the cluster power manager 328 may attempt to provide a cluster (e.g. Figure 3 The cluster power manager 328 may predict the cluster scaling requirements (402). The cluster scaling requirements may include the predicted total number of workloads required to meet the scaling requirements within the next time period T, or the predicted difference between the current total number of workloads operating in the cluster and the predicted total number of workloads required to meet the scaling requirements within the next time period T. To predict the cluster scaling requirements, the cluster power manager 328 may execute a forecasting machine learning model (404) on the historical cluster replica count data (406).
[0086] The cluster power manager 328 can predict the cluster availability demand (412). The cluster availability demand can be the number of standby replicas predicted to be needed within the next time period T. In order to predict the cluster availability demand, the cluster power manager 328 can perform a forecasting machine learning model (414) on the historical cluster standby replica data (416). The historical cluster standby replica data (416) can include standby replicas that have not been removed or destroyed, and the historical cluster replica count data (406) can include replicas generated and destroyed to handle increases or decreases in workload demand. At this point, the cluster power manager 328 can determine whether the cluster is underutilized. For example, the cluster power manager 328 can determine whether the cluster can be expanded as predicted and support any predicted standby replicas, where energy saving options are applied to one or more nodes of the cluster. For example, the cluster power manager 328 can determine whether there are any "standby" nodes in the cluster. It should be noted that a "standby" node may be a node that currently supports one or more workloads. The use of the term "standby" in this context is intended to convey that other nodes in the cluster may be able to handle the predicted number of standby replicas and the predicted number of workloads to meet the expansion requirements.
[0087] Cluster power manager 328 may determine dependencies on the node (422). The dependencies on the node may indicate the number of workloads predicted to be scheduled to meet scaling requirements and the number of standby workloads predicted to be scheduled to meet availability requirements. To determine the dependencies on the node, cluster power manager 328 may execute a predictive machine learning model (424) on the workload scheduling metrics (426) to determine a node scaling dependency factor (NSDF) and / or a node availability dependency factor (NADF).
[0088] The cluster power manager 328 may determine a node emissions efficiency (432). The node emissions efficiency may include a node emissions rate (NER) and / or a node resource utilization factor (NRU). The NER may be a measure of carbon emissions attributed to a node. The NRU may indicate a percentage of utilization of the node's computing resources (e.g., 50% of the node's computing resources are used to support the cluster's workloads). To determine the node emissions efficiency, the cluster power manager 328 may execute an analytical model (434) to determine a node emissions rate based on a workload emissions rate (436).
[0089] The cluster power manager 328 (444) may determine the criticality of the node (442). The criticality of the node may take the form of a weight (e.g., a node criticality weight or NCW) and may be based on a node scaling dependency factor (NSDF), a node availability dependency factor (NADF), a node carbon emission rate (NCER), and / or a node resource utilization factor (NRU) for the node. To determine the criticality of the node, the cluster controller 320 may utilize the dependency factors, node emission rates, etc. (446).
[0090] The cluster power manager 328 (454) may determine the power and carbon reduction measures (452). To determine the power and carbon reduction measures, the cluster power manager 328 finds the carbon reduction measures for the node based on the criticality of the node to the cluster through the node criticality and carbon reduction measures (456).
[0091] For example, the cluster power manager 328 can use one or more machine learning models to predict, for example, a cluster idle node count. For example, as part of predicting cluster scaling requirements (402), the cluster power manager 328 can determine a cluster workload scalability factor (CWSF), which can indicate how many workload copies are predicted to be created in the next time period T (e.g., 1 hour) to meet the scalability requirements. For example, the CWSF can be equal to the total number of workload copies predicted to meet the scalability requirements during the next time period T. For example, as part of predicting cluster availability requirements 412, the cluster power manager 328 can also determine a cluster workload availability factor (CWAF), which can indicate how many workload copies are predicted to be created in the next time period T (e.g., 1 hour) to meet the availability requirements. For example, the CWAF can be equal to the total number of workload copies predicted to meet the availability requirements during the next time period T.
[0092] The cluster power manager 328 can store an indication of resource specifications for each workload. The resource specification can indicate how many processing cores, how much memory, etc. are required for a given workload. For example, such data can be used for a Kubernetes pod. The cluster power manager 328 can also store an indication of the capabilities of each node in the cluster. Therefore, the cluster power manager 328 can determine the resource allocation required to support the total number of predicted workloads, and determine or predict whether there will be any idle nodes. In other words, the cluster power manager 328 can determine whether the number of current nodes in the cluster is greater than the number of nodes (e.g., the minimum number of nodes) required to support the total number of predicted workloads to be operated on the cluster during the next time period T. For example, the cluster power manager 328 can then predict the number of idle nodes by determining the total count of cluster nodes minus the number of nodes required to meet the scaling and availability requirements. If there are idle nodes, the cluster power manager 328 can determine node-specific factors, which the cluster power manager 328 can use to determine which node(s) to apply (multiple) energy-saving measures and which (some) energy-saving measures to use.
[0093] For example, the cluster power manager 328 can determine one or more node dependency factors for each of the nodes of the cluster. For example, the cluster power manager 328 can determine a node scaling dependency factor (NSDF). In some examples, the NSDF can indicate the number of workloads to be scheduled on the node due to scaling demand predictions divided by the total number of cluster workloads. In some examples, the total number of workloads of the cluster used to determine the NSDF is the total number of current workloads of the cluster. In other examples, the total number of workloads of the cluster used to determine the NSDF is the total number of predicted workloads of the cluster within the next time period. For example, the cluster power manager 328 can use a machine learning model to predict the NSDF. For example, the cluster power manager 328 can determine the NSDF for each node in nodes 302A to 302C.
[0094] The cluster power manager 328 can also determine a node availability dependency factor (NADF), which can indicate the number of workloads predicted to be scheduled onto a node due to availability requirements divided by the total number of cluster workloads. For example, the cluster power manager 328 can use a machine learning model to predict the NADF. In some examples, the total number of workloads of the cluster used to determine the NADF is the current total number of workloads of the cluster. In other examples, the total number of workloads of the cluster used to determine the NADF is the predicted total number of workloads of the cluster within the next time period. For example, the cluster power manager 328 can determine the NADF for each of the nodes 302A to 302C.
[0095] The cluster power manager 328 may determine a node carbon emission rate (NCER), which may represent the amount of emissions attributed to a node per unit of time (such as per hour). For example, the cluster power manager 328 may determine a node resource utilization factor (NRU), which may represent the percentage of node computing resources being used relative to available resources. For example, the cluster power manager 328 may determine the NCER and NRU for each of the nodes 302A to 302C.
[0096] The cluster power manager 328 may determine whether there are any idle nodes (e.g., whether the number of idle nodes is greater than 0). If there are idle nodes, the cluster power manager 328 may determine a node criticality weight (NCW), which may be time-limited. For example, the cluster power manager 328 may determine the NCW based on the NCER and the NRU. For example, the cluster power manager 328 may determine the NCW using the following formula:
[0097] NCW = NSDF*B1 + NADF*B2 + NCER*B3 + NRU*B4, where B1, B2, B3, B4 are beta coefficients in regression analysis. Such beta coefficients may be input or preconfigured by the user, for example using any standard formula.
[0098] Figure 5 is a flow diagram illustrating an example cluster power management technique in accordance with one or more aspects of the present disclosure. Figure 5 The techniques may be implemented by the network controller 24, the edge service controller 28, and / or any other device capable of performing such techniques.
[0099] The network controller 24 may start the cluster power manager (502). For example, the network controller 24 may start the cluster power manager of the cluster controller 320 (which may be Figure 3 The network controller 24 may determine the cluster workload scheduling and scaling indicators from the memory (504). For example, the network controller 24 may read the cluster workload scheduling and scaling indicators from one or more databases.
[0100] The network controller 24 may predict cluster scalability and availability factors (506). For example, the network controller 24 may predict cluster scaling requirements 402 (e.g., CWSF) and predict cluster availability requirements 412 (e.g., CWAF). The network controller 24 may calculate an idle node count (508). The idle node count may indicate whether the cluster is underutilized. The network controller 24 may determine whether there are any idle nodes (510). If there are idle nodes (the "yes" path from box 510), the network controller 24 may determine node-specific workload scheduling indicators (512), such as reading node-specific workload scheduling indicators from a memory of a specific node of the cluster. The network controller 24 may forecast node-specific workload scaling and availability scheduling counts (514). For example, the network controller 24 may execute at least one machine learning model to forecast the number of workloads predicted to be scheduled on a node to meet scaling requirements and the number of workloads predicted to be scheduled on a node to meet the availability requirements of a specific node. The network controller 24 may determine a node scalability dependency factor (NSDF) and a node availability dependency factor (NADF) (516) for a particular node of the cluster. For example, the network controller 24 may determine a node carbon footprint and resource utilization metric associated with a particular node (518).
[0101] The network controller 24 may determine a node criticality weight for a particular node (520). The network controller 24 may determine an energy-saving action for the determined node criticality weight (522). For example, the network controller 24 may look up the determined node criticality weight in a lookup table to determine the associated energy-saving action. Such a lookup table may be programmable by a user. The network controller 24 may apply an energy-saving action to a particular node (524). The network controller 24 may determine whether there is a next node (526). If there is a next node (the "yes" path from box 526), the network controller 24 may return to box 512 to determine a node-specific workload schedule and indicator for the next node. If there is no next node (the "no" path from box 526), the network controller may return to box 504.
[0102] Moving the discussion back to block 510 , if there are not any idle nodes (“NO” path from block 510 ), the network controller 24 may return to block 504 .
[0103] Figure 6 is a flow chart illustrating other example techniques for power management of cluster nodes 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 6The techniques may be performed by the network controller 24, the edge service controller 28, and / or any other device capable of performing such techniques.
[0104] The network controller 24 may determine a node criticality metric for a node of the cluster based on executing at least one machine learning model (602). For example, the network controller 24 may determine a node criticality weight for the node 302A among the nodes 302A to 302C of the cluster based on one or more predictions associated with the node. The network controller 24 may determine an energy saving measure from among the one or more energy saving measures to be applied to the node based on the node criticality metric (604). For example, the network controller 24 may determine to apply the energy saving measure to the node 302A because the node is not relatively critical or is less critical than other nodes of the cluster.
[0105] The network controller 24 may apply the energy conservation measure to the node (606). For example, the network controller 24 may implement the energy conservation measure or otherwise instruct the node 302A to apply the energy conservation measure.
[0106] In some examples, the node criticality metric includes a weight that indicates an impact on at least one of scalability or availability caused by taking one of the one or more energy saving measures. For example, the node criticality metric may be NCW.
[0107] In some examples, the network controller 24 may determine a corresponding node criticality metric for each node of the cluster. For example, the network controller 24 may repeat the node criticality metric with respect to each node (e.g., nodes 302A to 302C) of the cluster. Figure 6 technology, allowing each node to be evaluated for potential energy savings.
[0108] In some examples, the network controller 24 may periodically determine the node criticality metric. For example, the network controller 24 may periodically repeat Figure 6 Thus, the network controller 24 can make any energy-saving based changes to the operation of the cluster in a time-bound manner based on the prediction for the next time period T.
[0109] In some examples, to determine a node criticality metric, the network controller 24 may determine a metric of the total number of predicted workloads to be scheduled on the node during a prediction window. In some examples, the metric of the total number of predicted workloads to be scheduled on the node includes a node scalability dependency factor indicating the number of workloads predicted to be scheduled on the node during the prediction window due to scaling requirements and a node availability dependency factor indicating the number of workloads predicted to be scheduled on the node during the prediction window due to availability requirements. In some examples, the node scalability dependency factor includes the number of workloads predicted to be scheduled on the node during the prediction window due to scaling requirements divided by the total number of workloads for the cluster. In some examples, the node availability dependency factor includes the number of workloads predicted to be scheduled on the node during the prediction window due to availability requirements divided by the total number of workloads for the cluster.
[0110] In some examples, to determine a node criticality metric, the network controller 24 may determine a node carbon emissions metric for the node that indicates an amount of carbon emissions per unit time attributable to the node, and determine a node resource utilization metric for the node that indicates a percentage of the node resources that are utilized.
[0111] In some examples, network controller 24 may determine an idle node count before determining the node criticality metric, wherein the idle node count indicates the number of nodes in the cluster that are not required to meet the predicted workload of the cluster. In some examples, network controller 24 may determine that the idle node count is greater than zero, wherein determining the node criticality metric is based on a determination that the idle node count is greater than zero.
[0112] In some examples, to determine the node criticality metric, network controller 24 may determine at least one of a scalability or availability indicator. In some examples, the scalability or availability indicator includes at least one of: a server utilization of the node, the server utilization of the node including a percentage of utilization of node resources relative to node capacity; a carbon emission rate of the node, the carbon emission rate of the node including an amount of carbon emissions attributed to the node per unit time; a workload scaling factor indicating a number of service replicas predicted to be generated in a prediction window; or a workload availability factor indicating a number of standby replicas predicted to be generated in a prediction window.
[0113] In some examples, to determine the node criticality metric, network controller 24 may determine at least one node dependency factor indicator based on at least one of the scalability or availability indicators. In some examples, the at least one node dependency factor indicator includes: a node scalability dependency factor indicating the number of workloads predicted to be scheduled on the node in the prediction window to achieve the corresponding scalability target associated with the workload; or a node availability dependency factor indicating the number of workloads predicted to be scheduled on the node in the prediction window to achieve the corresponding availability target associated with the workload.
[0114] In some examples, the one or more energy-saving measures include at least one of: shutting down at least one network interface card of the node; reducing the frequency of at least one processor core of the node; or placing at least one processor core of the node into a different power optimization state.
[0115] 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.
[0116] 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.
[0117] 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.
[0118] In some examples, the computer-readable storage medium may include a non-transient medium. The term "non-transient" may indicate that the storage medium is not implemented in a carrier or a propagation signal. In some examples, a non-transient storage medium may store data that may change over time (e.g., in a RAM or cache). 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" used herein may refer to any of the aforementioned structures or any other structure suitable for implementing the technology 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; as well as One or more processors, communicatively coupled to the one or more memories, the one or more processors configured to: determining a node criticality metric for a node of the cluster based on executing at least one machine learning model; determining, based on the node criticality metric, an energy saving measure from among one or more energy saving measures to be applied to the node; as well as The energy saving measure is applied to the node.
2. The computing device of claim 1, wherein the node criticality metric comprises a weight indicating an impact on at least one of scalability or availability caused by taking one of the one or more energy saving measures. 3 . The computing device of claim 1 , wherein the one or more processors are configured to determine a corresponding node criticality metric for each node of the cluster. The computing device of claim 1 , wherein the one or more processors are configured to periodically determine the node criticality metric.
5. The computing device of claim 1, wherein to determine the node criticality metric, the one or more processors are configured to determine a metric of a total number of predicted workloads to be scheduled on the node during a prediction window.
6. A computing device according to claim 5, wherein the metric of the total number of predicted workloads to be scheduled on the node includes a node scalability dependency factor indicating the number of workloads predicted to be scheduled on the node during the prediction window due to scaling requirements and a node availability dependency factor indicating the number of workloads predicted to be scheduled on the node during the prediction window due to availability requirements.
7. A computing device according to claim 6, wherein the node scalability dependency factor comprises the number of workloads predicted to be scheduled on the node during the prediction window due to scaling requirements divided by the total number of workloads for the cluster, and wherein the node availability dependency factor comprises the number of workloads predicted to be scheduled on the node during the prediction window due to availability requirements divided by the total number of workloads for the cluster.
8. The computing device of any one of claims 1 to 7, wherein to determine the node criticality metric, the one or more processors are configured to: determining a node carbon emissions metric for the node, the node carbon emissions metric indicating an amount of carbon emissions per unit time attributable to the node; and A node resource utilization metric is determined for the node, the node resource utilization metric indicating a percentage of the node resources that are used.
9. The computing device of any one of claims 1 to 7, wherein the one or more processors are further configured to: Prior to determining the node criticality metric, determining an idle node count, wherein the idle node count indicates a number of nodes in the cluster that are not required to satisfy a predicted workload of the cluster, and A determination is made that the idle node count is greater than zero, wherein determining the node criticality metric is based on the determination that the idle node count is greater than zero.
10. The computing device of any one of claims 1 to 7, wherein to determine the node criticality metric, the one or more processors are configured to determine at least one of a scalability or availability indicator, the scalability or availability indicator comprising at least one of: a server utilization of the node, the server utilization of the node comprising a utilization percentage of node resources for the capacity of the node; a carbon emission rate for a node, the carbon emission rate for the node comprising an indication of an amount of carbon emissions attributable to the node per unit time; a workload scaling factor indicating a number of service replicas predicted to be generated in a prediction window; or A workload availability factor indicating a number of standby replicas predicted to be generated within the prediction window.
11. The computing device of claim 10, wherein to determine the node criticality metric, the one or more processors are configured to determine at least one node dependency factor indicator based on the at least one of a scalability or availability indicator, the at least one node dependency factor indicator comprising: a node scalability dependency factor indicating a number of workloads predicted to be scheduled on the node in the prediction window to achieve a corresponding scalability target associated with the workload; or A node availability dependency factor indicates a number of workloads predicted to be scheduled on the node in the prediction window to achieve a corresponding availability target associated with the workload.
12. The computing device of any one of claims 1 to 7, wherein the one or more energy saving measures include at least one of the following: shutting down at least one network interface card of the node; reducing the frequency of at least one processor core of the node; or The at least one processor core of the node is caused to enter a different power optimization state.
13. A method comprising: Determining, by one or more processors, a node criticality metric for a node of the cluster based on executing at least one machine learning model; determining, by the one or more processors, an energy saving measure of one or more energy saving measures to be applied to the node based on the node criticality metric; as well as The one or more processors apply the energy saving measure to the node.
14. The method of claim 13, wherein the node criticality metric comprises a weight indicating an impact on at least one of scalability or availability caused by taking one of the one or more energy saving measures.
15. The method according to claim 13, wherein the method comprises: A corresponding node criticality metric is determined, by the one or more processors, for each node of the cluster.
16. The method of claim 13, wherein determining the node criticality metric comprises determining a metric of a total number of predicted workloads to be scheduled on the node during a prediction window.
17. The method of claim 13, wherein determining the node criticality metric comprises: determining a node carbon emissions metric for the node, the node carbon emissions metric indicating an amount of carbon emissions per unit time attributable to the node; as well as A node resource utilization metric is determined for the node, the node resource utilization metric indicating a percentage of the node resources that are utilized.
18. The method according to any one of claims 13 to 17, further comprising: Prior to determining the node criticality metric, determining, by the one or more processors, an idle node count, wherein the idle node count indicates a number of nodes in the cluster that are not required to satisfy a predicted workload of the cluster, and Determining, by the one or more processors, that the idle node count is greater than zero, wherein determining the node criticality metric is based on the determination that the idle node count is greater than zero.
19. The method according to any one of claims 13 to 7, wherein the one or more energy saving measures include at least one of the following: shutting down at least one network interface card of the node; reducing the frequency of at least one processor core of the node; or The at least one processor core of the node is caused to enter a different power optimization state.
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 13-19.
Citation Information
Patent Citations
Tunneled packet aggregation for virtual networks
US9571394B1