Application and traffic aware machine learning based power manager
By adopting machine learning-based power management technology in data centers, predicting business criticality and adjusting the power model of processor cores, energy waste problems in large data centers when using non-green energy is solved, achieving more efficient energy use and lower carbon emissions.
Patent Information
- Application Number
- CN202411246695.1
- 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
Large data centers use large amounts of non-green energy, resulting in increased energy consumption and carbon emissions problems, and prior art is difficult to effectively manage processor power to reduce energy waste.
Using machine learning-based power management technology, by obtaining workload and network functional metrics from multiple nodes in the cluster, predicting the business-critical metrics of the nodes, and determining the power mode of the processing core based on the metric, adjusting the frequency of the processor core, pausing or restoring the processor core to reduce power usage when there is no packet.
Effectively reduces the power use of processor cores, improves the ability of data centers, clusters or services to meet power-related SLA requirements, and reduces energy consumption and carbon emissions.
Smart Images

Figure CN119599140A_ABST
Abstract
Description
[0001] Related Applications
[0002] This application claims the benefit of U.S. Patent Application No. 18 / 759,333, 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. Therefore, some service level agreements (SLAs) associated with data center services include green energy targets or requirements or restrictions on non-green energy usage. Summary of the invention
[0006] In general, techniques for power management are described to address issues regarding the use of non-green energy. In a cluster, each computing node can run a network function. Such network functions may include switching, routing, or security functions (e.g., firewall functions). Such network functions may use direct polling of a network interface to determine when a packet is available for an application of the network function. Direct polling is implemented by assigning a dedicated number of processor (e.g., CPU) cores to polling actions. Direct polling provides high performance, but requires dedicated processor cores to run at full capacity (e.g., 100% busy), regardless of the traffic load. For example, even if there are no packets for an application of a network function on a network interface, the dedicated processor core will continue to operate. Direct polling when there are no available packets can be referred to as empty polling. Empty polling wastes processor cycles, thereby wasting power.
[0007] Therefore, it may be desirable to have an adaptive power optimizer to reduce processor cycles based on business behavior and business criticality. For example, a power optimizer can predict when packets are expected to arrive, and can adjust processor core frequencies, pause or resume processor cores, adjust internal energy saver states of processor cores, etc., so that usage is reduced when no packets are expected. Reducing the power usage of processor cores can improve the ability of a data center, cluster, or service to meet power-related SLA requirements.
[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: obtain workload metrics from multiple nodes of a cluster; obtain network function metrics from multiple nodes of the cluster; and for each of the multiple nodes: execute at least one machine learning model to predict a business criticality metric of the node; determine a power mode for at least one processing core of the node based on the business criticality metric of the node; and recommend or apply a power mode to at least one processing core of the node.
[0009] In another example, the present disclosure describes a method, comprising: obtaining, by one or more processors, workload metrics from multiple nodes of a cluster; obtaining, by one or more processors, network function metrics from multiple nodes of the cluster; and for each of the multiple nodes: executing, by one or more processors, at least one machine learning model to predict a business criticality metric of the node; determining, by one or more processors, a power mode for at least one processing core of the node based on the business criticality metric of the node; and recommending or applying, by one or more processors, a power mode to at least one processing core of 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: obtain workload metrics from multiple nodes of a cluster; obtain network function metrics from multiple nodes of the cluster; and for each of the multiple nodes: execute at least one machine learning model to predict a business criticality metric of the node; determine a power mode for at least one processing core of the node based on the business criticality metric of the node; and recommend or apply a power mode to at least one processing core of 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 block diagram illustrating an example node according to one or more aspects of the present disclosure.
[0015] Figure 4 is a block diagram illustrating an example power manager according to one or more aspects of the present disclosure.
[0016] Figure 5 is a block diagram illustrating a 3-node cluster in accordance with one or more aspects of the present disclosure.
[0017] Figure 6 is a block diagram illustrating a cluster power manager and a 3-node cluster according to one or more aspects of the present disclosure.
[0018] Figure 7 is a block diagram illustrating an example workload in accordance with one or more aspects of the present disclosure.
[0019] Figure 8 is a flow diagram illustrating an example power manager technique in accordance with one or more aspects of the present disclosure.
[0020] Fig. 9 is a flow chart illustrating other example power manager techniques according to one or more aspects of the present disclosure.
[0021] Like reference numerals denote like elements in the description and drawings. DETAILED DESCRIPTION
[0022] Figure 1 is a block diagram of an example system 8 with a computing infrastructure that illustrates an example of an application- and business-aware machine learning-based power management technique 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") that have one or more customer networks coupled to the data center via a service provider network 7. For example, the data center 10 may 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 may represent one or more networks managed by other providers and may therefore form part of a large-scale public network infrastructure, such as the Internet. For example, the public network 4 may 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.
[0023] 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.
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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.
[0031] 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."
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] In some examples, the network controller 24 or the edge service controller 28 may implement an application and business-aware machine learning-based power manager according to the techniques of the present disclosure. As further described below, the power manager 32 may obtain workload metrics and network function metrics from multiple nodes of the cluster. The power manager 32 may execute at least one machine learning model to predict a corresponding business criticality metric for each of the multiple nodes. The power manager 32 may determine a corresponding power mode for at least one processing core of each node based on the corresponding business criticality metric of each node. The power manager 32 may recommend or apply a corresponding power mode to at least one processing core of each node. For example, any one of the server 12 or the NIC 13 may implement a node in the cluster.
[0039] For example, the network controller 24 may obtain workload metrics from multiple nodes of the cluster, such as the server 12A and the NIC 13D that may execute the workload of the cluster. The network controller 24 may obtain network function metrics from multiple nodes of the cluster. For each of the multiple nodes (e.g., for the server 12A and the NIC 13D), the network controller 24 may execute at least one machine learning model to predict the business criticality metric of the node. For example, the network controller 24 may predict the business criticality metric of the server 12A and predict the business criticality metric of the NIC 13D. The network controller 24 may determine the power mode of at least one processing core of the node based on the business criticality metric of the node. For example, the network controller may determine a first power mode of at least one processing core of the server 12A and determine a second power mode of at least one processing core of the NIC 13D. The network controller 24 may recommend or apply a power mode to at least one processing core of the node. For example, the network controller 24 may recommend or apply a first power mode to at least one processing core of the server 12A and recommend or apply a second power mode to at least one processing core of the NIC 13D.
[0040] 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.
[0041] 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).
[0042] 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.
[0043] The memory device 244 includes one or more computer-readable storage media, which may include random access memory (RAM), such as various forms of dynamic RAM (DRAM) (e.g., DDR2 / DDR3 SDRAM) or static RAM (SRAM), flash memory, or any other form of fixed or removable storage medium that can be used to carry or store desired program code and program data in the form of instructions or data structures that can be accessed by a computer. The memory device 244 provides a physical address space consisting of addressable memory locations.
[0044] 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.
[0045] 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 .
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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).
[0050] 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.
[0051] The hypervisor 214 includes a physical driver 225 to use the physical functions provided by the network interface card 230. In some cases, the network interface card 230 can also implement SR-IOV to enable sharing of physical network functions (I / O) between the virtual machines. Each port of the NIC 230 can be associated with a different physical function. A 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 that the 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, the NIC 230 can have thousands of available virtual functions, but for I / O intensive applications, the number of configured virtual functions is typically much smaller.
[0052] 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.
[0053] The NIC 230 may also include a hardware-based Ethernet bridge 234, which may include an embedded switch 234. 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.
[0054] 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.
[0055] 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.
[0056] 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).
[0057] 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.
[0058] 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.
[0059] 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.
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 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.
[0064] 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.
[0065] 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.
[0066] In some examples, (multiple) virtual machines 228 can execute multiple different workloads, such as workloads of multiple services. The power manager 32 can obtain telemetry data of the computing device 200, including workload indicators and network function indicators, to determine (multiple) power modes that the power manager 32 can recommend or apply to one or more processing cores of the processing circuit 231.
[0067] An application and business-aware machine learning-based power manager is now described. As discussed above, direct polling of network interfaces provides high performance for network functions, but requires dedicated processor cores to run at full capacity (e.g., 100% busy) regardless of the business load. Existing solutions that attempt to address the power waste that may be caused by such dedicated processor cores attempt to provide optimization based on empty polling counts. However, such solutions introduce latency and may cause packet loss. Such solutions may not be aware of the cluster network itself and may lack awareness of service criticality, and therefore are unaware of the business criticality at each compute node. Knowing service criticality may be important because the same power reduction strategy may not be optimal for every node at any time. For example, the criticality of business delivery (e.g., switching, routing, security, etc.) network functions varies based on the services running (or scheduled to run) on the compute node.
[0068] According to the technology of the present disclosure, the power manager can selectively apply power optimization to the network functions running at each computing node. Such power optimization may include reducing the frequency of the processor core, pausing the processor core, putting the processor core into an internal inactive state, etc. The reduction in the power usage of the processor core can improve the ability of the data center, cluster, or service to meet power-related SLA requirements or meet the power-related goals of the service provider.
[0069] Cloud native network functions (such as routers and / or firewalls) provide high performance and advanced routing functionality in a cluster structure. Currently, DPDK (Data Plane Development Kit) is usually used for the data plane to bypass the kernel network stack to use continuous direct polling of Ethernet devices to achieve high network performance. Direct polling of network devices by user space applications based on DPDK can be performed using a polling mode driver (PMD). For example, a dedicated number of processor cores can be assigned to poll network devices. The processor core assigned to listen to incoming packets can poll the network packet receive queue at 100% processor utilization. Due to this polling nature, DPDK-based network functions consume constant power regardless of the incoming business rate they receive. From a sustainability perspective, in large-scale scenarios, when data centers are powered by non-renewable (non-green) energy, this redundant power consumption may result in a high carbon footprint and may result in failure to achieve the sustainability goals or SLA requirements of service providers. In the case where data centers are powered by limited available green or renewable energy, cloud native network functions may not be able to meet scaling SLA requirements. Therefore, it may be desirable to have an adaptive power manager that can be configured to conserve redundant power usage of DPDK-based cloud-native network functions, thereby helping service providers achieve their sustainability goals without compromising network business SLA requirements.
[0070] Figure 3 304 and 316. Node 300 is a block diagram illustrating an example node according to one or more aspects of the present disclosure. Node 300 is shown, which can be a Kubernetes node. Node 300 includes two containers, namely, a service generation container 304 and a service generation container 316. A receive queue 306 of node 300 can receive services generated by a workload or a container (such as service generation container 304). A forwarding core 308 can obtain services from the receive queue 306 and forward the services to a ring buffer 310. A forwarding core 312 can obtain services from the ring buffer 310 and forward services bound to another workload (such as service generation container 316) to a send queue 314. The send queue 314 can forward services to the service generation container 316.
[0071] A power manager, such as a cloud native router (CNR) virtual router (vrouter) power manager 302, can manage the power used by node 300. In some examples, CNR vrouter power manager 302 can implement techniques of this disclosure, such as managing power in an application- and service-aware manner, and can be an example of power manager 32.
[0072] Figure 4404.
[0073] Forwarding core 406 may poll 422 receive queue 410 for packets. Similarly, forwarding core 408 may poll 424 receive queue 412 for packets. Receive queues 410 and 412 may be receive queues coupled to NIC 414 or part of NIC 414. For example, traffic received by NIC 414 may be sent to receive queue 410 and / or receive queue 412.
[0074] For example, in an example where the receive queue 410 has traffic for forwarding, the forwarding core 406 may send a polling status callback 426 to the DPDK power pool 404, which may indicate that N packets are to be forwarded. In an example where the receive queue 412 has no traffic for forwarding, the forwarding core 408 may send a polling status callback 428, which may indicate that 0 packets are to be forwarded. In other words, there is an empty poll.
[0075] The DPDK power library 404 can send polling statistics 430 to the CNR power manager 402. In some examples, the polling statistics 430 can indicate that there are N packets on the receive queue 410 and 0 packets on the receive queue 412. The CNR power manager 402 can send a power command 432. The power command 432 can indicate an instruction to set a power saving scheme for the forwarding core 408. For example, such a power saving scheme can include pausing the forwarding core 408 or reducing the frequency of the forwarding core 408. The DPDK power library 404 can implement the power saving scheme 434, such as pausing the forwarding core for a time "T".
[0076] Figure 55 is a block diagram illustrating a 3-node cluster according to one or more aspects of the present disclosure. Although shown as a 3-node cluster, the cluster may have fewer or more nodes than the 3-node cluster 500. The 3-node cluster 500 may include nodes 502A to 502C. Node 502A may include a network function (NF) 512A, which may include multiple processing cores or be supported by multiple processing cores. Such a processing core is represented by a rectangle shown within NF 512A. Node 502A may run 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). Node 502B may include NF 512B, which may include multiple processing cores or be supported by multiple processing cores. Node 502B may run workloads, including service 2 workload 2 (S22), service 3 workload 1 (S31), and service 3 workload 4 (S34). Node 502C may include NF 512C, which may include or be supported by multiple processing cores. Node 502C may run workloads, including service 3 workload 2 (S32) and service 3 workload 5 (S35). The workloads of a service may sometimes be referred to as replicas. The workloads shown as being implemented on nodes 502A to 502C are shown as examples, and workloads different in number or type from those shown may be implemented.
[0077] Each of NFs 512A to 512C may include a power controller or manager ( Figure 5 A network interface connected to the (not shown) interface.
[0078] Figure 6 602A to 602C may represent a cluster power manager and a 3-node cluster according to one or more aspects of the present disclosure. Figure 5 NF 612A to 612C may represent an example of nodes 502A to 502C. Figure 5 Examples of NF 512A to 512C.
[0079] Workload metric collector 614 may collect metrics about workloads operating on nodes 602A to 602C from each of such nodes. For example, workload metric collector 614 may collect metrics about which workloads are operating at which times. For example, workload metric collector 614 may collect metrics indicating that S11, S12, S21, and S33 are operating on node 602A. Workload metric collector 614 may collect similar metrics about workloads operating on nodes 602B and 602C from nodes 602B and 602C.
[0080] The network function indicator collector 616 may collect indicators about the NFs 612A to 612C. For example, the network function indicator collector 616 may collect service indicators (e.g., speed, latency, etc.), polling statistics (not shown) of polling mode drivers, etc. The workload indicator collector 614 and the network function indicator collector 616 may store the collected indicators in a database 618.
[0081] The cluster power manager 620 may include a workload criticality calculator 622, a network service criticality calculator 624, and a power mode recommender 626. The workload criticality calculator 622 may determine the criticality of the workloads operating on the nodes 602A to 602C (e.g., S11, S12, S21, S22, and S31 to S35). The network service criticality calculator 624 may determine the service criticality of the nodes of the 3-node cluster. Representative examples of how the workload criticality calculator 622 may determine the criticality of the workload and how the network service criticality calculator 624 may determine the service criticality are set forth below.
[0082] The power mode recommender 626 may recommend energy saving measures that may be implemented in the 3-node cluster based on the workload criticality determined by the workload criticality calculator 622 and the network service criticality calculator 624. The node network function power mode resource 630 may poll the power mode information from the NFs 612A to 612C and may selectively apply energy saving measures to any processor of the NFs 612A to 612C.
[0083] Figure 7 is a block diagram illustrating an example workload according to one or more aspects of the present disclosure. Figure 7 In the example, S1, S2, and S3 are workloads running within a cluster of one or more compute nodes. In this example, S1 depends on S3. For example, S1 makes an API call to S3. In this example, S2 also depends on S3. For example, S2 makes an API call to S3. For example, S3 might be a database service for S1 and S2 and therefore might be more critical than S1 or S2.
[0084] Return to reference Figure 6 For example, S11 and S12 may be workloads of non-critical services. S21 and S22 may be workloads of medium-critical services. S31 to S35 may be workloads of high-critical services. The business flowing between node 602B and node 602C may be a high-critical business.
[0085] In some examples, energy saving actions can be taken based on predicted business and service workload criticality levels for a certain duration. Criticality levels may help determine CPU frequencies and CPU C-states to apply energy savings. A CPU C-state is a core power state that defines the degree to which a processor may be idle or the functionality of a processor can go to sleep. Using business and service workload telemetry data via machine learning techniques, criticality of business and service workloads can be predicted for a user-configured duration. For example, a machine learning pipeline can predict the business criticality of cluster node 1 as 3 on a scale of 1 to 10 within the next duration window of 1 hour.
[0086] For example, the network business criticality calculator 624 can analyze the metrics collected in the database 618 and predict the service workload and business criticality for each of the multiple workloads. The network business criticality calculator 624 can know that under one or more specific conditions, the service workload (e.g., workload S3) will be more critical, such as when the service workload has a larger number of standby replicas in the next duration 't' to maintain high availability and / or is called by a large number of other services in the next duration 't'.
[0087] Workload criticality can be determined as:
[0088] Workload criticality (t) = Linear_Function (WAF, WDF)
[0089] Where: WAF is the workload availability factor for the next t time (eg, hour, day, minute, etc.), and WDF is the workload dependency factor for the next t time (eg, hour, day, minute, etc.).
[0090] For example, for each workload in the cluster (e.g., workloads S11, S12, S21, S22, and S31 to S35), the cluster power manager 620 can determine a workload dependency factor (WDF) and a workload availability factor (WAF). In some examples, the cluster power manager 620 can determine the WDF for the workload as WDF=number of workloads according to the workload / total number of workloads in the cluster. In some examples, the cluster power manager 620 can determine the WAF for the workload as WAF=number of workloads according to the workload / average number of workloads according to any workload.
[0091] In some examples, WAF and WDF are based on predictions for the next time period t, rather than current dependencies and availability. For example, the workload criticality calculator 622 can execute one or more machine learning models to predict the number of workloads based on the workload, the total number of workloads in the cluster, the number of workloads based on the workload, and / or the average number of workloads based on any workload. In such an example, the workload criticality calculator 622 can determine the WAF as WAF=predicted number of workloads based on the workload / predicted total number of workloads in the cluster. In such an example, the workload criticality calculator 622 can determine the WDF as WDF=predicted number of workloads based on the workload / predicted average number of workloads based on any workload.
[0092] When a workload is critical, a standby copy or replica is often kept to meet 99.99% availability. Not all workloads have standby replicas.
[0093] S1 S2 S3 WDF 0 / 9=0 0 / 9=0 2 / 9=0.23 WAF 0 / 2=0 1 / 2=0.5 2 / 5=0.4
[0094] The workload criticality calculator 622 may calculate the criticality of each workload. For example, the workload criticality calculator 622 may determine the workload criticality (WC) of a particular workload as WC=dWC+B1*WDF+B2*WAF
[0095] Where: dWC is the default workload criticality, B1 is the dependency factor coefficient, and B2 is the availability factor coefficient (a constant, usually a configured value).
[0096] B1 and B2 may be constants and may be user configurable. In some examples, B1 and B2 are configured to be values between 0 and 1, including 0 and 1.
[0097] For example, if B1 is configured to 0.5 and B2 is configured to 0.2, this means: an increase of 2 units in WDF will result in an increase of 1 unit in the criticality of the workload, and an increase of 5 units in WAF will result in an increase of 1 unit in the criticality of the workload.
[0098] The network service criticality calculator 624 may learn that, during a configured t duration, the service passing through the router instance will be more critical, such as when the average criticality of the service workload participating in the service is high, the average service speed is fast, the average service latency is low, and / or when the average empty poll count is low.
[0099] Node business criticality can be determined as:
[0100] Node business criticality (t) = linear_function (Cw, Ts, Tl, Ec)
[0101] Where: Cw is the average workload criticality for the next duration t, Ts is the predicted service speed / bandwidth requirement for the next duration t, Tl is the predicted service latency requirement for the next duration t, and Ec is the average empty polling count.
[0102] The network business criticality calculator 624 can determine the business criticality of the node. The business criticality of the network function of the node can be determined primarily by considering the criticality of all workloads running on the node. For example, the network business criticality calculator 624 can use an average value similar to aggregation to find the workload criticality of all workloads running on a particular node. For example, in each geographic region, there may be a node that has a standby replica that is scheduled to provide better availability for the workload.
[0103] When more critical workloads are scheduled to run on a particular node, the network functions of that node will typically carry more critical data. In this case, any power optimization techniques applied to the processors for that network function should be more gentle than those that could be applied to network function processors handling less critical traffic.
[0104] The network service criticality calculator 624 may also consider the predicted bandwidth and latency of the traffic passing through a particular network function. For example, the network service criticality calculator 624 may determine the node service criticality (NTC) as
[0105] NTC = default TC + avg (criticality of workload scheduled to the node) * B1 + predicted service bandwidth * B2 - predicted service latency * B3
[0106] Wherein Default TC is a default business criticality value, and B1 to B3 are coefficient constants that may be user-configurable.
[0107] As discussed above, the network function indicator collector 616 can collect the service bandwidth and delay indicators of each NF in NF 612A to 612C in a time series manner. The network service criticality calculator may include one or more machine learning models, which may be configured to predict or forecast service bandwidth and / or service delay. The forecasted service bandwidth and the forecasted service delay may be used to determine the service criticality of the node. In some examples, historical service bandwidth and / or service delay data may be used to train one or more machine learning models.
[0108] The network service criticality calculator 624 may send the predicted criticality value to the power mode recommender 626. The power mode recommender 626 may determine any processor optimization techniques to recommend for any given processor of the NF 612A to 612C. Such power optimization techniques may have different optimization levels. For example, one power optimization technique may be to reduce the processor core frequency range. With this technique, the lower the frequency, the lower the power consumption of the processor core. Another power optimization technique is to suspend the processor core. The processor core may be suspended for a specific duration. The longer the duration of the suspension, the lower the power consumption of the processor core. Another power optimization technique is to utilize the processor core idle or sleep state, such as states C0 to Cn. In general, the higher the state number in which the processor core is located, the lower the power consumption of the processor core.
[0109] In some examples, the power mode recommender 626 can, for example, look up a mapping or table of business criticality to power optimization levels configured by the user in a memory. For example, a user can configure a mapping of business criticality to optimization levels. In some examples, the mapping may depend on the processor type and / or vendor support. In other words, in some examples, different power optimization techniques (or levels) can be used for different processor types, even if different processor types have the same associated business criticality. In some examples, the power mode recommender 626 can analyze the node configuration of nodes 602A to 602C and the capabilities of the cluster, and determine the energy-saving actions to be taken. For example, based on the criticality values of the business and service workloads, the power mode recommender 626 can suggest changing the processor core frequency, the processor pause duration, and / or changing the processor energy-saving state, such as the "C state" of any one or more processors of NF 612A to 612C.
[0110] For example, for a network function with a higher TC (business criticality), the power mode recommender 626 may recommend a relatively higher frequency, a relatively lower pause duration, and / or a relatively lower order of CPU core inactivity. For a network function with a lower TC (business criticality), the power mode recommender 626 may recommend a relatively lower frequency, a relatively higher pause duration, and / or a relatively higher order of CPU core inactivity.
[0111] The power mode recommender 626 may recommend an optimization level for the network function, and the node network function power mode resources (NNFPMR) 630 may update the power optimization level of the network function to implement the recommendation.
[0112] In some examples, during the low activity duration, the workload may be reduced and / or the availability replicas may be reduced. During the low activity duration, the cluster power manager 620 may perform periodic calculations of workload criticality and business criticality to ensure that processor cores of low-critical network functions begin to save processor cycles, thereby saving energy. The periodic calculations of workload criticality and business criticality and the updating of power optimization techniques may be automatic and may not require any management effort or static policies.
[0113] Figure 8 is a flow chart illustrating an example power manager technique according to one or more aspects of the present disclosure. Figure 8 The examples are discussed with respect to network controller 24, but Figure 8 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.
[0114] Network controller 24 may start a cluster power manager 802. For example, network controller 24 may start cluster power manager 620. Network controller 24 may obtain a workload dependency table 804. For example, an administrator may enter a workload dependency table, which may indicate any dependencies that any workload may have.
[0115] The network controller 24 may determine the workload dependency factors (806). For example, the network controller 24 may determine the workload dependency factors based on the workload dependency table. The network controller 24 may obtain the workload copies and scheduling indicators (808). For example, the network controller 24 may obtain the workload copies and scheduling indicators from the database 618, such as the number of workload copies that exist at what time, when to create copies, when to destroy copies, etc. In some examples, the administrator may enter such information.
[0116] Network controller 24 may determine a workload availability factor (810).Network controller 24 may determine a workload criticality (812).
[0117] The network controller 24 may obtain business indicators of the node network function (814). For example, the network controller 24 may obtain business indicators such as business speed, throughput, latency, etc. from the database 618. In some examples, the administrator may enter this information.
[0118] The network controller 24 may forecast traffic bandwidth and latency (816). For example, the network controller 24 may execute a machine learning model to forecast traffic bandwidth and latency. The network controller 24 may obtain an average workload criticality for each node (818).
[0119] The network controller 24 may determine the business criticality for each node network function (820). The network controller 24 may obtain a mapping of business criticality to power mode (822). For example, the network controller 24 may load a user-generated mapping of business criticality to power optimization from a memory (e.g., database 618).
[0120] Network controller 24 may find a power mode for the network function (824). For example, network controller 24 may determine the power mode based on the business criticality by looking up the business criticality in a mapping of business criticality to power mode. Network controller 24 may apply the power mode to the network function (826). For example, network controller 24 may implement the power mode in one or more processor cores of the network function.
[0121] Fig. 9 is a flow chart illustrating other example power manager techniques according to one or more aspects of the present disclosure. Fig. 9 The examples are discussed with respect to network controller 24, but Fig. 9 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.
[0122] Network controller 24 may obtain workload metrics from multiple nodes of the cluster (902). For example, network controller 24 may obtain workload metrics from nodes 602A to 602C. The workload metrics may include at least one of workload dependency counts (e.g., how many workloads depend on a given workload) or workload service availability configurations (e.g., how many standby copies are there for the workload on a node, how many replicas are there for the workload on a node, etc.).
[0123] The network controller 24 may obtain network function indicators from multiple nodes of the cluster (904). For example, the network controller 24 may obtain network function indicators from nodes 602A to 602C. The network function indicators may include the service speed of the node, the service bandwidth of the node, the service delay of the node, or the polling statistics of the node.
[0124] For each node in the plurality of nodes (905) (the network controller may complete the following steps for each node in the cluster), the network controller 24 may execute at least one machine learning model to predict a business criticality metric of the node (906). For example, the network controller 24 may execute a machine learning model trained to predict the business criticality of a node to predict the business criticality metric of the node.
[0125] For each node in the plurality of nodes, network controller 24 may determine a power mode for at least one processing core of the node based on a business criticality metric of the node (908). For example, network controller 24 may determine a power mode to be applied to at least one processing core of the node based on a business criticality metric of the node.
[0126] Network controller 24 may recommend or apply a power mode to at least one processing core of a node (910). For example, network controller 24 may recommend a power mode to another device or user to determine whether to apply the power mode or to apply the power mode to at least one processing core. In another example, network controller 24 may apply the power mode to at least one processing core.
[0127] In some examples, the network controller 24 may automatically and periodically perform the techniques of the present disclosure. For example, the network controller 24 may automatically, periodically, and for each of the plurality of nodes: execute at least one machine learning model to predict an updated business criticality metric for the node; determine an updated power mode for at least one processing core of the node based on the updated business criticality metric for the node; and recommend or apply an updated power mode to at least one processing core of the node.
[0128] In some examples, applying the power mode includes at least one of suspending operation of at least one processing core, changing the frequency of at least one processing core, or causing at least one processing core to enter a different processor power state. In some examples, the power mode is limited to a predetermined amount of time. For example, the frequency of the processor core is changed within time t, the processor core is suspended within time t, or the processor core enters a different processor power state within time t. In some examples, after time t, the operation of the processor core may be restored to a state before the power mode was applied.
[0129] In some examples, the business criticality metric of a node is based on at least one of the following: a determined workload criticality of one or more workloads of the node, a predicted bandwidth of the node, or a predicted business latency of the node. In some examples, the determined workload criticality is based at least in part on a workload availability factor and a workload dependency factor. In some examples, the network controller 24 may determine the workload criticality. In some examples, the network controller 24 may determine the workload availability factor and the workload dependency factor by executing at least one machine learning model. In some examples, the network controller 24 may determine the workload availability factor and the workload dependency factor based on a workload indicator. For example, the network controller 24 may determine the workload availability factor and the workload dependency factor based on the current workload indicator, rather than determining the workload availability factor and the workload dependency factor based on a predicted workload indicator.
[0130] In some examples, to determine the power mode, network controller 24 may determine the power mode based on a mapping of business criticality metrics of the nodes to power modes.
[0131] The techniques described herein may be implemented in hardware, software, firmware, or any combination thereof. The various features described as modules, units, or components may be implemented together in an integrated logic device or separately as discrete but cooperable logic devices or other hardware devices. In some cases, the various features of the electronic circuit system may be implemented as one or more integrated circuit devices, such as an integrated circuit chip or chipset.
[0132] If implemented in hardware, the disclosure may be directed to an apparatus, such as a processor or an integrated circuit device, such as an integrated circuit chip or chipset. Alternatively or additionally, if implemented in software or firmware, the techniques may be implemented at least in part by a computer-readable data storage medium that includes instructions that, when executed, cause a processor to perform one or more of the above methods. For example, a computer-readable data storage medium may store such instructions for execution by a processor.
[0133] The computer-readable medium may form part of a computer program product, which may include packaging materials. The computer-readable medium may include computer data storage media, such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic or optical data storage media, etc. In some examples, the article of manufacture may include one or more computer-readable storage media.
[0134] In some examples, computer-readable storage media may include non-transient media. The term "non-transient" may indicate that the storage medium is not implemented in a carrier wave or propagating signal. In some examples, non-transient storage media may store data that may change over time (e.g., in RAM or cache).
[0135] The code or instruction may be software and / or firmware executed by a processing circuit system that includes one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuit systems. Therefore, the term "processor" as used herein may refer to any of the foregoing structures or any other structure suitable for implementing the techniques described herein. In addition, in some aspects, the functionality described in the present disclosure may be provided in a software module or a hardware module.
Claims
1. A computing 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: Get workload metrics from multiple nodes in the cluster; obtaining network function indicators from the plurality of nodes of the cluster; as well as For each node in the plurality of nodes: executing at least one machine learning model to predict a business criticality metric of the node; determining a power mode for at least one processing core of the node based on the business criticality metric of the node; as well as The power mode is recommended or applied to the at least one processing core of the node. 2 . The computing system of claim 1 , wherein the workload metric comprises at least one of a workload dependency count or a workload service availability configuration.
3. The computing system of claim 1, wherein the network function indicator comprises at least one of service speed, bandwidth, latency, or polling statistics.
4. The computing system of claim 1 , wherein the one or more processors are further configured to automatically, periodically, and for each of the plurality of nodes: executing the at least one machine learning model to predict an updated business criticality metric for the node; determining, based on the updated business criticality metric for the node, an updated power mode for the at least one processing core of the node; as well as The updated power mode is recommended or applied to the at least one processing core of the node.
5. The computing system of any one of claims 1 to 4, wherein applying the power mode comprises at least one of suspending operation of the at least one processing core, changing the frequency of the at least one processing core, or causing the at least one processing core to enter a different processor power state. The computing system of claim 5 , wherein the power mode is limited to a predetermined amount of time.
7. A computing system according to any one of claims 1 to 4, wherein the business criticality metric of the node is based on at least one of the following: a determined workload criticality of one or more workloads of the node, a predicted bandwidth of the node, or a predicted business latency of the node.
8. The computing system of claim 7, wherein the determined workload criticality is based at least in part on a workload availability factor and a workload dependency factor.
9. The computing system of claim 8, wherein the one or more processors are further configured to determine the workload criticality, and wherein the one or more processors are configured to determine the workload availability factor and the workload dependency factor by executing the at least one machine learning model.
10. The computing system of claim 8, wherein the one or more processors are further configured to determine the workload criticality, and wherein the one or more processors are configured to determine the workload availability factor and the workload dependency factor based on the workload metric.
11. The computing system of any one of claims 1 to 4, wherein to determine the power mode, the one or more processors are configured to determine the power mode based on a mapping of the business criticality metric of the node to the power mode.
12. A method comprising: Obtaining workload metrics from multiple nodes of the cluster by one or more processors; obtaining, by the one or more processors, network function indicators from the plurality of nodes of the cluster; as well as For each node in the plurality of nodes: executing, by the one or more processors, at least one machine learning model to predict a business criticality metric of the node; determining, by the one or more processors, a power mode for at least one processing core of the node based on the business criticality metric of the node; as well as The power mode is recommended or applied, by the one or more processors, to the at least one processing core of the node.
13. The method of claim 12, wherein the workload metric comprises at least one of a workload dependency count or a workload service availability configuration.
14. The method according to claim 13, wherein the network function indicator comprises at least one of service speed, bandwidth, latency or polling statistics.
15. The method of claim 12, further comprising automatically, periodically, and for each of the plurality of nodes: executing, by the one or more processors, the at least one machine learning model to predict an updated business criticality metric for the node; determining, by the one or more processors, an updated power mode for the at least one processing core of the node based on the updated business criticality metric of the node; as well as The updated power mode is recommended or applied, by the one or more processors, to the at least one processing core of the node.
16. The method of any one of claims 12 to 15, wherein applying the power mode comprises at least one of halting operation of the at least one processing core, changing the frequency of the at least one processing core, or causing the at least one processing core to enter a different processor power state. The method of claim 16 , wherein the power mode is limited to a predetermined amount of time.
18. A method according to any one of claims 12 to 15, wherein the business criticality metric of the node is based on at least one of the following: a determined workload criticality of one or more workloads of the node, a predicted bandwidth of the node, or a predicted business latency of the node.
19. The method of claim 18, wherein the determined workload criticality is based at least in part on a workload availability factor and a workload dependency factor.
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