US20230161398A1 - Data storage system with power consumption efficiency and methods of operating the same - Google Patents
Data storage system with power consumption efficiency and methods of operating the same Download PDFInfo
- Publication number
- US20230161398A1 US20230161398A1 US17/455,921 US202117455921A US2023161398A1 US 20230161398 A1 US20230161398 A1 US 20230161398A1 US 202117455921 A US202117455921 A US 202117455921A US 2023161398 A1 US2023161398 A1 US 2023161398A1
- Authority
- US
- United States
- Prior art keywords
- processor
- empirical
- power consumption
- data
- datums
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000013473 artificial intelligence Methods 0.000 claims description 64
- 230000002123 temporal effect Effects 0.000 claims description 49
- 230000009471 action Effects 0.000 claims description 38
- 230000004044 response Effects 0.000 claims description 17
- 230000000875 corresponding effect Effects 0.000 claims description 11
- 230000002596 correlated effect Effects 0.000 claims description 10
- 238000012549 training Methods 0.000 claims description 10
- 230000001276 controlling effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 9
- 230000020169 heat generation Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3221—Monitoring of peripheral devices of disk drive devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3268—Power saving in hard disk drive
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- Data storage systems often are large data centers with databases that store data for online accounts, online applications, and computer networks. Data storage systems are continuously looking up data and implementing software applications associated with that data. As such, these data storage systems consume enormous amounts of power. High power consumptions increases operating costs of data storage systems.
- FIG. 1 is a block diagram of a data storage system, in accordance with some embodiments.
- FIG. 2 is a flow diagram of an exemplary method of controlling power consumption in a data storage system.
- FIG. 3 is a table of a power consumption datum, in accordance with some embodiments.
- FIG. 4 is a table of an application event datum, in accordance with some embodiments.
- FIG. 5 is a time line of the generation of different power consumption datums and application event datums during a time period, in accordance with some embodiments.
- FIG. 6 is a block diagram of data storage system having the server and the power control device along with software modules that are implemented by the server and the power control device in accordance with some embodiments.
- FIG. 7 is a chart that indicates a relationship between power consumption parameters and computer frequency in accordance with some embodiments.
- FIG. 8 is a block diagram of a data storage system having the server and the power control device along with software modules that are implemented by the server and the power control device in accordance with some embodiments.
- FIG. 9 is a block diagram of a data storage system having the server and the power control device along with software modules that are implemented by the server and the power control device in accordance with some embodiments.
- FIG. 10 is a block diagram of a data storage system having the server and the power control device along with software modules that are implemented by the server and the power control device in one example of a power consumption scheme.
- first and second features are formed in direct contact
- additional features may be formed between the first and second features, such that the first and second features may not be in direct contact
- present disclosure may repeat reference numerals and/or letters in the various examples. This repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed.
- spatially relative terms such as “beneath,” “below,” “lower,” “above,” “upper” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures.
- the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures.
- the apparatus may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein may likewise be interpreted accordingly.
- FIG. 1 is a block diagram of a data storage system 100 , in accordance with some embodiments.
- Data storage system 100 includes servers 102 that are operably connected to databases 104 .
- Servers 102 are connected to a network 104 and are configured to manage the writing and storing of data 106 stored in non-transitory computer readable media 108 of the databases 104 .
- the network 104 includes a wide area network (WAN) (i.e., the internet), a wireless WAN (WWAN) (i.e., a cellular network), a local area network (LAN), and/or the like.
- WAN wide area network
- WWAN wireless WAN
- LAN local area network
- the servers 102 implement different software applications 110 .
- Software applications 110 are provided as computer executable instructions 112 that are implemented on one or more processors 114 in each of the servers 102 .
- non-transitory computer-readable media 108 , 116 include a random-access memory (RAM), a read-only memory (ROM), an electrically erasable programmable ROM (EEPROM), optical disk storage, magnetic disk storage, other magnetic storage devices, combinations of the aforementioned types of computer-readable media, or any other medium that can be used to store computer executable code in the form of instructions or data structures that can be accessed by a computer.
- RAM random-access memory
- ROM read-only memory
- EEPROM electrically erasable programmable ROM
- optical disk storage magnetic disk storage
- magnetic disk storage other magnetic storage devices
- combinations of the aforementioned types of computer-readable media or any other medium that can be used to store computer executable code in the form of instructions or data structures that can be accessed by a computer.
- the data storage system 100 includes more than one of the servers 102 and more than one of the databases 104 . Also, in FIG. 1 , each of the servers 102 is configured to manage more than one of the databases 104 . In other embodiments, the data storage system 100 includes a single server 102 and a single database 104 . In still other embodiments, the data storage system 100 includes multiple servers 102 that manage a single database 104 . In still other embodiments, multiple servers 102 are configured to manage the same subset of databases 104 . These and other configurations for the data storage system 100 are within the scope of this disclosure.
- Each of the servers 102 include a controller 118 that controls the processor frequency of the processors 114 in the servers 102 . More specifically, each of the processors 114 operates in accordance with a processor clock signal. Generally, the processor clock signal includes a periodic series of pulses that are synchronized by an internal oscillator. The processor frequency is a frequency of the pulses in the clock signal. The processors 114 perform processor operations as timed by the processor clock signal and thus the higher the processor frequency, the faster the processors 114 operate. However, the higher the processor frequency, the more power is consumed by the processors 114 .
- the data storage system 100 thus includes a power control device 120 .
- Power control device 120 is configured to manage power consumption by the servers 102 . More specifically, power control device 120 is configured to communicate with the controllers 118 in order to adjust the processor frequencies and thus control power consumption by the servers 102 . For example, amount of processor operations needed by the software applications 110 can vary depending on the time of day. Furthermore, some of the software applications 110 require a higher amount of processor operations than other software applications 110 .
- the power control device 120 implements power control software 122 that is configured to adjust the processor frequencies of the processors 114 using the controllers 118 .
- the power control software 122 adjusts the processor frequencies in accordance with the varying power consumption demands of each of the software applications 110 in the servers 102 .
- data storage system 100 is used by the employees of a corporate office.
- the software applications 110 consume a higher number of processor operations of the processors 114 than during non-work hours of a workday or during weekends.
- different days of the week often require the software applications 110 to consume a different number of processor operations than other days of the week.
- the power control software 122 is configured to adjust the processing frequencies of the processors in accordance with the processing demands needed at different times and therefore consume less power than if the processor frequencies were always set as high as possible.
- the power control device 120 implements the power control software 122 as computer executable instructions 124 executed on one or more processors 126 .
- the computer executable instructions 124 are stored on a non-transitory computer readable medium 128 .
- non-transitory computer-readable media 128 include a random-access memory (RAM), a read-only memory (ROM), an electrically erasable programmable ROM (EEPROM), optical disk storage, magnetic disk storage, other magnetic storage devices, combinations of the aforementioned types of computer-readable media, or any other medium that can be used to store computer executable code in the form of instructions or data structures that can be accessed by a computer device.
- FIG. 2 is a flow diagram 200 of an exemplary method of controlling power consumption in a data storage system.
- Flow begins at block 202 .
- one or more software applications are executed using one or more processors.
- software applications include software applications 110 in FIG. 1 that are executed using processor(s) 114 in FIG. 1 .
- each of these software applications 110 require the implementation of different types of software modules, subprograms, software actions, software instructions, calculations, algorithms, etc.
- the amount of processing power demanded by each of the different types of software modules, subprograms, software actions, software instructions, calculations, algorithms are more often used at certain time intervals and in different scenarios.
- the processing frequency of processors 114 is set precisely just high enough so that processors complete all of the task within a given time interval and no higher. Flow then proceeds to block 204 .
- empirical power consumption data that indicates power consumption by the data storage system is obtained.
- Empirical power consumption data is any data that indicates the amount of power being consumed by the data storage system that is obtained empirically. Examples of power consumption data include input power supply levels, processor power, idle time, wait time, board power levels, air system power levels, and/or the like. In some embodiments, empirical power consumption datums are measured at various temporal locations so that the variation in power consumption can be determined at different times. Flow then proceeds to block 206 .
- empirical application event data that indicates the operation performance of the one or more software applications is obtained.
- Empirical application event data is any type of data that indicates the operations and/or operational levels of the software applications and that the application data is obtained empirically.
- the empirical application event data is are application key performance indicators (KPIs) that are measured to indicate the activity being taken by the software applications 110 .
- KPIs application key performance indicators
- empirical application datums are measured at various temporal locations so that the variation in application activity can be determined at different times. Flow then proceeds to block 208 .
- the empirical power consumption data is correlated with the empirical application event data.
- operations and/or operational levels of the software applications 110 are correlated with the power consumption of the data storage system 100 .
- This correlations allow for the power control software 122 to determine how much power the data storage system 100 needs in order to appropriately perform the operations of the software application 110 .
- Flow then proceeds to block 210 .
- At block 210 at least one processor frequency of the one or more processors in the data storage system is adjusted based on the correlating of the empirical power consumption data with the empirical application event data.
- an artificial intelligence (AI) module is trained to predict what one or more processor frequency should be set to given the correlations between the application KPIs and the baremetal power telemetry data.
- the AI module predicts future application KPIs and the resulting future baremetal power telemetry data given the future application KPIs.
- the AI module is configured to output one or more future processor frequencies that provide the necessary computational processing power for the one or more processors (e.g., the processors 114 ) to implement the software applications (e.g., software applications 110 ) while the processors consume a minimum amount of power.
- the AI module is configured to generate commands that are sent to the controllers 118 in order to adjust one or more of processor frequencies.
- FIG. 3 illustrates one example of a power consumption datum 300 , in accordance with some embodiments.
- the power consumption datum 300 includes a time stamp 302 that indicates a temporal location during which the power consumption datum 300 is measured.
- the power consumption datum 300 also includes various fields that are indicative of power consumption by the data storage system 100 .
- the power consumption datum 300 includes a data field PSU1_Input power_supply that records a power level value of a power supply in one of the servers 102 .
- the power consumption datum 300 includes a data field PSU0_Input power_supply that records a power level value of another power supply in one of the servers 102 at the temporal location.
- the power consumption datum 300 includes a data field Power_BP power_supply that records a power level value of yet another power supply in one of the servers 102 at the temporal location.
- the power consumption datum 300 includes a data field Power_Memory processor that records a power level value of the power consumed by a memory processor.
- the power consumption datum 300 includes a data field Power_CPU processor that records a power level value of the power consumed by a processor in the central processing unit (CPU).
- the power consumption datum 300 includes a data field Power_FANG1 power_supply that records a power level value of the power consumed by power supply for a fan.
- the power consumption datum 300 includes a data field Power_FANG0 power_supply that records a power level value of the power consumed by power supply for another fan.
- the power consumption datum 300 includes a data field Temp_inlet processor (3.0) that records a power level value of the power consumed by an inlet processor.
- the power consumption datum 300 includes a data field Temp_Outlet system board (7.1) that records a power level value of the power consumed by an outlet processor on the system board.
- the power consumption datum 300 includes a data field CPU user that records a number of users that are utilizing the particular server 102 .
- the power consumption datum 300 includes a data field CPU-System that records the systems being implemented by the particular server 102 .
- the power consumption datum 300 includes a data field CPU wait that records a total wait time for the particular server 102 .
- the power consumption datum 300 includes a data field idle a total idle time for the particular server 102 .
- the power consumption datum 300 includes a data field Airflow chassis that records a power level value of the power consumed by a cooling system of a chassis of the particular server 102
- the power consumption datum 300 of FIG. 3 is exemplary and not intended to be limiting. Different embodiments of the power consumption datum 300 include different types of fields depending on the particular power equipment used in a server, the particular power scheme of the server, and the parameters most relevant to power consumption in a server.
- FIG. 4 illustrates one example of an application event datum 400 , in accordance with some embodiments.
- the application event datum 400 includes a time stamp 402 that indicates a temporal location during which the application event datum 400 is measured.
- the application event datum 400 also includes various fields that are indicative of operations and/or operational levels of a software application.
- the application event datum 400 includes a data field Software Action 1 that records a software action being taken by one of the software applications 110 at the temporal location.
- the application event datum 400 includes a data field Software Action 2 that records another software action being taken by the particular software applications 110 .
- the application event datum 400 includes a data field Software Algorithm that identifies a software algorithm being implemented by the software application 110 at the temporal location.
- application event datum 400 of FIG. 4 is exemplary and not intended to be limiting. Different embodiments of the application event datum 400 include different types of fields depending on the particular software application being implemented by a server, the particular power scheme of the server, and the parameters most relevant to power consumption in a server.
- FIG. 5 is a time line 500 that illustrates the generation of different power consumption datums 502 and application event datums 504 during a time period, in accordance with some embodiments.
- each of the power consumptions datums 502 is formatted in a similar manner to the power consumption datum 300 in FIG. 3 . However, each of the power consumption datums 502 is measured at a different temporal location 506 and includes different values in the fields, which were measured at the particular temporal location 506 .
- each of the application event datums 504 is formatted in a similar manner to the power consumption datum 300 in FIG. 3 . However, each of the application event datums 504 is measured at the different temporal location 506 and includes different values in the fields, which were measured at the particular temporal location 506 .
- each of the power consumptions datums 502 correspond to different servers S 1 , S 2 .
- S 1 and S 2 correspond to different ones of the servers 102 in FIG. 1 .
- Each of the application event datums 504 correspond to different software applications, SA 1 , SA 2 .
- SA 1 and SA 2 correspond to different ones of the software applications 110 in FIG. 1 .
- the time period is from 0 to 10 minutes.
- the time period has been divided into one minute time intervals 0 to 1 minutes, 1 to 2 minutes, 2 to 3 minutes, 3 to 4 minutes, 4 to 5 minutes, 5 to 6 minutes, 6 to 7 minutes, 7 to 8 minutes, 8 to 9 minutes, and 9 to 10 minutes.
- Each of these time intervals includes one of the temporal locations 506 for generating one of the power consumption datums 502 and one of the application event datums 504 .
- FIG. 5 thus visually illustrates one example of block 202 and block 204 in FIG. 2 .
- the power control software 122 obtains empirical power consumption datums 502 that indicate power consumption of the data storage system 100 at the different temporal locations 506 .
- the power control software 122 obtains empirical application event datums 504 that indicate the operational performance of the software applications SA 1 , SA 2 of the data storage system 100 at the different temporal locations 506 .
- FIG. 6 is a block diagram of data storage system 600 having the server 102 and the power control device 120 along with software modules that are implemented by the server 102 and the power control device 120 in one example of a power consumption scheme.
- the server 102 is configured to implement a power consumption data dump module 602 and an application data dump module 604 .
- the power consumption data dump module 602 is a collectD module.
- a collectD module is a daemon which collects system metrics periodically and provides mechanisms and provides algorithms to store the values.
- the power consumption data dump module 602 gathers a variety of power consumption data fields from the server 102 and transmits them to the power control software 122 in the power control device 120 .
- the application data dump module 604 is configured to gather a variety of application data fields and transmit the application data fields to the power control software 122 in the power control device 120 .
- the application data dump module 604 is provided by an observability framework (OBF).
- OBF utilizes a cloud-based infrastructure for monitoring application data fields, which include application KPIs.
- the power control software 120 includes a data enrichment module 606 , a correlation engine 608 , and an AI/Policy action manager 610 .
- the data enrichment module 606 is configured to organize the power consumption data fields into power consumption datums, such as the power consumption datum 300 in FIG. 3 and the power consumption datums 504 in FIG. 5 .
- the data enrichment module 606 is also configured to organize the application event datums, such as application event datum 400 in FIG. 4 and application event datums 502 in FIG. 5 .
- Data enrichment module 606 is configured to transmit the application event datums and the power consumption datums to the correlation engine 608 .
- the correlation engine 608 is configured to correlate the application event datums with the power consumption datums. In this manner, relationships are determined between the operations of the applications and the power parameters of the server 102 .
- the power parameters are associated into are correlated with different values of the processor frequencies of the processors 114 by the correlation engine 608 .
- these correlations are stored as data structures describing the correlations. The correlations between the application event datums, power consumption datums, and values of the processor frequencies are then passed to an AI/Policy Action Manager.
- the AI in the AI/Policy Manager is trained offline based on power consumption datums and application event datums stored from the past. Accordingly, the artificial intelligence module is trained with the correlating of the empirical power consumption datums at the different past temporal locations and with the empirical application event datums at the different past time locations. In this manner, the AI develops models that are able to predict the optimum processor frequency value with the lowest power consumption in a future time slot. The optimum processor frequency value allows for the operations of the software applications (i.e., software applications 110 in FIG. 1 ) at the lowest possible level of power consumption.
- the power consumption data dump module 602 , the application data dump module 604 , the power control software 122 , and the controller 118 are configured to provide a closed loop control system.
- the AI model cannot predict every anomaly in the behavior of the server 102 .
- the AI model cannot predict every spike in processor utilization that can trigger a closed loop action.
- any delay in the response of the closed loop system results in the loss of calibration and in turn can ruin the performance the server 102 , in some embodiments.
- power consumption datums and application event datums are also provided in real time.
- the AI develops models that are able to predict the optimum processor frequency value with the lowest power consumption in a future time slot based on both the correlations of past power consumption datums, past application event datums, real time power consumption datums and real time application event datums.
- the Policy Action Manager selects the type of action to be taken as a result. In some embodiments, the Policy Action Manager determines whether the optimum processor frequency is above certain thresholds for the software applications. If so, the Policy Action Manager sends a command to the controller 118 to adjust the processor frequency to the optimum processor frequency. If not, the Policy Action Manager sends a command to the controller 118 to adjust the processor frequency to a processor frequency closest to the optimum processor frequency while still being above the thresholds for the software applications. In some embodiments, AI/Policy Action Manager receive feedback regarding the performance of the software applications to determine whether the applications are actually operating as required. In some embodiments, the Policy Action Manager sends commands to the controller 118 to adjust the operating frequency of the processors 114 when feedback from the software applications indicates an unacceptable drop in performance.
- FIG. 7 is a chart 700 that indicates the relationship between a power consumption parameter and computer frequency.
- each processor frequency value is associated with a heat generation amount.
- the processor frequency of 3.6 GHz is associated with heat generation amount of 103 Watts.
- the processor frequency of 3.4 GHz is associated with heat generation amount of 94 Watts.
- the processor frequency of 3.26 GHz is associated with a heat generation amount of 85 Watts.
- the processor frequency of 3.0 GHz is associated with a heat generation amount of 76 Watts.
- the processor frequency of 2.8 GHz is associated with a heat generation amount of 68 Watts.
- the correlation engine 608 (See FIG. 6 ) is configured to correlate the power consumption datums with the processor frequencies. As mentioned above, the correlation engine 608 is also configured to correlate the power consumption datums and the application event datums. As a result, the processor frequencies are correlated with the application event datums. In this manner, application operations are correlated with the processor frequencies.
- the AI/Policy Manager 610 is then configured to predict an optimum processor frequency for a future time period. The AI/Policy Manger 610 then sends commands to the controller 118 to adjust the processor frequency to the optimum processor frequency.
- FIG. 8 is a block diagram of a data storage system 800 having the server 102 and the power control device 120 along with software modules that are implemented by the server 102 and the power control device 120 in one example of a power consumption scheme.
- the server 102 includes the power consumption module 602 and the application data dump module 604 , which were explained above with respect to FIG. 6 .
- the power consumption module 602 and the application data dump module 604 are implemented using a distributed event streaming platform, such as Apache Kafka®.
- the data enrichment module 606 includes a data dump module 801 and parsing logic 802 in the data enrichment module 606 .
- the data dump module 801 is configured to receive the power consumption fields and application data fields to the data dump module 801 .
- the data dump module 801 then generates a computer readable record with the power consumption fields and application data fields in a known format and provides a time stamp for the computer readable record.
- the data dump module 801 is then configured to transmit these computer readable records to the parsing logic 802 .
- the parsing logic 802 is configured to generate the empirical power consumption datums 804 and the empirical application event datums 806 from the computer readable records.
- the power consumption datums 804 are similar to the power consumption datum 300 in FIG. 3 and the power consumption datums 504 in FIG. 5 .
- the application event datums 806 are similar to the application event datum 400 in FIG. 4 and application event datums 502 in FIG. 5 .
- the parsing logic 802 then sends the empirical power consumption datums 804 and the empirical application event datums 806 to a database 803 for storage in a non-transitory computer readable medium.
- the correlation engine 608 is configured to receive the empirical power consumption datums 804 and the empirical application event datums 806 . The correlation engine 608 then correlates the empirical power consumption datums 804 and the empirical application event datums 806 . The correlation engine 608 also correlates the empirical power consumption datums 804 with processor frequency values shown in FIG. 7 . In some embodiments, the correlation engine 608 is configured to send a command to the controller 118 directly to request a step up or a step down in the processor frequency.
- the correlation engine 608 sends these correlations to the AI/Policy Action Manager 610 .
- the AI/Policy Action Manager 610 includes an AI training module 812 , an AI software development kit (SDK) model 814 , and an AI Model Interface 816 .
- the AI training module 812 is configured to operate with the AI SDK model 814 in order to train the AI SDK model 814 .
- the AI training module 812 receives the empirical power consumption datums 804 and the empirical application event datums 806 captured as historical data from past time slots.
- the correlation engine 608 feeds correlations of the empirical power consumption datums 804 and the empirical application event datums 806 captured as historical data from past time slots to the AI training module 812 .
- the AI Model Training Module 812 feeds the empirical power consumption datums 804 , the empirical application event datums 806 , and the correlations to learn how these are associated with the processor frequency values that allow for application operations to take place at a power level with a minimum amount of power consumption.
- the AI SDK model 814 develops a model that is configured to predict power consumption datums in future time slots given the operations of the software application 110 (see FIG. 1 ).
- the AI model interface 816 is then configured to receive the predicted power consumption datum and select an optimum processor frequency for the future time slot based on the predicted power consumption datum.
- AI Model Training Module 812 takes the history datums and constructs the AI SDK model 814 .
- AI Model Training Module 812 continues to train the AI SDK model 814 based on latest history data and keeps feeding new data to the AI SDK model 814 either in real time or periodically (e.g. daily, weekly), to make sure AI SDK model 814 behaves as per actual scenarios which might change over time.
- AI SDK model 814 makes prediction that also will vary in accordance with this behavior.
- the empirical power consumption datums 804 , the empirical application event datums 806 , and the correlations are also received by the AI SDK Model 814 in real-time and therefore in time-slots during operation.
- the AI SDK Model 814 is configured to predict a power consumption datum based on the empirical power consumption datums 804 , the empirical application event datums 806 along with the training already received from the historical empirical power consumption datums 804 and the historical empirical application event datums 806 .
- the AI SDK model 814 outputs the predicted power consumption datum for a future time slot to the AI Model Interface 816 .
- the AI Interface 816 is then configured to select the optimum power frequency based on the predicted power consumption datum and transmit commands to the controller to adjust the processor frequency to the optimum processor frequency during the future time slot.
- the AI Model Interface 816 also operates as a policy manager and determines whether the optimum processor frequency meet certain thresholds for the software application 110 .
- the AI Model Interface 816 transmits a command to the controller 118 that request that the processor frequency of the processor(s) 114 be changed to the optimum processor frequency. If the optimum power frequency for the future time slot does not meet the thresholds, the AI Model Interface 816 transmits a command to the controller 118 that request that the processor frequency of the processor(s) 114 be changed to the an processor frequency closest to the optimum processor frequency that still maintains the thresholds.
- these threshold define an acceptable level of an particular KPI for a given software application. For example, if vRAN application is being is being used by users in at a particular site, the latency for vRAN processing is around 4 ms. In this case, the threshold is set to 6 ms. Thus, if latency for vRAN processing increases beyond 6 ms, the increase in latency is alarming as this reflects a significant drop in performance and thus the processor frequency should be changed.
- another threshold defines a number of user connection to the site rate. If the number of user connections to site rate drops to a defined threshold (for example: drop rate threshold is 90%), this means the number of user connections or attach rate is less than 90%. In some embodiments, this is alarming and shows a degradation in performance by the vRAN application.
- a defined threshold for example: drop rate threshold is 90%
- a threshold defines a maximum amount of time for an API response for a web server application. If the API response takes more time than its defined threshold, then this indicates an alarming degradation in performance. For example, if the threshold defined for API response is 10 ms, and the API response takes longer than 10 ms, then the processor frequency should be changed to improve performance.
- Thresholds vary for each KPI and vary for the different types of software applications
- the controller 118 also transmits application data datums to the correlation engine 608 in real-time.
- the correlation engine 608 correlates these application data datums with the power consumption datums 804 .
- the AI SDK Model 813 then updates the predicted power consumption datum for the future time slot based on the real-time application data datums from the controller 118 . That way, if there is unexpected application behavior, the AI SDK Model 814 can adjust in real time.
- FIG. 9 is a block diagram of a data storage system 900 having the server 102 and the power control device 120 along with software modules that are implemented by the server 102 and the power control device 120 in one example of a power consumption scheme.
- the power consumption data dump module 602 , the application data dump module 604 , the data enrichment module 606 , and the AI/Policy Action Manager 610 are similar in FIG. 8 and in FIG. 9 .
- this embodiment has an observability framework (OBF) 902 and a correlation engine 908 .
- OBF observability framework
- the power consumption data dump module 602 , the application data dump module 604 , the data enrichment module 606 , the AI/Policy Action Manager 610 , and the correlation engine 908 operate in the same manner as the power consumption data dump module 602 , the application data dump module 604 , the data enrichment module 606 , the AI/Policy Action Manager 610 , and the correlation engine 608 described above with respect to FIG. 8 .
- the AI/Policy Action Manager 610 is turned off and the correlation engine 908 is configured to select an optimum processor frequency for a future time slot.
- the power consumption data dump module 602 and the application data dump module 604 sends power consumption data fields and application data fields to the OBF 602 .
- the OBF 602 is configured to organize the power consumption data fields into empirical power consumption datums, similar to empirical power consumption datums 804 , and organize the application data fields in empirical application event datums, similar to empiricial application event datums 806 .
- the correlation engine 908 is configured to receive the empirical power consumption datums and the empirical application event datums from the OBF 602 .
- the correlation engine 908 then correlates the empirical power consumption datums 804 and the empirical application event datums 806 .
- the correlation engine 608 also correlates the empirical power consumption datums 804 with the operational frequencies of the processor 114 .
- the correlation engine 908 is configured to output an optimum an optimum processor frequency that minimizes the amount of power consumed while being able to complete the operations of the software applications 110 (See FIG. 1 ) while maintaining the processor frequency above certain threshold for the software applications 110 .
- the correlation engine 908 transmits a command to the controller 118 that request that the processor frequency of the processor(s) 114 be changed to the optimum processor frequency.
- the correlation engine 908 also sends commands to change the processor frequency to the optimum processor frequency.
- the correlation engine 908 is configured to step up the processor frequency until the performance of the software application 110 is above the thresholds. If the performance of the software applications 110 is above certain thresholds, the correlation engine 908 is configured to step down the processor frequency to save power. In this manner, the correlation engine 908 ensures that the optimum processor frequency is selected in real time.
- FIG. 10 is a block diagram of a data storage system 900 having the server 102 and the power control device 120 along with software modules that are implemented by the server 102 and the power control device 120 in one example of a power consumption scheme.
- the power consumption data dump module 602 and the application data dump module 604 sends power consumption data fields and application data fields to the OBF 602 .
- the OBF 602 is configured to organize the power consumption data fields into empirical power consumption datums, similar to empirical power consumption datums 804 , and organize the application data fields in empirical application event datums, similar to empiricial application event datums 806 .
- the correlation engine 908 is configured to receive the empirical power consumption datums and the empirical application event datums from the OBF 602 .
- the AI/Policy Action Manager 610 operates as an AI Traffic predictor and is configured to generate future power consumption data datums and future application data datums in future time slots.
- the future power consumption datums predict power consumption in future time slots and the future application data datums predict application behavior in future time slots.
- the correlation engine 908 then correlates the empirical power consumption datums 804 , the empirical application event datums 806 , future power consumption datums, and future application data datums.
- the correlation engine 608 also correlates the empirical power consumption datums 804 and future power consumption datums with the operational frequencies of the processor 114 .
- the correlation engine 908 is configured to output an optimum an optimum processor frequency that minimizes the amount of power consumed while being able to complete the operations of the software applications 110 (See FIG. 1 ) while maintaining the processor frequency above certain threshold for the software applications 110 .
- the correlation engine 908 transmits a command to the controller 118 that request that the processor frequency of the processor(s) 114 be changed to the optimum processor frequency.
- the correlation engine 908 also sends commands to change the processor frequency to the optimum processor frequency.
- the correlation engine 908 is configured to step up the processor frequency until the performance of the software application 110 is above the thresholds. If the performance of the software applications 110 is above certain thresholds, the correlation engine 908 is configured to step down the processor frequency to save power. In this manner, the correlation engine 908 ensures that the optimum processor frequency is selected in real time.
- a method of controlling power consumption in a data storage system includes: executing one or more software applications using one or more processors in the data storage system; obtaining empirical power consumption data that indicates power consumption by the data storage system; obtaining empirical application event data that indicates an operational performance of the one or more software applications; correlating the empirical power consumption data with the empirical application event data; adjusting at least one processor frequency of the one or more processors in the data storage system based on the correlating of the empirical power consumption data with the empirical application event data.
- the obtaining the empirical power consumption data that indicates power consumption by the data storage system includes obtaining empirical power consumption datums that indicate power consumption of the data storage system at different temporal locations;
- the obtaining the empirical application event data that indicates the operational performance of the one or more software applications includes obtaining empirical application event datums that indicate the operational performance of the one or more software applications of the data storage system at the different temporal locations;
- the correlating the empirical power consumption data with the empirical application event data includes correlating the empirical power consumption datums at the different temporal locations with the empirical application event datums at the different time locations.
- the adjusting the at least one processor frequency of the one or more processors in the data storage system based on the correlating of the empirical power consumption data with the empirical application event data includes: associating the empirical power consumption datums with a set of processor frequencies; selecting a processor frequency of the set of processor frequencies having a lowest power consumption that meets thresholds for the software application; and adjusting the processor frequency of the processor to the processor frequency corresponding to an optimum processor frequency.
- the method of further includes: training an artificial intelligence module with the correlating the empirical power consumption datums at the different temporal locations with the empirical application event datums at the different time locations; implementing the artificial intelligence module to select an optimum processor frequency at one or more future temporal locations.
- the adjusting the at least one processor frequency of the one or more processors in the data storage system based on the correlating of the empirical power consumption data with the empirical application event data includes: sending a command from the policy action manager to a controller configured to control the at least one processor frequency of the one or more processors, wherein the command indicates a frequency level of the one or more processors; setting the one or more processors to the frequency level in response to the command.
- the modifying the at least one processor frequency of the one or more processors in the data storage system during the future temporal locations further includes: determining whether the frequency level is above at least one threshold level of the one or more software applications, wherein the sending the command from the policy action manager to the controller is in response to determining that the frequency level is above the at least one threshold level of the one or more software applications.
- the empirical power consumption data includes baremetal telemetry data.
- a computer device includes: a first processor; a memory device configured to store computer executable instructions, the memory device being operably associated with the first processor; wherein, when the computer executable instructions are executed by the first processor, the first processor and configured to: execute a software application using second processor in the data storage system; obtain empirical power consumption data indicating power consumption by the data storage system during the executing of the software application; obtain empirical application event data indicating an operational performance of the software application; correlate the empirical power consumption data with the empirical application event data; adjust a processor frequency of the second processor in the data storage system based on the correlation of the empirical power consumption data with the empirical application event data.
- the first processor are configured to obtain the empirical power consumption data indicating power consumption by the data storage system by obtaining empirical power consumption event datums indicating power consumption at different temporal locations of the data storage system; the first processor are configured to obtain the empirical application event data indicating the operational performance of the software application by obtaining empirical application event datums indicating the operational performance of the software application at the different temporal locations of the data storage system; and the first processor are configured to correlate the empirical power consumption data with the empirical application event data by correlating the empirical power consumption datums at the different temporal locations with corresponding empirical application event datums of the empirical application event datums at the different time locations.
- the first processor are configured to adjust the processor frequency of the second processor by: associating the empirical power consumption datums with a set of processor frequencies; selecting a processor frequency of the set of processor frequencies having a lowest power consumption that meets thresholds for the software application; and adjusting the processor frequency of the processor to the processor frequency corresponding to an optimum processor frequency.
- the first processor are further configured to: train an artificial intelligence module with the correlated empirical power consumption datums at the different temporal locations with the empirical application event datums at the different time locations; implement the artificial intelligence module to select an optimum processor frequency at a future temporal location.
- the first processor are configured to adjust the processor frequency of the second processor in the data storage system based on the correlation of the empirical power consumption data with the empirical application event data by: sending a command from the policy action manager to a controller configured to control the processor frequency of the second processor, wherein the command indicates a frequency level of the second processor; setting the second processor to the frequency level in response to the command.
- the first processor prior to the sending of the command from the policy action manager, are configured to modify the processor frequency of the second processor in the data storage system during the future temporal locations further by: determining whether the frequency level is above a threshold level of the software application, wherein the sending the command from the policy action manager to the controller is in response to a determination that the frequency level is above the threshold level of the software application.
- the empirical power consumption data comprises baremetal telemetry data.
- a computer readable product which when executed by first processor, causes the first processor to: execute a software application using the second processor in the data storage system; obtain empirical power consumption data indicating power consumption by the data storage system during the executing of the software application; obtain empirical application event data indicating an operational performance of the software application; correlate the empirical power consumption data with the empirical application event data; adjust a processor frequency of the second processor in the data storage system based on the correlation of the empirical power consumption data with the empirical application event data.
- the computer readable product causes the first processor to obtain the empirical power consumption data by obtaining empirical power consumption event datums indicating power consumption at different temporal locations of the data storage system; the computer readable product causes the first processor to obtain the empirical application event data by obtaining empirical application event datums indicating the operational performance of the software application at the different temporal locations of the data storage system; and the computer readable product causes the first processor to correlate the empirical power consumption data with the empirical application event data by correlating each of the empirical power consumption datums at the different temporal locations with corresponding empirical application event datums of the empirical application event datums at the different time locations.
- the computer readable product causes the first processor to adjust the processor frequency of the second processor by: associating the empirical power consumption datums with a set of processor frequencies; selecting a processor frequency of the set of processor frequencies having a lowest power consumption that meets thresholds for the software application; and adjusting the processor frequency of the processor to the processor frequency corresponding to an optimum processor frequency.
- the computer readable product further causes the first processor to: train an artificial intelligence module with the correlated empirical power consumption datums at the different temporal locations with the empirical application event datums at the different time locations; and implement the artificial intelligence module to select an optimum processor frequency at a future temporal location.
- the computer readable product causes adjust the processor frequency of the second processor by: sending a command from a policy action manager to a controller configured to control the processor frequency of the second processor, wherein the command indicates the frequency level of the second processor; and setting the second processor to the frequency level in response to the command.
- the computer readable product prior to the sending of the command, causes the first processor to modify the processor frequency of the second processor further by determining whether the frequency level is above a threshold level of the software application, wherein the sending the command from the policy action manager to the controller is in response to a determination that the frequency level is above a threshold level of the software application.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
Included are methods and systems for controlling power consumption in a data storage system. In some embodiments, a method includes obtaining empirical power consumption data that indicates power consumption by the data storage system and obtaining empirical application event data that indicates an operational performance of the one or more software applications. The empirical power consumption data with the empirical application event data. The at least one processor frequency of the one or more processors in the data storage system is adjusted based on the correlating of the empirical power consumption data with the empirical application event data.
Description
- Data storage systems often are large data centers with databases that store data for online accounts, online applications, and computer networks. Data storage systems are continuously looking up data and implementing software applications associated with that data. As such, these data storage systems consume enormous amounts of power. High power consumptions increases operating costs of data storage systems.
- Aspects of the present disclosure are best understood from the following detailed description when read with the accompanying figures. It is noted that, in accordance with the standard practice in the industry, various features are not drawn to scale. In fact, the dimensions of the various features may be arbitrarily increased or reduced for clarity of discussion.
-
FIG. 1 is a block diagram of a data storage system, in accordance with some embodiments. -
FIG. 2 is a flow diagram of an exemplary method of controlling power consumption in a data storage system. -
FIG. 3 is a table of a power consumption datum, in accordance with some embodiments. -
FIG. 4 is a table of an application event datum, in accordance with some embodiments. -
FIG. 5 is a time line of the generation of different power consumption datums and application event datums during a time period, in accordance with some embodiments. -
FIG. 6 is a block diagram of data storage system having the server and the power control device along with software modules that are implemented by the server and the power control device in accordance with some embodiments. -
FIG. 7 is a chart that indicates a relationship between power consumption parameters and computer frequency in accordance with some embodiments. -
FIG. 8 is a block diagram of a data storage system having the server and the power control device along with software modules that are implemented by the server and the power control device in accordance with some embodiments. -
FIG. 9 is a block diagram of a data storage system having the server and the power control device along with software modules that are implemented by the server and the power control device in accordance with some embodiments. -
FIG. 10 is a block diagram of a data storage system having the server and the power control device along with software modules that are implemented by the server and the power control device in one example of a power consumption scheme. - The following disclosure provides different embodiments, or examples, for implementing features of the provided subject matter. Specific examples of components, materials, values, steps, arrangements, or the like, are described below to simplify the present disclosure. These are, of course, merely examples and are not limiting. Other components, materials, values, steps, arrangements, or the like, are contemplated. For example, the formation of a first feature over or on a second feature in the description that follows may include embodiments in which the first and second features are formed in direct contact, and may also include embodiments in which additional features may be formed between the first and second features, such that the first and second features may not be in direct contact. In addition, the present disclosure may repeat reference numerals and/or letters in the various examples. This repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed.
- Further, spatially relative terms, such as “beneath,” “below,” “lower,” “above,” “upper” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures. The spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. The apparatus may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein may likewise be interpreted accordingly.
-
FIG. 1 is a block diagram of adata storage system 100, in accordance with some embodiments. -
Data storage system 100 includesservers 102 that are operably connected todatabases 104.Servers 102 are connected to anetwork 104 and are configured to manage the writing and storing ofdata 106 stored in non-transitory computerreadable media 108 of thedatabases 104. In some embodiments, thenetwork 104 includes a wide area network (WAN) (i.e., the internet), a wireless WAN (WWAN) (i.e., a cellular network), a local area network (LAN), and/or the like. To manage the writing and storing ofdata 106 in thedatabases 104 and to perform other functionality, theservers 102 implementdifferent software applications 110.Software applications 110 are provided ascomputer executable instructions 112 that are implemented on one ormore processors 114 in each of theservers 102. Thecomputer executable instructions 112 are stored on non-transitory computerreadable medium 116 within each of theservers 102. In some embodiments, non-transitory computer-readable media - In
FIG. 1 , thedata storage system 100 includes more than one of theservers 102 and more than one of thedatabases 104. Also, inFIG. 1 , each of theservers 102 is configured to manage more than one of thedatabases 104. In other embodiments, thedata storage system 100 includes asingle server 102 and asingle database 104. In still other embodiments, thedata storage system 100 includesmultiple servers 102 that manage asingle database 104. In still other embodiments,multiple servers 102 are configured to manage the same subset ofdatabases 104. These and other configurations for thedata storage system 100 are within the scope of this disclosure. - Each of the
servers 102 include acontroller 118 that controls the processor frequency of theprocessors 114 in theservers 102. More specifically, each of theprocessors 114 operates in accordance with a processor clock signal. Generally, the processor clock signal includes a periodic series of pulses that are synchronized by an internal oscillator. The processor frequency is a frequency of the pulses in the clock signal. Theprocessors 114 perform processor operations as timed by the processor clock signal and thus the higher the processor frequency, the faster theprocessors 114 operate. However, the higher the processor frequency, the more power is consumed by theprocessors 114. - The
data storage system 100 thus includes apower control device 120.Power control device 120 is configured to manage power consumption by theservers 102. More specifically,power control device 120 is configured to communicate with thecontrollers 118 in order to adjust the processor frequencies and thus control power consumption by theservers 102. For example, amount of processor operations needed by thesoftware applications 110 can vary depending on the time of day. Furthermore, some of thesoftware applications 110 require a higher amount of processor operations thanother software applications 110. Thepower control device 120 implementspower control software 122 that is configured to adjust the processor frequencies of theprocessors 114 using thecontrollers 118. - The
power control software 122 adjusts the processor frequencies in accordance with the varying power consumption demands of each of thesoftware applications 110 in theservers 102. For example, in some embodiments,data storage system 100 is used by the employees of a corporate office. During worktime hours of a workday, thesoftware applications 110 consume a higher number of processor operations of theprocessors 114 than during non-work hours of a workday or during weekends. Additionally, as employees are scheduled during to perform different types of tasks during the week, different days of the week often require thesoftware applications 110 to consume a different number of processor operations than other days of the week. As another example, if thedata processing system 100 is used in a consumer shopping area, a higher number of electronic transactions occur during the weekend than on workdays during work hours. Thepower control software 122 is configured to adjust the processing frequencies of the processors in accordance with the processing demands needed at different times and therefore consume less power than if the processor frequencies were always set as high as possible. - The
power control device 120 implements thepower control software 122 ascomputer executable instructions 124 executed on one ormore processors 126. Thecomputer executable instructions 124 are stored on a non-transitory computerreadable medium 128. In some embodiments, non-transitory computer-readable media 128 include a random-access memory (RAM), a read-only memory (ROM), an electrically erasable programmable ROM (EEPROM), optical disk storage, magnetic disk storage, other magnetic storage devices, combinations of the aforementioned types of computer-readable media, or any other medium that can be used to store computer executable code in the form of instructions or data structures that can be accessed by a computer device. -
FIG. 2 is a flow diagram 200 of an exemplary method of controlling power consumption in a data storage system. - For example, the method discussed in the flow diagram 200 is implemented by the
power control software 122 inpower control device 120 on thedata storage system 100. Flow begins atblock 202. - At
block 202, one or more software applications are executed using one or more processors. Examples of software applications includesoftware applications 110 inFIG. 1 that are executed using processor(s) 114 inFIG. 1 . In some embodiments, each of thesesoftware applications 110 require the implementation of different types of software modules, subprograms, software actions, software instructions, calculations, algorithms, etc. Furthermore, in some embodiments, the amount of processing power demanded by each of the different types of software modules, subprograms, software actions, software instructions, calculations, algorithms are more often used at certain time intervals and in different scenarios. Ideally, the processing frequency ofprocessors 114 is set precisely just high enough so that processors complete all of the task within a given time interval and no higher. Flow then proceeds to block 204. - At
block 204, empirical power consumption data that indicates power consumption by the data storage system is obtained. Empirical power consumption data is any data that indicates the amount of power being consumed by the data storage system that is obtained empirically. Examples of power consumption data include input power supply levels, processor power, idle time, wait time, board power levels, air system power levels, and/or the like. In some embodiments, empirical power consumption datums are measured at various temporal locations so that the variation in power consumption can be determined at different times. Flow then proceeds to block 206. - At
block 206, empirical application event data that indicates the operation performance of the one or more software applications is obtained. Empirical application event data is any type of data that indicates the operations and/or operational levels of the software applications and that the application data is obtained empirically. In some embodiments, the empirical application event data is are application key performance indicators (KPIs) that are measured to indicate the activity being taken by thesoftware applications 110. In some embodiments, empirical application datums are measured at various temporal locations so that the variation in application activity can be determined at different times. Flow then proceeds to block 208. - At
block 208, the empirical power consumption data is correlated with the empirical application event data. In this manner, operations and/or operational levels of thesoftware applications 110 are correlated with the power consumption of thedata storage system 100. This correlations allow for thepower control software 122 to determine how much power thedata storage system 100 needs in order to appropriately perform the operations of thesoftware application 110. Flow then proceeds to block 210. - At
block 210, at least one processor frequency of the one or more processors in the data storage system is adjusted based on the correlating of the empirical power consumption data with the empirical application event data. In some embodiments, an artificial intelligence (AI) module is trained to predict what one or more processor frequency should be set to given the correlations between the application KPIs and the baremetal power telemetry data. In some embodiments, the AI module predicts future application KPIs and the resulting future baremetal power telemetry data given the future application KPIs. In this manner, the AI module is configured to output one or more future processor frequencies that provide the necessary computational processing power for the one or more processors (e.g., the processors 114) to implement the software applications (e.g., software applications 110) while the processors consume a minimum amount of power. In some embodiments, the AI module is configured to generate commands that are sent to thecontrollers 118 in order to adjust one or more of processor frequencies. -
FIG. 3 illustrates one example of apower consumption datum 300, in accordance with some embodiments. - As shown, the
power consumption datum 300 includes atime stamp 302 that indicates a temporal location during which thepower consumption datum 300 is measured. Thepower consumption datum 300 also includes various fields that are indicative of power consumption by thedata storage system 100. InFIG. 3 , thepower consumption datum 300 includes a data field PSU1_Input power_supply that records a power level value of a power supply in one of theservers 102. Thepower consumption datum 300 includes a data field PSU0_Input power_supply that records a power level value of another power supply in one of theservers 102 at the temporal location. Thepower consumption datum 300 includes a data field Power_BP power_supply that records a power level value of yet another power supply in one of theservers 102 at the temporal location. Thepower consumption datum 300 includes a data field Power_Memory processor that records a power level value of the power consumed by a memory processor. Thepower consumption datum 300 includes a data field Power_CPU processor that records a power level value of the power consumed by a processor in the central processing unit (CPU). Thepower consumption datum 300 includes a data field Power_FANG1 power_supply that records a power level value of the power consumed by power supply for a fan. Thepower consumption datum 300 includes a data field Power_FANG0 power_supply that records a power level value of the power consumed by power supply for another fan. Thepower consumption datum 300 includes a data field Temp_inlet processor (3.0) that records a power level value of the power consumed by an inlet processor. Thepower consumption datum 300 includes a data field Temp_Outlet system board (7.1) that records a power level value of the power consumed by an outlet processor on the system board. Thepower consumption datum 300 includes a data field CPU user that records a number of users that are utilizing theparticular server 102. Thepower consumption datum 300 includes a data field CPU-System that records the systems being implemented by theparticular server 102. Thepower consumption datum 300 includes a data field CPU wait that records a total wait time for theparticular server 102. Thepower consumption datum 300 includes a data field idle a total idle time for theparticular server 102. Thepower consumption datum 300 includes a data field Airflow chassis that records a power level value of the power consumed by a cooling system of a chassis of theparticular server 102 - It should be noted that the
power consumption datum 300 ofFIG. 3 is exemplary and not intended to be limiting. Different embodiments of thepower consumption datum 300 include different types of fields depending on the particular power equipment used in a server, the particular power scheme of the server, and the parameters most relevant to power consumption in a server. -
FIG. 4 illustrates one example of anapplication event datum 400, in accordance with some embodiments. - As shown, the
application event datum 400 includes atime stamp 402 that indicates a temporal location during which theapplication event datum 400 is measured. Theapplication event datum 400 also includes various fields that are indicative of operations and/or operational levels of a software application. InFIG. 3 , theapplication event datum 400 includes a datafield Software Action 1 that records a software action being taken by one of thesoftware applications 110 at the temporal location. Theapplication event datum 400 includes a datafield Software Action 2 that records another software action being taken by theparticular software applications 110. Theapplication event datum 400 includes a data field Software Algorithm that identifies a software algorithm being implemented by thesoftware application 110 at the temporal location. - It should be noted that the
application event datum 400 ofFIG. 4 is exemplary and not intended to be limiting. Different embodiments of theapplication event datum 400 include different types of fields depending on the particular software application being implemented by a server, the particular power scheme of the server, and the parameters most relevant to power consumption in a server. -
FIG. 5 is atime line 500 that illustrates the generation of differentpower consumption datums 502 andapplication event datums 504 during a time period, in accordance with some embodiments. - In some embodiments, each of the power consumptions datums 502 is formatted in a similar manner to the
power consumption datum 300 inFIG. 3 . However, each of thepower consumption datums 502 is measured at a differenttemporal location 506 and includes different values in the fields, which were measured at the particulartemporal location 506. - In some embodiments, each of the
application event datums 504 is formatted in a similar manner to thepower consumption datum 300 inFIG. 3 . However, each of theapplication event datums 504 is measured at the differenttemporal location 506 and includes different values in the fields, which were measured at the particulartemporal location 506. - As shown in
FIG. 5 , each of the power consumptions datums 502 correspond to different servers S1, S2. In some embodiments, S1 and S2 correspond to different ones of theservers 102 inFIG. 1 . Each of theapplication event datums 504 correspond to different software applications, SA1, SA2. In some embodiment, SA1 and SA2 correspond to different ones of thesoftware applications 110 inFIG. 1 . - In
FIG. 5 , the time period is from 0 to 10 minutes. The time period has been divided into oneminute time intervals 0 to 1 minutes, 1 to 2 minutes, 2 to 3 minutes, 3 to 4 minutes, 4 to 5 minutes, 5 to 6 minutes, 6 to 7 minutes, 7 to 8 minutes, 8 to 9 minutes, and 9 to 10 minutes. Each of these time intervals includes one of thetemporal locations 506 for generating one of thepower consumption datums 502 and one of theapplication event datums 504. -
FIG. 5 thus visually illustrates one example ofblock 202 and block 204 inFIG. 2 . In some embodiments, thepower control software 122 obtains empiricalpower consumption datums 502 that indicate power consumption of thedata storage system 100 at the differenttemporal locations 506. In some embodiments, thepower control software 122 obtains empiricalapplication event datums 504 that indicate the operational performance of the software applications SA1, SA2 of thedata storage system 100 at the differenttemporal locations 506. -
FIG. 6 is a block diagram of data storage system 600 having theserver 102 and thepower control device 120 along with software modules that are implemented by theserver 102 and thepower control device 120 in one example of a power consumption scheme. - The
server 102 is configured to implement a power consumptiondata dump module 602 and an applicationdata dump module 604. In some embodiments, the power consumptiondata dump module 602 is a collectD module. A collectD module is a daemon which collects system metrics periodically and provides mechanisms and provides algorithms to store the values. The power consumptiondata dump module 602 gathers a variety of power consumption data fields from theserver 102 and transmits them to thepower control software 122 in thepower control device 120. - Additionally, the application
data dump module 604 is configured to gather a variety of application data fields and transmit the application data fields to thepower control software 122 in thepower control device 120. In some embodiments, the applicationdata dump module 604 is provided by an observability framework (OBF). The OBF utilizes a cloud-based infrastructure for monitoring application data fields, which include application KPIs. - In
FIG. 6 , thepower control software 120 includes adata enrichment module 606, acorrelation engine 608, and an AI/Policy action manager 610. Thedata enrichment module 606 is configured to organize the power consumption data fields into power consumption datums, such as thepower consumption datum 300 inFIG. 3 and thepower consumption datums 504 inFIG. 5 . Thedata enrichment module 606 is also configured to organize the application event datums, such asapplication event datum 400 inFIG. 4 andapplication event datums 502 inFIG. 5 . -
Data enrichment module 606 is configured to transmit the application event datums and the power consumption datums to thecorrelation engine 608. Thecorrelation engine 608 is configured to correlate the application event datums with the power consumption datums. In this manner, relationships are determined between the operations of the applications and the power parameters of theserver 102. In some embodiments, the power parameters are associated into are correlated with different values of the processor frequencies of theprocessors 114 by thecorrelation engine 608. In some embodiments, these correlations are stored as data structures describing the correlations. The correlations between the application event datums, power consumption datums, and values of the processor frequencies are then passed to an AI/Policy Action Manager. - In some embodiments, the AI in the AI/Policy Manager is trained offline based on power consumption datums and application event datums stored from the past. Accordingly, the artificial intelligence module is trained with the correlating of the empirical power consumption datums at the different past temporal locations and with the empirical application event datums at the different past time locations. In this manner, the AI develops models that are able to predict the optimum processor frequency value with the lowest power consumption in a future time slot. The optimum processor frequency value allows for the operations of the software applications (i.e.,
software applications 110 inFIG. 1 ) at the lowest possible level of power consumption. However, the power consumptiondata dump module 602, the applicationdata dump module 604, thepower control software 122, and thecontroller 118 are configured to provide a closed loop control system. Nevertheless, the AI model cannot predict every anomaly in the behavior of theserver 102. For example, the AI model cannot predict every spike in processor utilization that can trigger a closed loop action. Furthermore, any delay in the response of the closed loop system results in the loss of calibration and in turn can ruin the performance theserver 102, in some embodiments. As a result, power consumption datums and application event datums are also provided in real time. Accordingly, the AI develops models that are able to predict the optimum processor frequency value with the lowest power consumption in a future time slot based on both the correlations of past power consumption datums, past application event datums, real time power consumption datums and real time application event datums. - Once the AI predicts the optimum processor frequency, the Policy Action Manager selects the type of action to be taken as a result. In some embodiments, the Policy Action Manager determines whether the optimum processor frequency is above certain thresholds for the software applications. If so, the Policy Action Manager sends a command to the
controller 118 to adjust the processor frequency to the optimum processor frequency. If not, the Policy Action Manager sends a command to thecontroller 118 to adjust the processor frequency to a processor frequency closest to the optimum processor frequency while still being above the thresholds for the software applications. In some embodiments, AI/Policy Action Manager receive feedback regarding the performance of the software applications to determine whether the applications are actually operating as required. In some embodiments, the Policy Action Manager sends commands to thecontroller 118 to adjust the operating frequency of theprocessors 114 when feedback from the software applications indicates an unacceptable drop in performance. -
FIG. 7 is achart 700 that indicates the relationship between a power consumption parameter and computer frequency. - In
FIG. 7 , each processor frequency value is associated with a heat generation amount. The processor frequency of 3.6 GHz is associated with heat generation amount of 103 Watts. The processor frequency of 3.4 GHz is associated with heat generation amount of 94 Watts. The processor frequency of 3.26 GHz is associated with a heat generation amount of 85 Watts. The processor frequency of 3.0 GHz is associated with a heat generation amount of 76 Watts. The processor frequency of 2.8 GHz is associated with a heat generation amount of 68 Watts. - In some embodiments, the correlation engine 608 (See
FIG. 6 ) is configured to correlate the power consumption datums with the processor frequencies. As mentioned above, thecorrelation engine 608 is also configured to correlate the power consumption datums and the application event datums. As a result, the processor frequencies are correlated with the application event datums. In this manner, application operations are correlated with the processor frequencies. The AI/Policy Manager 610 is then configured to predict an optimum processor frequency for a future time period. The AI/Policy Manger 610 then sends commands to thecontroller 118 to adjust the processor frequency to the optimum processor frequency. -
FIG. 8 is a block diagram of adata storage system 800 having theserver 102 and thepower control device 120 along with software modules that are implemented by theserver 102 and thepower control device 120 in one example of a power consumption scheme. - The
server 102 includes thepower consumption module 602 and the applicationdata dump module 604, which were explained above with respect toFIG. 6 . In some embodiments, thepower consumption module 602 and the applicationdata dump module 604 are implemented using a distributed event streaming platform, such as Apache Kafka®. - Both the power consumption
data dump module 602 and the applicationdata dump module 604 send power consumption fields and application data fields to thedata enrichment module 606. InFIG. 8 , thedata enrichment module 606 includes adata dump module 801 and parsinglogic 802 in thedata enrichment module 606. Thedata dump module 801 is configured to receive the power consumption fields and application data fields to thedata dump module 801. Thedata dump module 801 then generates a computer readable record with the power consumption fields and application data fields in a known format and provides a time stamp for the computer readable record. Thedata dump module 801 is then configured to transmit these computer readable records to the parsinglogic 802. The parsinglogic 802 is configured to generate the empirical power consumption datums 804 and the empirical application event datums 806 from the computer readable records. In some embodiments, the power consumption datums 804 are similar to thepower consumption datum 300 inFIG. 3 and thepower consumption datums 504 inFIG. 5 . In some embodiments, theapplication event datums 806 are similar to theapplication event datum 400 inFIG. 4 andapplication event datums 502 inFIG. 5 . The parsinglogic 802 then sends the empirical power consumption datums 804 and the empiricalapplication event datums 806 to adatabase 803 for storage in a non-transitory computer readable medium. - The
correlation engine 608 is configured to receive the empirical power consumption datums 804 and the empiricalapplication event datums 806. Thecorrelation engine 608 then correlates the empirical power consumption datums 804 and the empiricalapplication event datums 806. Thecorrelation engine 608 also correlates the empirical power consumption datums 804 with processor frequency values shown inFIG. 7 . In some embodiments, thecorrelation engine 608 is configured to send a command to thecontroller 118 directly to request a step up or a step down in the processor frequency. - The
correlation engine 608 sends these correlations to the AI/Policy Action Manager 610. InFIG. 8 , the AI/Policy Action Manager 610 includes anAI training module 812, an AI software development kit (SDK)model 814, and anAI Model Interface 816. TheAI training module 812 is configured to operate with theAI SDK model 814 in order to train theAI SDK model 814. TheAI training module 812 receives the empirical power consumption datums 804 and the empiricalapplication event datums 806 captured as historical data from past time slots. Thecorrelation engine 608 feeds correlations of the empirical power consumption datums 804 and the empiricalapplication event datums 806 captured as historical data from past time slots to theAI training module 812. The AIModel Training Module 812 feeds the empirical power consumption datums 804, the empiricalapplication event datums 806, and the correlations to learn how these are associated with the processor frequency values that allow for application operations to take place at a power level with a minimum amount of power consumption. TheAI SDK model 814 develops a model that is configured to predict power consumption datums in future time slots given the operations of the software application 110 (seeFIG. 1 ). TheAI model interface 816 is then configured to receive the predicted power consumption datum and select an optimum processor frequency for the future time slot based on the predicted power consumption datum. - In some embodiments, AI
Model Training Module 812 takes the history datums and constructs theAI SDK model 814.AI SDK model 814 behaviour changes as the data it receives changes. AIModel Training Module 812 continues to train theAI SDK model 814 based on latest history data and keeps feeding new data to theAI SDK model 814 either in real time or periodically (e.g. daily, weekly), to make sureAI SDK model 814 behaves as per actual scenarios which might change over time. In one limiting example, during winter seasons, many employees start office late in the morning and accordingly the user mobile traffic remains closer to residential areas until later in the morning. TheAI SDK model 814 makes prediction that also will vary in accordance with this behavior. - The empirical power consumption datums 804, the empirical
application event datums 806, and the correlations are also received by theAI SDK Model 814 in real-time and therefore in time-slots during operation. TheAI SDK Model 814 is configured to predict a power consumption datum based on the empirical power consumption datums 804, the empiricalapplication event datums 806 along with the training already received from the historical empirical power consumption datums 804 and the historical empiricalapplication event datums 806. TheAI SDK model 814 outputs the predicted power consumption datum for a future time slot to theAI Model Interface 816. TheAI Interface 816 is then configured to select the optimum power frequency based on the predicted power consumption datum and transmit commands to the controller to adjust the processor frequency to the optimum processor frequency during the future time slot. - The
AI Model Interface 816 also operates as a policy manager and determines whether the optimum processor frequency meet certain thresholds for thesoftware application 110. - If so, the
AI Model Interface 816 transmits a command to thecontroller 118 that request that the processor frequency of the processor(s) 114 be changed to the optimum processor frequency. If the optimum power frequency for the future time slot does not meet the thresholds, theAI Model Interface 816 transmits a command to thecontroller 118 that request that the processor frequency of the processor(s) 114 be changed to the an processor frequency closest to the optimum processor frequency that still maintains the thresholds. - In some embodiments, these threshold define an acceptable level of an particular KPI for a given software application. For example, if vRAN application is being is being used by users in at a particular site, the latency for vRAN processing is around 4 ms. In this case, the threshold is set to 6 ms. Thus, if latency for vRAN processing increases beyond 6 ms, the increase in latency is alarming as this reflects a significant drop in performance and thus the processor frequency should be changed.
- In another non-limiting example, another threshold defines a number of user connection to the site rate. If the number of user connections to site rate drops to a defined threshold (for example: drop rate threshold is 90%), this means the number of user connections or attach rate is less than 90%. In some embodiments, this is alarming and shows a degradation in performance by the vRAN application.
- In another non-limiting example, a threshold defines a maximum amount of time for an API response for a web server application. If the API response takes more time than its defined threshold, then this indicates an alarming degradation in performance. For example, if the threshold defined for API response is 10 ms, and the API response takes longer than 10 ms, then the processor frequency should be changed to improve performance.
- Thresholds vary for each KPI and vary for the different types of software applications,
- In this embodiment, the
controller 118 also transmits application data datums to thecorrelation engine 608 in real-time. Thecorrelation engine 608 correlates these application data datums with the power consumption datums 804. The AI SDK Model 813 then updates the predicted power consumption datum for the future time slot based on the real-time application data datums from thecontroller 118. That way, if there is unexpected application behavior, theAI SDK Model 814 can adjust in real time. -
FIG. 9 is a block diagram of adata storage system 900 having theserver 102 and thepower control device 120 along with software modules that are implemented by theserver 102 and thepower control device 120 in one example of a power consumption scheme. - The power consumption
data dump module 602, the applicationdata dump module 604, thedata enrichment module 606, and the AI/Policy Action Manager 610 are similar inFIG. 8 and inFIG. 9 . However, this embodiment has an observability framework (OBF) 902 and acorrelation engine 908. - In a first mode, the power consumption
data dump module 602, the applicationdata dump module 604, thedata enrichment module 606, the AI/Policy Action Manager 610, and thecorrelation engine 908 operate in the same manner as the power consumptiondata dump module 602, the applicationdata dump module 604, thedata enrichment module 606, the AI/Policy Action Manager 610, and thecorrelation engine 608 described above with respect toFIG. 8 . - However, in a second mode, the AI/
Policy Action Manager 610 is turned off and thecorrelation engine 908 is configured to select an optimum processor frequency for a future time slot. Furthermore, the power consumptiondata dump module 602 and the applicationdata dump module 604 sends power consumption data fields and application data fields to theOBF 602. TheOBF 602 is configured to organize the power consumption data fields into empirical power consumption datums, similar to empirical power consumption datums 804, and organize the application data fields in empirical application event datums, similar to empiricialapplication event datums 806. Thecorrelation engine 908 is configured to receive the empirical power consumption datums and the empirical application event datums from theOBF 602. Thecorrelation engine 908 then correlates the empirical power consumption datums 804 and the empiricalapplication event datums 806. Thecorrelation engine 608 also correlates the empirical power consumption datums 804 with the operational frequencies of theprocessor 114. In the second mode, thecorrelation engine 908 is configured to output an optimum an optimum processor frequency that minimizes the amount of power consumed while being able to complete the operations of the software applications 110 (SeeFIG. 1 ) while maintaining the processor frequency above certain threshold for thesoftware applications 110. Thecorrelation engine 908 transmits a command to thecontroller 118 that request that the processor frequency of the processor(s) 114 be changed to the optimum processor frequency. Thecorrelation engine 908 also sends commands to change the processor frequency to the optimum processor frequency. - If the performance of the
software applications 110 is not above certain thresholds, thecorrelation engine 908 is configured to step up the processor frequency until the performance of thesoftware application 110 is above the thresholds. If the performance of thesoftware applications 110 is above certain thresholds, thecorrelation engine 908 is configured to step down the processor frequency to save power. In this manner, thecorrelation engine 908 ensures that the optimum processor frequency is selected in real time. -
FIG. 10 is a block diagram of adata storage system 900 having theserver 102 and thepower control device 120 along with software modules that are implemented by theserver 102 and thepower control device 120 in one example of a power consumption scheme. - In
FIG. 10 , the power consumptiondata dump module 602 and the applicationdata dump module 604 sends power consumption data fields and application data fields to theOBF 602. TheOBF 602 is configured to organize the power consumption data fields into empirical power consumption datums, similar to empirical power consumption datums 804, and organize the application data fields in empirical application event datums, similar to empiricialapplication event datums 806. Thecorrelation engine 908 is configured to receive the empirical power consumption datums and the empirical application event datums from theOBF 602. Furthermore, the AI/Policy Action Manager 610 operates as an AI Traffic predictor and is configured to generate future power consumption data datums and future application data datums in future time slots. The future power consumption datums predict power consumption in future time slots and the future application data datums predict application behavior in future time slots. Thecorrelation engine 908 then correlates the empirical power consumption datums 804, the empiricalapplication event datums 806, future power consumption datums, and future application data datums. Thecorrelation engine 608 also correlates the empirical power consumption datums 804 and future power consumption datums with the operational frequencies of theprocessor 114. Thecorrelation engine 908 is configured to output an optimum an optimum processor frequency that minimizes the amount of power consumed while being able to complete the operations of the software applications 110 (SeeFIG. 1 ) while maintaining the processor frequency above certain threshold for thesoftware applications 110. Thecorrelation engine 908 transmits a command to thecontroller 118 that request that the processor frequency of the processor(s) 114 be changed to the optimum processor frequency. Thecorrelation engine 908 also sends commands to change the processor frequency to the optimum processor frequency. - If the performance of the
software applications 110 is not above certain thresholds, thecorrelation engine 908 is configured to step up the processor frequency until the performance of thesoftware application 110 is above the thresholds. If the performance of thesoftware applications 110 is above certain thresholds, thecorrelation engine 908 is configured to step down the processor frequency to save power. In this manner, thecorrelation engine 908 ensures that the optimum processor frequency is selected in real time. - In some embodiments, a method of controlling power consumption in a data storage system, includes: executing one or more software applications using one or more processors in the data storage system; obtaining empirical power consumption data that indicates power consumption by the data storage system; obtaining empirical application event data that indicates an operational performance of the one or more software applications; correlating the empirical power consumption data with the empirical application event data; adjusting at least one processor frequency of the one or more processors in the data storage system based on the correlating of the empirical power consumption data with the empirical application event data. In some embodiments,: the obtaining the empirical power consumption data that indicates power consumption by the data storage system, includes obtaining empirical power consumption datums that indicate power consumption of the data storage system at different temporal locations; the obtaining the empirical application event data that indicates the operational performance of the one or more software applications includes obtaining empirical application event datums that indicate the operational performance of the one or more software applications of the data storage system at the different temporal locations; and the correlating the empirical power consumption data with the empirical application event data includes correlating the empirical power consumption datums at the different temporal locations with the empirical application event datums at the different time locations. In some embodiments, the adjusting the at least one processor frequency of the one or more processors in the data storage system based on the correlating of the empirical power consumption data with the empirical application event data includes: associating the empirical power consumption datums with a set of processor frequencies; selecting a processor frequency of the set of processor frequencies having a lowest power consumption that meets thresholds for the software application; and adjusting the processor frequency of the processor to the processor frequency corresponding to an optimum processor frequency. In some embodiments, the method of further includes: training an artificial intelligence module with the correlating the empirical power consumption datums at the different temporal locations with the empirical application event datums at the different time locations; implementing the artificial intelligence module to select an optimum processor frequency at one or more future temporal locations. In some embodiments, the adjusting the at least one processor frequency of the one or more processors in the data storage system based on the correlating of the empirical power consumption data with the empirical application event data includes: sending a command from the policy action manager to a controller configured to control the at least one processor frequency of the one or more processors, wherein the command indicates a frequency level of the one or more processors; setting the one or more processors to the frequency level in response to the command. In some embodiments, prior to the sending of the command from the policy action manager, the modifying the at least one processor frequency of the one or more processors in the data storage system during the future temporal locations further includes: determining whether the frequency level is above at least one threshold level of the one or more software applications, wherein the sending the command from the policy action manager to the controller is in response to determining that the frequency level is above the at least one threshold level of the one or more software applications. In some embodiments, the empirical power consumption data includes baremetal telemetry data.
- In some embodiments, a computer device, includes: a first processor; a memory device configured to store computer executable instructions, the memory device being operably associated with the first processor; wherein, when the computer executable instructions are executed by the first processor, the first processor and configured to: execute a software application using second processor in the data storage system; obtain empirical power consumption data indicating power consumption by the data storage system during the executing of the software application; obtain empirical application event data indicating an operational performance of the software application; correlate the empirical power consumption data with the empirical application event data; adjust a processor frequency of the second processor in the data storage system based on the correlation of the empirical power consumption data with the empirical application event data. In some embodiments, the first processor are configured to obtain the empirical power consumption data indicating power consumption by the data storage system by obtaining empirical power consumption event datums indicating power consumption at different temporal locations of the data storage system; the first processor are configured to obtain the empirical application event data indicating the operational performance of the software application by obtaining empirical application event datums indicating the operational performance of the software application at the different temporal locations of the data storage system; and the first processor are configured to correlate the empirical power consumption data with the empirical application event data by correlating the empirical power consumption datums at the different temporal locations with corresponding empirical application event datums of the empirical application event datums at the different time locations. In some embodiments, the first processor are configured to adjust the processor frequency of the second processor by: associating the empirical power consumption datums with a set of processor frequencies; selecting a processor frequency of the set of processor frequencies having a lowest power consumption that meets thresholds for the software application; and adjusting the processor frequency of the processor to the processor frequency corresponding to an optimum processor frequency. In some embodiments, the first processor are further configured to: train an artificial intelligence module with the correlated empirical power consumption datums at the different temporal locations with the empirical application event datums at the different time locations; implement the artificial intelligence module to select an optimum processor frequency at a future temporal location. In some embodiments, the first processor are configured to adjust the processor frequency of the second processor in the data storage system based on the correlation of the empirical power consumption data with the empirical application event data by: sending a command from the policy action manager to a controller configured to control the processor frequency of the second processor, wherein the command indicates a frequency level of the second processor; setting the second processor to the frequency level in response to the command. In some embodiments, prior to the sending of the command from the policy action manager, the first processor are configured to modify the processor frequency of the second processor in the data storage system during the future temporal locations further by: determining whether the frequency level is above a threshold level of the software application, wherein the sending the command from the policy action manager to the controller is in response to a determination that the frequency level is above the threshold level of the software application. In some embodiments, the empirical power consumption data comprises baremetal telemetry data.
- In some embodiments, a computer readable product, which when executed by first processor, causes the first processor to: execute a software application using the second processor in the data storage system; obtain empirical power consumption data indicating power consumption by the data storage system during the executing of the software application; obtain empirical application event data indicating an operational performance of the software application; correlate the empirical power consumption data with the empirical application event data; adjust a processor frequency of the second processor in the data storage system based on the correlation of the empirical power consumption data with the empirical application event data. In some embodiments the computer readable product causes the first processor to obtain the empirical power consumption data by obtaining empirical power consumption event datums indicating power consumption at different temporal locations of the data storage system; the computer readable product causes the first processor to obtain the empirical application event data by obtaining empirical application event datums indicating the operational performance of the software application at the different temporal locations of the data storage system; and the computer readable product causes the first processor to correlate the empirical power consumption data with the empirical application event data by correlating each of the empirical power consumption datums at the different temporal locations with corresponding empirical application event datums of the empirical application event datums at the different time locations. In some embodiments, the computer readable product causes the first processor to adjust the processor frequency of the second processor by: associating the empirical power consumption datums with a set of processor frequencies; selecting a processor frequency of the set of processor frequencies having a lowest power consumption that meets thresholds for the software application; and adjusting the processor frequency of the processor to the processor frequency corresponding to an optimum processor frequency. In some embodiments, the computer readable product further causes the first processor to: train an artificial intelligence module with the correlated empirical power consumption datums at the different temporal locations with the empirical application event datums at the different time locations; and implement the artificial intelligence module to select an optimum processor frequency at a future temporal location. In some embodiments, the computer readable product causes adjust the processor frequency of the second processor by: sending a command from a policy action manager to a controller configured to control the processor frequency of the second processor, wherein the command indicates the frequency level of the second processor; and setting the second processor to the frequency level in response to the command. In some embodiments, prior to the sending of the command, the computer readable product causes the first processor to modify the processor frequency of the second processor further by determining whether the frequency level is above a threshold level of the software application, wherein the sending the command from the policy action manager to the controller is in response to a determination that the frequency level is above a threshold level of the software application.
- The foregoing outlines features of several embodiments so that those skilled in the art may better understand the aspects of the present disclosure. Those skilled in the art should appreciate that they may readily use the present disclosure as a basis for designing or modifying other processes and structures for carrying out the same purposes and/or achieving the same advantages of the embodiments introduced herein. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the present disclosure, and that they may make various changes, substitutions, and alterations herein without departing from the spirit and scope of the present disclosure.
Claims (20)
1. A method of controlling power consumption in a data storage system, comprising:
executing a software application using a processor in the data storage system;
obtaining empirical power consumption data indicating power consumption by the data storage system during the executing of the software application;
obtaining empirical application event data indicating an operational performance of the software application;
correlating the empirical power consumption data with the empirical application event data; and
adjusting a processor frequency of the processor in the data storage system based on the correlation of the empirical power consumption data with the empirical application event data.
2. The method of claim 1 , wherein:
the obtaining the empirical power consumption data comprises obtaining empirical power consumption datums indicating power consumption of the data storage system at different temporal locations;
the obtaining the empirical application event data comprises obtaining empirical application event datums indicating the operational performance of the software application of the data storage system at the different temporal locations; and
the correlating the empirical power consumption data with the empirical application event data comprises correlating each of the empirical power consumption datums at the different temporal locations with corresponding empirical application event datums of the empirical application event datums at the different time locations.
3. The method of claim 2 , wherein the adjusting the processor frequency of the processor comprises:
associating the empirical power consumption datums with a set of processor frequencies;
selecting a processor frequency of the set of processor frequencies having a lowest power consumption that meets thresholds for the software application; and
adjusting the processor frequency of the processor to the processor frequency corresponding to an optimum processor frequency.
4. The method of claim 3 , further comprising:
training an artificial intelligence module with the correlated empirical power consumption datums at the different temporal locations with the empirical application event datums at the different time locations; and
implementing the artificial intelligence module to select an optimum processor frequency at a future temporal location.
5. The method of claim 1 , wherein the adjusting the processor frequency of the processor comprises:
sending a command from a policy action manager to a controller configured to control the processor frequency of the processor, wherein the command indicates a frequency level of the processor; and
setting the processor to the frequency level in response to the command.
6. The method of claim 5 , wherein, prior to the sending of the command, the modifying the processor frequency of the processor further comprises:
determining whether the frequency level is above a threshold level of the software application, wherein the sending the command from the policy action manager to the controller is in response to a determination that the frequency level is above the threshold level of the software application.
7. The method of claim 1 , wherein the empirical power consumption data comprises baremetal telemetry data.
8. A computer device, comprising:
a first processor;
a memory device configured to store computer executable instructions, the memory device being operably associated with the first processor;
wherein, when the computer executable instructions are executed by the first processor, the first processor and configured to:
execute a software application using second processor in the data storage system;
obtain empirical power consumption data indicating power consumption by the data storage system during the executing of the software application;
obtain empirical application event data indicating an operational performance of the software application;
correlate the empirical power consumption data with the empirical application event data;
adjust a processor frequency of the second processor in the data storage system based on the correlation of the empirical power consumption data with the empirical application event data.
9. The computer device of claim 8 , wherein:
the first processor are configured to obtain the empirical power consumption data indicating power consumption by the data storage system by obtaining empirical power consumption event datums indicating power consumption at different temporal locations of the data storage system;
the first processor are configured to obtain the empirical application event data indicating the operational performance of the software application by obtaining empirical application event datums indicating the operational performance of the software application at the different temporal locations of the data storage system; and
the first processor are configured to correlate the empirical power consumption data with the empirical application event data by correlating the empirical power consumption datums at the different temporal locations with corresponding empirical application event datums of the empirical application event datums at the different time locations.
10. The computer device of claim 9 , wherein the first processor are configured to adjust the processor frequency of the second processor by:
associating the empirical power consumption datums with a set of processor frequencies;
selecting a processor frequency of the set of processor frequencies having a lowest power consumption that meets thresholds for the software application; and
adjusting the processor frequency of the processor to the processor frequency corresponding to the first power stat.
11. The computer device of claim 10 , wherein the first processor are further configured to:
train an artificial intelligence module with the correlated empirical power consumption datums at the different temporal locations with the empirical application event datums at the different time locations;
implement the artificial intelligence module to select an optimum processor frequency at a future temporal location.
12. The computer device of claim 10 , wherein the first processor are configured to adjust the processor frequency of the second processor in the data storage system based on the correlation of the empirical power consumption data with the empirical application event data by:
sending a command from the policy action manager to a controller configured to control the processor frequency of the second processor, wherein the command indicates a frequency level of the second processor;
setting the second processor to the frequency level in response to the command.
13. The computer device of claim 12 , wherein, prior to the sending of the command from the policy action manager, the first processor are configured to modify the processor frequency of the second processor in the data storage system during the future temporal locations further by:
determining whether the frequency level is above a threshold level of the software application, wherein the sending the command from the policy action manager to the controller is in response to a determination that the frequency level is above the threshold level of the software application.
14. The computer device of claim 8 , wherein the empirical power consumption data comprises baremetal telemetry data.
15. A computer readable product, which when executed by first processor, causes the first processor to:
execute a software application using the second processor in the data storage system;
obtain empirical power consumption data indicating power consumption by the data storage system during the executing of the software application;
obtain empirical application event data indicating an operational performance of the software application;
correlate the empirical power consumption data with the empirical application event data;
adjust a processor frequency of the second processor in the data storage system based on the correlation of the empirical power consumption data with the empirical application event data.
16. The computer readable product of claim 15 , wherein:
the computer readable product causes the first processor to obtain the empirical power consumption data by obtaining empirical power consumption event datums indicating power consumption at different temporal locations of the data storage system;
the computer readable product causes the first processor to obtain the empirical application event data by obtaining empirical application event datums indicating the operational performance of the software application at the different temporal locations of the data storage system; and
the computer readable product causes the first processor to correlate the empirical power consumption data with the empirical application event data by correlating each of the empirical power consumption datums at the different temporal locations with corresponding empirical application event datums of the empirical application event datums at the different time locations.
17. The computer device of claim 16 , wherein the computer readable product causes the first processor to adjust the processor frequency of the second processor by:
associating the empirical power consumption datums with a set of processor frequencies;
selecting a processor frequency of the set of processor frequencies having a lowest power consumption that meets thresholds for the software application; and
adjusting the processor frequency of the processor to the processor frequency corresponding to the first power stat.
18. The computer device of claim 17 , wherein the computer readable product further causes the first processor to:
train an artificial intelligence module with the correlated empirical power consumption datums at the different temporal locations with the empirical application event datums at the different time locations; and
implement the artificial intelligence module to select an optimum processor frequency at a future temporal location.
19. The computer device of claim 17 , wherein the computer readable product causes adjust the processor frequency of the second processor by:
sending a command from a policy action manager to a controller configured to control the processor frequency of the second processor, wherein the command indicates the frequency level of the second processor; and
setting the second processor to the frequency level in response to the command.
20. The computer device of claim 19 , wherein, prior to the sending of the command, the computer readable product causes the first processor to modify the processor frequency of the second processor further by:
determining whether the frequency level is above a threshold level of the software application, wherein the sending the command from the policy action manager to the controller is in response to a determination that the frequency level is above the at least one threshold level of the software application.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/455,921 US20230161398A1 (en) | 2021-11-22 | 2021-11-22 | Data storage system with power consumption efficiency and methods of operating the same |
PCT/US2022/011585 WO2023091170A1 (en) | 2021-11-22 | 2022-01-07 | Data storage system with power consumption efficiency and methods of operating the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/455,921 US20230161398A1 (en) | 2021-11-22 | 2021-11-22 | Data storage system with power consumption efficiency and methods of operating the same |
Publications (1)
Publication Number | Publication Date |
---|---|
US20230161398A1 true US20230161398A1 (en) | 2023-05-25 |
Family
ID=86383694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/455,921 Abandoned US20230161398A1 (en) | 2021-11-22 | 2021-11-22 | Data storage system with power consumption efficiency and methods of operating the same |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230161398A1 (en) |
WO (1) | WO2023091170A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040268159A1 (en) * | 2003-06-30 | 2004-12-30 | Microsoft Corporation | Power profiling |
US20130024707A1 (en) * | 2011-07-19 | 2013-01-24 | Fujitsu Limited | Information processing apparatus and control method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7143203B1 (en) * | 2002-04-26 | 2006-11-28 | Advanced Micro Devices, Inc. | Storage device control responsive to operational characteristics of a system |
BR112018003296A2 (en) * | 2014-08-21 | 2018-09-25 | Wattcost Pty Ltd | device that is configured to monitor a physical resource consumption meter, method for monitoring physical behavior of a meter component, method for operating a device that is configured to monitor a physical meter, method for allowing the configuration of a monitoring device, computer-implemented method, computer-implemented method for displaying resource consumption data to users, computer-implemented method for stimulating defined attributes of resource-consumption behavior, computer-implemented method to enable monitoring of human consumption-based behavior and computer-implemented method of determining a security rating |
US20210117242A1 (en) * | 2020-10-03 | 2021-04-22 | Intel Corporation | Infrastructure processing unit |
-
2021
- 2021-11-22 US US17/455,921 patent/US20230161398A1/en not_active Abandoned
-
2022
- 2022-01-07 WO PCT/US2022/011585 patent/WO2023091170A1/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040268159A1 (en) * | 2003-06-30 | 2004-12-30 | Microsoft Corporation | Power profiling |
US20130024707A1 (en) * | 2011-07-19 | 2013-01-24 | Fujitsu Limited | Information processing apparatus and control method |
Also Published As
Publication number | Publication date |
---|---|
WO2023091170A1 (en) | 2023-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tesauro et al. | Managing power consumption and performance of computing systems using reinforcement learning | |
Zhao et al. | A reinforcement learning-based framework for the generation and evolution of adaptation rules | |
Liu et al. | A survey of event-based strategies on control and estimation | |
US10234926B2 (en) | Method and apparatus for customized energy policy based on energy demand estimation for client systems | |
KR20110128825A (en) | Energy-aware server management | |
CN105577796A (en) | Cluster power consumption control method and device | |
WO2021078951A1 (en) | System for configuring demand response for energy grid assets | |
US20220261059A1 (en) | System and Method for Automated Adaptive Operation to Achieve Optimized Power Management on Internet of Things Devices | |
CN116126052A (en) | Method, apparatus, device and storage medium for temperature control | |
Alizadeh et al. | Least laxity first scheduling of thermostatically controlled loads for regulation services | |
CN118193072A (en) | Method and device for controlling server dormancy, storage medium and electronic equipment | |
US20230161398A1 (en) | Data storage system with power consumption efficiency and methods of operating the same | |
Liu et al. | eSENSE: energy efficient stochastic sensing framework scheme for wireless sensor platforms | |
CN108241526A (en) | ADAPTIVE CONTROL based on model prediction | |
CN117891681A (en) | Storage device dynamic configuration method and system based on energy consumption prediction | |
Han et al. | A novel deep-learning-based robust data transmission period control framework in iot edge computing system | |
WO2024113906A1 (en) | Server cluster temperature adjustment method and device | |
CN109660995B (en) | AP intelligent energy-saving control method and device in WiFi system based on machine learning algorithm | |
CN115952996A (en) | Intelligent energy consumption management method and system for cloud switching platform | |
Milocco et al. | Proactive data center management using predictive approaches | |
KR20220026110A (en) | Method, appratus and system for managing energy in self-powered network | |
WO2024164759A1 (en) | Energy efficiency optimization management method and apparatus for data center | |
Scherrer et al. | Low complexity, real-time adjusted power management policy using golden section search | |
Carraro et al. | Performance and Energy Savings Trade-Off with Uncertainty-Aware Cloud Workload Forecasting | |
Tsachouridis et al. | Optimal thermal regulation of a real data centre |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: RAKUTEN MOBILE, INC. , JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ATRI, RAHUL;TAKEUCHI, KAZUSHIGE;LUTHRA, MOHIT;AND OTHERS;SIGNING DATES FROM 20210830 TO 20210929;REEL/FRAME:058476/0855 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |