Power optimization for computing system
Through the computing system dynamically manages power and adjusts the power consumption of routers and network equipment, the energy inefficiency problem caused by overbuilding is solved, and more efficient energy use and operational costs are achieved.
Patent Information
- Application Number
- CN202411257224.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-08-28
- Filing Date
- 2024-09-09
- Publication Date
- 2025-03-11
AI Technical Summary
The energy inefficiency problems caused by over-construction of routers and other network devices in computer networks, especially in energy-intensive data center environments.
Dynamically manage power through a computing system, such as taking the CPU core offline, reducing the core clock frequency, and taking the memory module offline to adjust the power consumption of network devices, optimizing energy usage based on expected and maximum scale comparisons.
It effectively reduces the power consumption of network equipment, improves energy efficiency, reduces operating costs and power costs, and ensures dynamic adjustment of network performance.
Smart Images

Figure CN119597137A_ABST
Abstract
Description
[0001] Cross-references
[0002] This application claims priority to and the benefit of U.S. Patent Application No. 18 / 818,180 filed on August 28, 2024 and Indian Provisional Application No. 202341060876 filed on September 11, 2023. The entire contents of the above applications are incorporated herein by reference. Technical Field
[0003] The present disclosure relates to computer networks, and more particularly to improving energy efficiency in computer networks. Background Art
[0004] A computer network is a collection of interconnected network devices that can exchange data and share resources. In a packet-based network, such as an Ethernet network, network devices pass data by dividing it into blocks of variable length, called packets, which are individually routed from source devices to destination devices across the network. The destination device extracts the data from the packets and assembles the data into its original form.
[0005] Certain network devices or nodes, such as routers, maintain routing information that describes routes through the network. Routers typically have many CPU cores and large amounts of memory to support various tasks, such as management of the control plane and routing packets. In some cases, a router may have more than a hundred CPU cores and hundreds of gigabytes of random access memory.
[0006] As enterprise networks, service provider networks, other types of networks, and data centers become larger, energy usage is also increasing. Some large data centers require a lot of electricity, enough to power many homes at the same time. Data centers can also run compute- and data-intensive application workloads (such as crypto mining and machine learning applications) and consume a lot of energy. To improve energy efficiency, some networks can obtain energy from renewable energy sources. However, the configuration of networks, data centers, and / or applications running on such networks is constantly changing, and the network is generally unable to dynamically improve its energy efficiency. Summary of the invention
[0007] The present disclosure describes techniques for improving and / or reducing the power consumption of routers or other computing systems in a network. In particular, the techniques described herein can help manage power in a computing system to mitigate inefficiencies caused by routers or other network devices that are overbuilt for current needs. In some examples, a computing system can "offline" individual CPU cores within a router (e.g., convert to a power saving mode), or reduce the frequency at which the cores are clocked within the router, where appropriate. The computing system can also offline individual memory modules, where appropriate, which typically also translates into reduced power consumption of the router.
[0008] In some examples, the present disclosure describes operations performed by a computing system according to one or more aspects of the present disclosure. In one specific example, the present disclosure describes a method, including: determining, by a computing system, an expected size of a network device relative to a maximum size of the network device; and adjusting, by the computing system, power consumption of the network device based on a comparison of the expected size with the maximum size.
[0009] In another example, the disclosure describes a system including a storage system and a processing circuit system that can access the storage system, wherein the processing circuit system is configured to perform the operations described herein. In yet another example, the disclosure describes a computer-readable storage medium including instructions that, when executed, configure the processing circuit system of a computing system to perform the operations described herein.
[0010] The present invention is intended to provide a brief overview of some of the topics described in this document. Therefore, the above features are merely examples and should not be interpreted as narrowing the scope or spirit of the topics described herein. Other features, objects, and advantages of the present disclosure will be apparent from the specification and drawings and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1A is a block diagram of a router that can be used in edge deployments of an enterprise network, a service provider network, or other networks.
[0012] Figure 1B is a block diagram illustrating an example network system with a data center in which the techniques described herein may be implemented.
[0013] Figure 2 is a flow chart illustrating operations performed by an example power management controller in accordance with one or more aspects of the present disclosure.
[0014] Figure 3 is a flow chart illustrating operations performed by an example power management controller in accordance with one or more aspects of the present disclosure.
[0015] Figure 4 is a flow diagram illustrating operations performed by an example router in accordance with one or more aspects of the present disclosure. DETAILED DESCRIPTION
[0016] Network equipment deployed in a network is often underutilized, and therefore such equipment may use only a small fraction of the available CPU, cores, or memory. The number of cores and memory deemed necessary in a router can be calculated by determining the maximum record size of the router (e.g., in terms of the number of routes stored or hardware attributes), the best possible convergence at large scale under multi-dimensional configuration, and room for future growth. These considerations often result in routers being overbuilt to meet current needs (because cores and memory cannot be easily added later) and often result in routers being designed to accommodate future worst-case scenarios over the router's approximately seven-year useful life.
[0017] However, not all deployed routers need to be configured at the maximum possible scale, because different user environments will have different networks and different needs. Some routers will never reach the expected high usage scale. In addition, in greenfield deployments, the usage level or scale is expected to be low in the initial period and then gradually increase. If the expansion requirement of the deployment is 50% of the maximum, it may not be necessary to use all cores and run all cores at maximum frequency. Similarly, all memory modules may not be needed. However, cores always consume power (including when they are idle), and so do memory modules (e.g., DRAM DIMMs). Therefore, network administrators or owners make capital expenditures for routers (which often have more cores and memory than needed) and continue to pay for them through operating expenses and power costs. When the scale is below the maximum, running all cores and running them at maximum frequency will result in wasted power. In a cloud environment, resources (CPU, RAM, etc.) can be added when necessary. However, routers are usually deployed in relatively fixed environments (e.g., in local enterprise networks), so they are over-configured because components may not be added to the router in the future.
[0018] Figure 1A A block diagram of a router that may be used in an edge deployment of an enterprise network, a service provider network, or other network is illustrated. Figure 1A In the example, router 110 includes two routing engines (e.g., primary routing engine 120A and secondary routing engine 120B), and twenty line cards 130A to 130T (collectively referred to as “line cards 130”). In other examples, more or fewer routing engines and / or line cards may be used. Figure 1A The diagram shows a router, but in Figure 1AThe device or system illustrated in the figure and / or in other figures in this article can be a switch or other type of network device. Therefore, although at least some examples in this article are described in the form of routers, the technology according to various aspects of the present disclosure can also be applied to any type of network device.
[0019] The router 110 also includes a power supply 119, one or more I / O devices 115, one or more processors ( Figure 1A 110 ), routing module 125, and power management module 128. Routing module 125 can perform routing functions traditionally performed by a router. And as described herein, power management module 128 can perform certain energy management and / or energy saving operations. One or more of the devices, modules, storage areas, or other components of router 110 can be interconnected to enable inter-component communication (physically, communicatively, and / or operationally). In some examples, such connection can be provided via a communication channel (e.g., communication channel 117), a system bus, a network connection, an inter-process communication data structure, or any other method for transferring data.
[0020] exist Figure 1A In the embodiment, each routing engine 120 includes multiple processor cores and multiple memory modules. Figure 1A In the example of FIG. 1 , the routing engine 120A of the router 110 includes one or more processors or local processing units, each of which is composed of Figure 1A The core 121A is shown in FIG. Figure 1A In the example of FIG. 1 , routing engine 120A may have a single processor having eight cores (“core 121A”). In other examples, more processors may be used. Routing engine 120A also includes local memory for use by the processing unit(s), which in a typical example may include four 32-gigabyte random access memory modules (each labeled “RAM 122A”).
[0021] exist Figure 1AIn the example of , routing engine 120B is equipped in a manner similar to (or identical to) routing engine 120A and also includes a processor equipped with eight processor cores ("core 121B") and four memory modules ("RAM 122B"). In some examples, routing engine 120A can be used as the main routing engine of router 110, while routing engine 120B is used as a redundant backup. Therefore, although two routing engines 120 are shown in the figure, in other examples, router 110 may include only a single routing engine 120. However, in some examples, router 110 may have more than two routing engines 120. Core 121 within routing engine 120 can manage protocol sessions with one or more network peer devices, manage routing tables or data, and / or operate according to various routing protocols.
[0022] Each of the line cards 130 included in the router 110 typically also includes multiple processing cores and multiple memory modules. Figure 1A In the example shown in , each of the line cards 130 includes eight processor cores (e.g., core 131A in line card 130A and core 131 in each of line cards 130B through 130T). Similarly, in a typical example, each of the line cards 130 may include four 8-gigabyte memory modules (e.g., four memory modules 132A in line card 130A and four memory modules 132 in each of line cards 130B through 130T).
[0023] As configured in the figure, Figure 1A The router 110 includes a total of 176 cores (16 total in routing engine 120 and 160 total in twenty line cards 130A to 130T). In addition, the router includes 896 gigabits of memory (256 Gb total in routing engine 120 and another 640 Gb total in twenty line cards 130A to 130T).
[0024] Each of the line cards 130 may include a forwarding component, such as a packet forwarding engine ASIC 133 (e.g., a PFE ASIC 133A is included within the line card 130A, and each of the line cards 130B to 130T also includes a corresponding PFE ASIC 133). The PFE ASIC 133 may perform packet forwarding services on behalf of the router 110. The core 131 executed within each of the line cards 130 may manage each of the PFE ASICs 133 and / or perform control plane functions. The routing engine 120 within the router 110 is coupled to each of the line cards 130 through an internal switching fabric or other communication components.
[0025] The power supply 119 can provide power to one or more components of the router 110. The power supply 119 can receive power from a main alternating current (AC) power source in a data center, a building, or other location. In further examples, the power supply 119 can be a battery or a device that provides direct current (DC). In further examples, the router 110 and / or the power supply 119 can receive power from another source. One or more devices or components illustrated within the router 110 can be connected to the power supply 119, and / or can receive power from the power supply 119. The power supply 119 can have intelligent power management or consumption capabilities, and such features can be controlled, accessed, or adjusted by one or more modules (e.g., power management module 128) of the router 110 and / or by one or more cores 121 and / or 131 to intelligently consume, distribute, supply, or otherwise manage power.
[0026] One or more cores 121 and core 131 may implement functionality associated with router 110, and / or execute instructions associated with one or more modules illustrated herein and / or described below. One or more cores 121 and / or 131 may be a processing circuit system that performs operations according to one or more aspects of the present disclosure, may be a part of the circuit system, and / or may include the processing circuit system. Cores 121 and / or 131 may be included in various types of processing hardware, which may include a microprocessor, an application processor, a display controller, an auxiliary processor, one or more sensor hubs, and any other hardware configured to act as a processor, a processing unit, or a processing device. Using software, hardware, firmware, or a mixture of hardware, software, and firmware resident in and / or executed within router 110, router 110 may use one or more cores 121 or 131 to perform operations according to one or more aspects of the present disclosure.
[0027] One or more I / O devices 115 may communicate with routing engine 120 (or line cards 130) to control or perform various routing operations. In general, I / O devices 115 may represent any input or output device of router 110 that is not separately described herein.
[0028] Router 110 may include one or more operating system kernels that provide an execution environment for executing various software or modules included in router 110. Typically, kernel 121 or 131 can access stored instructions and / or data and execute such instructions and / or modules of router 110 or routing engine 120A or 120B. Such modules can be implemented as software, but in some examples can include any combination of hardware, firmware, and software. In addition, some modules can be executed in kernel space, while other modules can be executed in user space or non-kernel space. The combination of kernel 121 and 131 and storage devices (e.g., memory modules 122 and 132) can retrieve, store, and / or execute instructions and / or data of one or more applications, modules, or software.
[0029] In accordance with one or more aspects of the techniques described in this disclosure, power management module 128 of router 110 may perform one or more actions to improve the energy efficiency of router 110. In some examples, power management module 128 determines information about the energy requirements of router 110 and adjusts the operation of router 110 to improve its energy efficiency. In some examples, power management module 128 may be configured to determine the energy efficiency of specific devices within router 110, and / or manage or control certain aspects of how router 110 operates and / or consumes power.
[0030] As described herein, power in a computing system can be managed to improve inefficiencies caused by routers being overbuilt for current needs. In some cases, for example, a single core 121 and / or core 131 within a router 110 can be "taken offline" (e.g., switched to an energy-saving mode) by software or other methods. The frequency at which these cores are clocked can also be reduced. Typically, a lower clock speed translates into reduced power consumption of the router. In addition, individual memory modules 122 and 132 can also be taken offline (also by software represented by power management module 128). Taking such memory modules offline (e.g., using an energy-saving mode) will also typically translate into reduced power consumption of the router.
[0031] Several processes or methods may be employed to reduce power consumption. In a first method, it may be user-driven, involving a user setting an expected number of available cores that the router will use, such as expressed as a percentage of a maximum size. In this sense, the user adjusts a configuration knob or dial (e.g., by manually configuring router 110), the knob or dial being used to adjust the expected number of cores to be used and / or the expected number of memory modules that may be used.
[0032] In this example, one or more I / O devices 115 detect the input and output information about the input to power management module 128. Power management module 128 determines that the input includes information about the expected number of cores that router 110 will use. Alternatively, or in addition, power management module 128 determines that the input includes information about the expected number of memory modules that router 110 will use. In response to such information, power management module 128 takes one or more processors or cores offline and / or takes one or more memory modules offline. (In some cases, power management module 128 may take one or more processors, cores, and / or memory modules out of an offline state based on the input.)
[0033] In a second approach, power management module 128 determines and / or detects the size of cores 121 and 131 (or CPUs) within router 110, and determines and / or detects the size of memory modules 122 and 132 required by router 110 for current and / or anticipated operations. Power management module 128 then interacts with components within router 110 to take a subset of cores offline, reduce core frequencies, and / or take a subset of memory modules offline based on the sizes determined or detected by power management module 128. In some examples, power management module 128 may interact with these components to bring them “online,” or to take them out of an offline state (e.g., where power management module 128 previously took these components offline based on a previous prediction of expected demand).
[0034] In a third approach, a machine learning algorithm is trained to predict the appropriate size for the number of cores to be taken offline, the frequency at which the cores are clocked, and / or the number of memory modules to be taken offline. In some examples, the model is trained based on historical data about router size and switch operations, CPU utilization, core utilization, memory utilization, and / or router configuration. The power management module 128 then applies the trained model to determine the appropriate size, which is then converted into information about the number of cores to be taken offline, the frequency at which the cores are clocked, and / or the number of memory modules to be taken offline. Once this determination is made, components within the router 110 are adjusted based on the determination (e.g., by offline techniques or frequency reduction).
[0035] With each method, the power management module 128 (or an administrator or user) may be able to select method(s) of power management and / or optimization, which may involve taking cores offline, reducing clock frequencies, and / or taking memory modules offline. The power management module 128 may enable / disable these power management features globally (or per chassis) or on a per router component basis.
[0036] The techniques applied by the power management module 128 may be reversible and dynamic. For example, the power management module 128 may be able to adjust so that CPU cores or frequency can be increased with any upward system scale changes. Similarly, the power management module 128 may be able to ensure that the memory modules used are also increased with upward system scale changes. Typically, CPU cores (or frequencies) and memory module usage will dynamically increase or decrease with the scale of the system.
[0037] In an example, the router 110 may be deployed in an enterprise network, and the power management module 128 may determine that the current routing and protocol scale of the deployment is, for example, 40% of the maximum supported scale of the router 110. Applying the user-driven approach described above, and in one illustrative example, the user may set the scale at 50% of the router, allocating a 10% margin. Thus, based on these settings, the power management controller 28 may determine that the frequency of the cores should be reduced by 50%. Alternatively, or in addition, the power management controller 28 may determine that 50% of the 176 cores should be taken offline. Alternatively, or in addition, the power management controller 28 may determine that 50% of the available 896 gigabytes of memory (or any other appropriate amount, depending on the example) should be taken offline (e.g., two of the four memory modules 122A, two of the four memory modules 122B, and 40 of the 80 memory modules 132A to 132T). In examples where deployment requirements may increase over time, the power management module 128 may scale new cores or bring them online, scale clock frequencies, and / or scale memory modules online.
[0038] Although a 50% scale is selected in the described example when the determined scale is 40% of the maximum supported scale of router 110, any other suitable scale may be selected. Further, in other examples, power management module 128 may determine that the current router and protocol scale deployed is a different percentage (any suitable "X%" of the maximum supported scale of router 110), and such a different percentage may result in a different selected scale based on the X% value.
[0039] Figure 1B is a block diagram illustrating an example system 8 in which examples of the techniques described herein may be implemented in a data center 10. Figure 1A1 is described in terms of an edge deployment of a router 110 in an enterprise network, but the techniques described herein may be applied in other contexts, such as in a service provider network or data center environment. In general, a data center 10 provides an operating environment for applications and services for 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 may host infrastructure equipment such as network and storage systems, redundant power supplies (e.g., (multiple) power supplies 30), 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 larger public network infrastructure (e.g., 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.
[0040] 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 of which may implement one of customer sites 11.
[0041] The service provider network 7 provides packet-based connectivity for 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 for interconnecting 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 cases, the service provider network 7 represents multiple interconnected autonomous systems (such as the Internet) that provide services from one or more service providers.
[0042] In some examples, data center 10 may represent one of many geographically distributed network data centers. Figure 1BAs 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 web services for several businesses and end users. Other exemplary services may include data storage, virtual private networks, traffic engineering, file services, data mining, scientific 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 service provider network 7 core.
[0043] exist Figure 1B In the example illustrated in , 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-12X (referred to herein as "servers 12") are depicted as coupled to top of rack (TOR) switches 16A-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.
[0044] The switch fabric 14 in the illustrated example includes interconnected top of cabinet (or other "leaf") switches 16A-16N (collectively "TOR switches 16") coupled to a distribution layer of chassis (or "spine" or "core") routers or switches 18A-18M (collectively "chassis switches 18"). Although not shown, the data center 10 may also include, for example, 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. The techniques described herein may be applied to any of these systems or devices.
[0045] exist Figure 1BIn the example illustrated in , the TOR switch 16 and the chassis switch 18 provide redundant (multi-homed) connections to the IP structure 20 and the service provider network 7 for the server 12. The chassis switch 18 aggregates traffic and provides connections 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 merely an example. For example, other switching architectures can have more or fewer switching layers.
[0046] Each server 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 a server based on an x86 processor. The servers 12 may provide a network function virtualization infrastructure (NFVI) for the NFV architecture.
[0047] Server 12 hosts endpoints for one or more virtual networks that operate on a physical network represented here by IP fabric 20 and switch fabric 14. Although primarily described with respect to a data center based switch network, other physical networks, such as service provider network 7, may reside beneath one or more virtual networks.
[0048] The power management controller 28 may manage aspects of how the various network devices within the fabric 14 consume power. The power management controller 28 may communicate information describing power usage, power capacity, expected capacity, and / or other aspects of power consumption to an orchestration system (not shown) or a network controller 24. Example orchestration systems include OpenStack, VMWARE's vCenter, or MICROSOFT's SystemCenter. Example network controllers 24 include controllers for Apstra, Paragon, Mist, or JUNIPER NETWORKS or Tungsten Fabric's Contrail.
[0049] In accordance with one or more aspects of the techniques described in this disclosure, power management controller 28 may invoke one or more actions to improve energy efficiency of data center 10. In some examples, power management controller 28 determines information about energy requirements of one or more devices (e.g., switches 16 and 18) within fabric 14 (or devices within data center 10 generally), and adjusts the operation of such devices to improve energy efficiency of data center 10. In some examples, power management controller 28 may include energy efficiency module 32 configured to determine energy efficiency of devices within the data center (or data center generally), manage power consumption of devices within the data center, and / or manage or control certain operational modes of devices within the data center that affect power consumption.
[0050] As previously described, power in a computing system may be managed through software or other methods to improve inefficiencies caused by overbuilding network equipment for current needs, thereby taking individual CPU cores “offline” and / or reducing the frequency at which the cores are clocked in equipment within the data center 10. Typically, the lower clock speed translates into reduced power consumption by equipment within the data center 10. Additionally, individual memory modules may also be taken offline (e.g., using a power saving mode) through software, which also typically translates into reduced power consumption by equipment within the data center 10.
[0051] As mentioned previously, there are several different processes or methods that can be used to reduce power consumption and are related to Figure 1A Three related methods can also be applied to Figure 1B In the context of . In a first user-driven approach, the user sets the expected number of available cores that the network device will use, such as expressed as a percentage of a maximum size. In this sense, the user adjusts a configuration knob or dial (e.g., by manually configuring one of the network devices or switches 16 or 18) that is used to adjust the expected number of cores to be used. Similarly, the user determines and sets the expected number of memory modules that can be used.
[0052] In a second approach, the power management controller 28 (e.g., the energy efficiency module 32) determines and / or detects the size of the CPU and / or memory modules required for the current and / or expected operation of a given router or network device (e.g., including but not limited to one or more of the switches 16 or 18) in the data center 10. The power management controller 28 then interacts with the network device to offline a subset of the cores, reduce the core frequency, and / or offline a subset of the memory modules based on the size determined or detected by the power management controller 28. In some examples, and as in Figure 1AIn some embodiments, this process is performed by the router or network device itself, rather than by the power management controller 28 (e.g., module 32 may be included within the network device (e.g., within routers or switches 16 and 18, rather than within the power management controller 28).
[0053] In a third approach, a machine learning algorithm is trained to predict the appropriate size of the number of cores to be taken offline, the frequency at which the cores are clocked, and / or the number of memory modules to be taken offline. In some examples, the model is trained based on historical data about the size of the network device, switching or other operations, CPU, core, memory utilization, and / or configuration of the device. The trained model is then applied by the power management controller 28 (or the network device) to determine the appropriate size of the number of cores to be taken offline, the frequency at which the cores are clocked, and / or the number of memory modules to be taken offline. Once such a determination is made, the relevant network device is adjusted based on the determination (e.g., by offline techniques or frequency reduction).
[0054] For each method, the power management controller 28, the network device, or an administrator or user may be able to select method(s) of power management and / or optimization, which may involve taking cores offline, reducing clock frequencies, and / or taking memory modules offline. The power management controller 28, the network device, or a user may enable / disable these power management functions globally (or per chassis) or on a per device component basis (e.g., on a field replaceable unit basis).
[0055] Combined with Figure 1A As with the examples described, the proposed techniques can be reversible and dynamic. For example, CPU cores or frequency can be increased with any upward system scale change. Similarly, the memory modules used can also be increased with any upward system scale change. In general, CPU cores (or frequency) and memory module usage will dynamically increase or decrease with system scale.
[0056] In one example, a user may have deployed multiple routers or switches in a production network, such as Figure 1B. The power management controller 28 determines that the current routing and protocol scale of the deployment is, for example, 40% of the maximum supported scale of a given router. Applying the user-driven approach described above, the user sets the scale to 50% of the router (or any other appropriate percentage, depending on the example) and allocates a 10% margin. Therefore, based on these settings, the power management controller 28 can determine that the frequency of the core should be reduced by 50%. Alternatively, or in addition, the power management controller 28 can determine that 50% of the cores should be taken offline. Alternatively, or in addition, the power management controller 28 can determine that 50% of the memory modules should be taken offline. And in examples where deployment requirements increase over time, the power management controller 28 can proportionally activate new cores or bring them online, proportionally increase clock frequencies, and / or proportionally activate memory modules / bring them online.
[0057] Figure 1A and Figure 1B The modules illustrated in (e.g., routing module 125, power management module 128, energy efficiency module 32) and / or modules illustrated or described elsewhere in this disclosure may use software, hardware, firmware, or a mixture of hardware, software, and firmware resident in and / or executed at one or more computing devices to perform the described operations. For example, a computing device may execute one or more such modules with multiple processors or multiple devices. A computing device may execute one or more of such modules as a virtual machine executing on underlying hardware. One or more of such modules may be executed as one or more services of an operating system or computing platform. One or more of such modules may be executed as one or more executable programs on an application layer of a computing platform. In other examples, the functionality provided by the modules may be implemented by dedicated hardware devices.
[0058] Although some modules, data storage repositories, components, programs, executable files, data items, functional units, and / or other items included in one or more storage devices can be illustrated separately, one or more of these items can be combined and operated as a single module, component, program, executable file, data item, or functional unit. For example, one or more modules or data storage repositories can be combined or partially combined so that they operate as a single module or provide functionality. In addition, one or more modules can interact and / or cooperate with each other so that, for example, a module serves as a service or expansion of another module. In addition, each module, data storage repositories, components, programs, executable files, data items, functional units, or other items illustrated in the storage device can include multiple components, subcomponents, modules, submodules, data storage repositories, and / or other components or modules or data storage repositories not illustrated.
[0059] In addition, each module, data repository, component, program, executable file, data item, functional unit, or other item illustrated in the storage device can be implemented in various ways. For example, each module, data repository, component, program, executable file, data item, functional unit, or other item illustrated in the storage device can be implemented as a downloadable or pre-installed application. In other examples, each module, data repository, component, program, executable file, data item, functional unit, or other item illustrated in the storage device can be implemented as part of an operating system executed on a computing device.
[0060] Figure 2 is a flow chart illustrating operations performed by an example power management controller 28 according to one or more aspects of the present disclosure. Figure 2 exist Figure 1B The power management controller 28 is described in the context of FIG. 1 and may correspond to the first and second methods described above. In other examples, Figure 2 The operations described in the embodiment may be performed by the network device itself, or by one or more other components, modules, systems, or devices. Figure 2 The operations described may be combined, performed in a different order, omitted, or may include additional operations not specifically illustrated or described.
[0061] exist Figure 2 In the process illustrated in , and in accordance with one or more aspects of the present disclosure, the power management controller 28 may determine the scale of the network device as a percentage of the maximum scale (201). The power management controller 28 may add an offset to the determined scale (202). The power management controller 28 may determine whether the total scale (scale+offset) is less than 100% of the maximum scale of the network device (203). If the scale is at the maximum scale, the power management controller 28 may not implement any power consumption adjustments to the network device. However, if the scale is less than the maximum scale, the power management controller 28 may implement one or more power consumption adjustments to the network device. Such adjustments may involve taking a certain percentage of CPU cores offline (204), reducing the core clock frequency by a certain proportion (205), and / or taking a certain proportion of memory modules offline (206).
[0062] exist Figure 2, and after performing one or more power consumption adjustments on the network device, the power management controller 28 may continue to monitor the operation of the network device and perform updated scale calculations (e.g., return to 201). Based on these updated scale calculations, the power management system 28 may perform more power consumption adjustments, which may involve taking additional cores or memory modules offline or further reducing core frequency. However, when the updated scale calculation indicates an increase in scale, the power management system 28 may perform power consumption adjustments that involve rolling back previous taking CPU cores and / or memory modules offline (i.e., activating CPU cores and / or activating memory modules) and / or increasing core clock frequency.
[0063] Figure 3 is another flow chart illustrating operations performed by the example power management controller 28 according to one or more aspects of the present disclosure. Figure 2 Same, Figure 3 Below in Figure 1B In other examples, Figure 3 The operation 3 described in the above may be performed by the network device itself, or by one or more other components, modules, systems, or devices. Figure 3 Related operations may be combined, performed in a different order, omitted, or may include additional operations not specifically illustrated or described.
[0064] exist Figure 3 In the process illustrated in , and in accordance with one or more aspects of the present disclosure, the power management controller 28 may use an artificial intelligence machine learning (AIML) model to predict maximum CPU and / or memory (e.g., DRAM) utilization. In this example, the power management controller 28 may predict the CPU and / or memory utilization as a percentage of the maximum utilization (301). The predicted utilization may be referred to as "U" and the maximum utilization may be referred to as "MAX".
[0065] Power management controller 28 may also add a headroom value ("H") to the predicted utilization to determine a "size" value (302). (In some examples, the machine learning model may include this headroom value in its predictions).
[0066] The power management controller 28 may determine whether the predicted scale (predicted utilization + margin) is less than the maximum utilization of the network device (303). If the scale is at the maximum scale, the power management controller 28 may not implement any power consumption adjustments to the network device. However, if the scale is less than the maximum scale, the power management controller 28 may implement one or more power consumption adjustments to the network device. Such adjustments may involve taking a certain percentage of CPU cores offline (304), reducing the core clock frequency by a certain percentage (305), and / or taking a certain percentage of memory modules offline (306). (In some cases, particularly with respect to taking memory modules offline, it may not be possible to take a small portion of memory modules offline. In this case, the power management controller 28 may take offline the complete memory modules whose number is closest to the accurately calculated percentage of memory modules.)
[0067] exist Figure 3 , and after performing one or more power consumption adjustments on the network device, the power management system 28 may continue to monitor the operation of the network device and apply the machine learning module to make new predictions about scale (e.g., return to 301). Based on these updated scale values, the power management system 28 may perform more power consumption adjustments, which may involve taking additional cores or memory modules offline or further reducing core frequency. However, when the updated scale prediction indicates an increase in scale, the power management system 28 may perform power consumption adjustments that involve rolling back previously taking CPU cores offline and / or memory modules offline (i.e., activating CPU cores and / or activating memory modules) and / or increasing core clock frequency.
[0068] Figure 4 is a flow chart illustrating operations performed by an example network device according to one or more aspects of the present disclosure. Figure 1A The background of router 110 is described in Figure 4 In other examples, Figure 4 The operations described in can be performed by one or more other components, modules, systems, or devices. In addition, in other examples, Figure 4 The operations described may be combined, performed in a different order, omitted, or may include additional operations not specifically illustrated or described.
[0069] exist Figure 4 In the process illustrated in , and according to one or more aspects of the present disclosure, the system can determine the expected size of the network device (401). For example, referring to Figure 1A, the power management module 128 of the router 110 may determine the expected scale of the router 110 based on the current operation, environment, configuration, or other conditions. Alternatively or in addition, the power management module 128 of the router 110 may determine the expected convergence under multi-dimensional configuration and large scale. In other words, the speed at which the network will reconverge during any path failure depends on the scale of the CPU and the router 110, and the power management module may use information about the convergence capabilities and / or attributes to determine the scale of the router 110. The system may compare the expected scale with the maximum scale of the network device (402). For example, the power management module 128 of the router 110 compares the expected scale with the maximum scale of the router 110 (for example, the maximum scale may be based on the configuration or specifications of the router 110). The power management module 128 may determine that the expected scale is low enough so that one or more components are not required for the expected scale of operations performed by the router 110. In this case, these components of the router may be taken offline, or the frequency at which at least some cores are clocked may be reduced (the "yes" path from 403). In such examples, power management module 128 adjusts the power consumption of router 110, such as by reducing the clock frequency or taking one or more components (e.g., cores 121, 131 or modules 122, 132) of router 110 offline. Note that in some examples, if power management module 128 determines that the expected scale is sufficiently high relative to the maximum scale, power management module 128 may adjust the power consumption of router 110 by increasing the clock frequency and / or taking one or more components of router 110 online. If neither condition exists, power management module 128 may not perform any adjustment to the power consumption of router 110 ("No" path from 403).
[0070] For the processes, devices, and other examples or descriptions described herein (included in any flow chart or flow diagram), some operations, actions, steps, or events included in any technology described herein may be performed in different orders, may be added, merged, or completely omitted (e.g., not all described actions or events are necessary for the practice of technology). In addition, in some examples, operations, actions, steps, or events may be performed simultaneously, for example, by multithreading, interrupt processing, or multiple processors, rather than sequential execution. In addition, even if not explicitly identified as automatically executed, some operations, actions, steps, or events may also be automatically executed. In addition, some operations, actions, steps, or events described as automatically executed may alternatively not be automatically executed, but, in some examples, these operations, actions, steps, or events may be executed in response to input or another event.
[0071] The disclosures of all publications, patents, and patent applications cited herein are hereby incorporated by reference. If any material incorporated by reference conflicts with the present disclosure, the present disclosure controls.
[0072] For ease of explanation, only a limited number of devices are shown in the accompanying drawings and / or in other diagrams cited herein. However, the technology according to one or more aspects of the present disclosure can be performed with more such systems, components, devices, modules, and / or other items, and the collective reference to such systems, components, devices, modules, and / or other items can represent any number of such systems, components, devices, modules, and / or other items.
[0073] The drawings included herein each illustrate at least one example implementation of an aspect of the present disclosure. However, the scope of the present disclosure is not limited to such implementations. Therefore, in addition to the systems, methods, or techniques illustrated in the drawings, other examples or alternative implementations of the systems, methods, or techniques described herein may be suitable in other cases. Such implementations may include a subset of the devices and / or components included in the drawings, and / or may include additional devices and / or components not shown in the drawings.
[0074] The detailed description set forth above is intended to describe various configurations and is not intended to represent the only configuration in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a full understanding of the various concepts. However, these concepts may be practiced without these specific details. In some cases, well-known structures and components are shown in the form of block diagrams in the referenced figures to avoid obscuring these concepts.
[0075] Therefore, although one or more implementations of various systems, devices, and / or components can be described with reference to specific figures, such systems, devices, and / or components can be implemented in a variety of different ways. For example, one or more devices illustrated as separate devices herein can be alternatively implemented as a single device; one or more components illustrated as separate components can be alternatively implemented as a single component. In addition, in some examples, one or more devices illustrated as a single device herein can be alternatively implemented as multiple devices; one or more components illustrated as a single component can be alternatively implemented as multiple components. Each of such multiple devices and / or components can be directly coupled via wired or wireless communication and / or remotely coupled via one or more networks. In addition, one or more devices or components illustrated in various figures herein can be alternatively implemented as a part of another device or component not shown in such figures. In this and other ways, some functions described herein can be performed via distributed processing of two or more devices or components.
[0076] In addition, some operations, techniques, features, and / or functions may be described herein as being performed by specific components, devices, and / or modules. In other examples, such operations, techniques, features, and / or functions may be performed by different components, devices, or modules. Therefore, even if not specifically described in this manner herein, some operations, techniques, features, and / or functions described herein as being attributed to one or more components, devices, or modules may also be attributed to other components, devices, and / or modules in other examples.
[0077] Although specific advantages have been identified in conjunction with the description of some examples, various other examples may include some, none, or all of the enumerated advantages. Other advantages (whether technical or otherwise) will be apparent to those of ordinary skill in the art from this disclosure. In addition, although specific examples have been disclosed herein, aspects of the present disclosure may be implemented using any number of technologies (whether currently known or not), and therefore, the present disclosure is not limited to the examples specifically described and / or illustrated in this disclosure.
[0078] In one or more examples, the described functions can be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the function can be stored as one or more instructions or codes on a computer-readable medium, and / or transmitted via a computer-readable medium, and executed by a hardware-based processing unit. A computer-readable medium may include a computer-readable storage medium corresponding to a tangible medium (such as a data storage medium) or a communication medium (including any medium that facilitates the transfer of a computer program from one place to another (e.g., according to a communication protocol)). In this way, a computer-readable medium can generally correspond to (1) a tangible computer-readable storage medium that is non-temporary, or (2) a communication medium, such as a signal or carrier wave. A data storage medium can be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, codes, and / or data structures for implementing the techniques described in the present disclosure. A computer program product may include a computer-readable medium.
[0079] By way of example and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, or optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other medium that can be used to store the required program code in the form of instructions or data structures and can be accessed by a computer. In addition, any connection may be properly referred to as a computer-readable medium. For example, if the instruction is transmitted from a website, server, or other remote source using a wired (e.g., coaxial cable, fiber optic cable, twisted pair) or wireless (e.g., infrared, radio, and microwave) connection, the wired or wireless connection is included in the definition of the medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carriers, signals, or other temporary media, but rather point to non-temporary tangible storage media.
[0080] Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuit systems. Therefore, the terms "processor" or "processing circuit" used herein may refer to any of the above structures or any other structure suitable for implementing the described technology. In addition, in some examples, the described functionality may be provided within dedicated hardware and / or software modules. In addition, these techniques may be fully implemented in one or more circuits or logic elements.
[0081] The technology of the present disclosure may be implemented in a variety of devices or apparatuses, including, to the extent appropriate, a wireless handset, a mobile or non-mobile computing device, a wearable or non-wearable computing device, an integrated circuit (IC), or a set of ICs (e.g., a chipset). Various components, modules, or units are described in the present disclosure to emphasize the functional aspects of a device configured to perform the disclosed technology, but do not necessarily need to be implemented by different hardware units. Instead, as described above, the various units may be combined in a hardware unit, or provided by a collection of interoperable hardware units (including one or more processors as described above) in combination with appropriate software and / or firmware.
Claims
1. A method for adjusting power consumption, comprising: determining, by a computing system, an expected size of a network device, wherein the network device comprises a plurality of hardware components; comparing, by the computing system, the expected size with a maximum size of the network device; as well as Power consumption of the network device is adjusted, by the computing system, based on the comparison, wherein adjusting power consumption includes taking one or more of the hardware components of the network device offline.
2. The method of claim 1, wherein the hardware component comprises a plurality of CPU cores, and wherein adjusting the power consumption of the network device further comprises: The frequency at which at least one of the CPU cores is clocked is reduced.
3. The method of claim 1 , wherein the hardware components include a plurality of CPU cores, and wherein taking one or more of the hardware components offline comprises: One of the CPU cores in the network device is taken offline.
4. The method of claim 1 , wherein the hardware components include a plurality of memory modules, and wherein taking one or more of the hardware components offline comprises: One or more of the memory modules in the network device are taken offline.
5. The method according to any one of claims 1 to 4, further comprising: determining, by the computing system, an expected size of an update of the network device; as well as The power consumption of the network device is further adjusted by the computing system based on the expected size of the update.
6. The method of claim 5, wherein further adjusting power consumption comprises: One or more of the hardware components are brought online.
7. The method according to any one of claims 1 to 4, Wherein the computing system is included in the network device.
8. The method of any one of claims 1-4, wherein the network device is a router, and wherein determining the expected size of the router comprises: Information about a convergence capability of the router is determined.
9. The method of claim 8, wherein determining the expected size comprises: A machine learning model is applied to predict the expected size based on at least one of: a configuration associated with the router, a specification associated with the router, switching operations, CPU utilization, core utilization, or memory utilization.
10. A system comprising storage devices; and a processing circuit system having access rights to the storage device and configured to: determining an expected size of a network device, wherein the network device comprises a plurality of hardware components, comparing the expected size to a maximum size of the network device, and Power consumption of the network device is adjusted based on the comparison, wherein to adjust power consumption, the processing circuitry is further configured to take one or more of the hardware components of the network device offline.
11. The system of claim 10, wherein the hardware component comprises a plurality of CPU cores, and wherein to adjust power consumption of the network device, the processing circuit system is further configured to: The frequency at which at least one of the CPU cores is clocked is reduced.
12. The system of claim 10, wherein the hardware components include a plurality of CPU cores, and wherein to take one or more of the hardware components offline, the processing circuitry is further configured to: One of the CPU cores in the network device is taken offline.
13. The system of any one of claims 10-12, wherein the hardware components include a plurality of memory modules, and wherein to take one or more of the hardware components offline, the processing circuitry is further configured to: One or more of the memory modules in the network device are taken offline.
14. The system of any one of claims 10-12, wherein the processing circuit system is further configured to: determining an expected scale of an update of the network device; and The power consumption of the network device is further adjusted based on the expected size of the update.
15. The system of claim 14, wherein to further adjust power consumption, the processing circuit system is further configured to: One or more of the hardware components are brought online.
16. The system according to any one of claims 10 to 12, Wherein the system is included in the network device.
17. The system of any one of claims 10-12, wherein the network device is a router, and wherein to determine the expected size, the processing circuit system is further configured to: Information about a convergence capability of the router is determined.
18. The system of claim 17, wherein to determine the expected size, the processing circuit system is further configured to: A machine learning model is applied to predict the expected size based on at least one of: configuration, fabric, switch operation, CPU utilization, core utilization, or memory utilization of the router.
19. A non-transitory computer-readable storage medium encoded with instructions for causing one or more programmable processors to perform the method of any one of claims 1-9.