Utilization-Based Dynamic Resource Reallocation Using Two Thresholds and a Time Window
By evaluating the utilization measurements of multiple thresholds, dynamically reassigning computing tasks is solved, and the problem of poor computing resource utilization in the prior art is achieved, achieving more efficient resource utilization and cost reduction.
Patent Information
- Application Number
- CN201980026779.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-04-19
- Filing Date
- 2019-04-05
- Publication Date
- 2025-07-01
- Estimated Expiration
- 2039-04-05
AI Technical Summary
The prior art is difficult to effectively analyze and utilize the utilization information of computing resources, resulting in improper allocation of computing tasks, which may lead to reduced performance, increased costs and reduced customer satisfaction.
By evaluating the utilization measurements of at least two thresholds, determine whether the utilization of computing resources is too high and dynamically reassign the computing tasks based on this information to avoid resource overload.
实现了更有效的计算资源利用率分析和决策支持,通过动态调整计算任务的分配,提高了资源的运行效率,降低了成本和延迟。
Smart Images

Figure CN111989653B_ABST
Abstract
Description
Background Art
[0001] Load balancing across multiple computing resources can be an effective way to provide increased capacity, fault tolerance, and higher operational profits. Some computing tasks may be less time-sensitive and can thus be completed using slower or less performant resources, which may also have the advantage of being more cost-effective than higher performing resources.
[0002] In addition, some computing environments, such as cloud computing environments, provide dynamic allocation of additional resources as existing resources become fully utilized. The dynamic allocation of additional resources also incurs additional costs, so these measures should not be taken unless truly needed to efficiently complete a computing task.
[0003] Measuring which resources are being utilized effectively and which have excess capacity can be challenging in some environments. For example, a utilization spike in a first computing resource may cause some implementations to inappropriately select other computing resources for a particular computing task, such as reading and / or writing to a persistent (e.g., non-transitory) storage device, processing network communications, or computing a computational result, when those tasks could be more efficiently performed by the first computing resource regardless of its current utilization. Inappropriate resource selection can be costly in terms of reduced performance, increased costs, and decreased customer satisfaction. Accordingly, there is a need for improved methods for dynamically allocating load or tasks to computing resources. Brief Description of the Drawings
[0004] In the drawings which are not necessarily to scale, the same reference numerals may describe similar components in different views. The same reference numerals with different letter suffixes may represent different instances of similar components. The drawings generally illustrate, by way of example and not limitation, the various embodiments discussed herein.
[0005] Figure 1 is a schematic diagram of a system implementing at least some of the disclosed embodiments.
[0006] Figure 2 illustrates a system that may implement at least some of the disclosed embodiments.
[0007] Figure 3 illustrates example utilization measurements that may be obtained in one or more of the disclosed embodiments.
[0008] Figure 4 illustrates example utilization measurements that may be obtained in one or more of the disclosed embodiments.
[0009] Figure 5 is a flowchart of a method for dynamically allocating computing resources.
[0010] Figure 6A block diagram of an example machine that can perform any one or more of the techniques (e.g., methods) discussed in this application is shown. Detailed Description
[0011] The following description and the drawings illustrate specific embodiments to enable those skilled in the art to practice them. Other embodiments may incorporate structural, logical, electrical, process, and other changes. Portions and features of some embodiments may be included in or substituted for those of other embodiments. The embodiments set forth in the claims cover all available equivalents of those claims.
[0012] As discussed above, measuring the utilization of computing resources can be a component of determining how to allocate specific computing tasks to resources in a resource pool. These computing tasks can include allocating file read and / or write requests to one of a pool of persistent storage devices, routing network traffic over a first or second network, or allocating the computation of a result (such as the result of an arithmetic formula) to one of a pool of computing resources.
[0013] As an example, each persistent storage device in a pool of persistent storage devices may be experiencing different utilization rates. For example, the seek time of a read / write head can limit the read / write throughput of a persistent storage device. As the number of read / write tasks assigned to the persistent storage device increases, the current throughput of the device approaches the throughput limit. In some aspects, dividing the current throughput by the throughput limit can represent the percentage utilization of the persistent storage device. The first storage device may have faster or otherwise improved read and / or write capabilities compared to a second persistent storage device. Thus, when operating under similar loads, the utilization rate of the first persistent storage device can be lower than that of the second persistent storage device.
[0014] Accordingly, these varying computing environments pose a technical problem of how best to analyze utilization information of target computing resources. Another technical problem solved by the disclosed embodiments is how to determine that a target computing resource is operating at a relatively high capacity and that it may be experiencing reduced effectiveness due to that relatively high operating capacity. The disclosed embodiments also provide support for subsequent decisions based on an analysis of this utilization information. Such decisions can include allocating at least some computing tasks to other computing resources rather than the target computing resource to at least partially reduce the utilization of the target computing resource in the medium term. This reduction in utilization can restore the target computing resource to a more efficient operation.
[0015] The disclosed embodiments also benefit from learning to offload compute loads to compute resources based on a single utilization measurement, which, as is often done in many systems, may cause technical problems due to making decisions that result in degraded overall system performance. For example, if a particular resource is experiencing an instantaneous spike in utilization at the time of measurement, this spike in utilization may cause the compute load to be moved away from the resource when the overall utilization of the resource may not be characterized by the instantaneous spike.
[0016] The disclosed embodiments address this technical problem by evaluating the utilization measurement relative to at least two thresholds, the two thresholds including a first threshold, and in some aspects, an adjusted value that is also referred to as a second threshold in some aspects. In some aspects, when the utilization exceeds the first threshold at a first time, the utilization measurement within a time window including the first time is evaluated relative to the second threshold, which may represent a lower utilization than the first threshold. The number and / or frequency of utilization measurements that exceed the second threshold may be determined during the time window. If the number and / or frequency meets one or more criteria, it may be determined that the resource is over-utilized, and then, compute loads (such as network traffic, hard disk read and / or write requests, processing tasks, or other compute tasks depending on the various embodiments) may be moved to other, less utilized resources.
[0017] Example types of utilization expected by the disclosed embodiments include network utilization, bus utilization, central processing unit (CPU) utilization, disk utilization, cache utilization, or other types of utilization. These utilizations may be in various forms. For example, utilization may be measured and / or expressed as a percentage of maximum utilization or capacity in some aspects. For example, fifty (50) percent CPU utilization indicates that the CPU has tasks to execute (as opposed to idle tasks) fifty percent of the time. Alternatively, utilization may be expressed as absolute utilization in some aspects. For example, a network may be determined to have a utilization of 50 megabits per second. The disclosed embodiments may compare utilization measurements over time to determine one or more spikes in utilization. A spike in utilization may, in some aspects, represent a utilization measurement that exceeds a threshold utilization. For example, some embodiments may define a spike in CPU utilization as any utilization that exceeds 75%. Other embodiments may define a spike in CPU utilization as any particular utilization measurement that has a previous utilization measurement and a subsequent utilization measurement that are lower than the particular utilization measurement.
[0018] The first and second thresholds discussed above may also vary with the embodiments. For example, one embodiment may define the first threshold at 75% CPU utilization and the second threshold at 50% utilization. Another embodiment may define the first threshold at 50 m / b per second and the second threshold at 40 m / b per second.
[0019] Figure 1 FIG. 4 is a schematic diagram of a system implementing at least some of the disclosed embodiments. System 100 includes an intelligent engine 102 connected to four networks 104a-c. In some embodiments, the intelligent engine 102 may be connected to two or more networks. Each of at least networks 104c-d includes network elements. Network 104c is shown to include network elements 106a-c, while network 104d is shown to include network elements 106d-f. The network elements 106a-f may include various different types of network devices, such as routers, firewalls, switches, or any network element that may impose at least some performance limitations on networks 104c or 104d.
[0020] Although each of networks 104c-d is shown to include three network elements each, those skilled in the art should understand that each of networks 104c-d may include more or fewer network elements than Figure 1 shown. Figure 1 Each of networks 104a-d shown may be one or more network types. For example, each of networks 104a-d may be an Internet Protocol (IP) network, a time-division multiplexing network, a wireless network, a public switched telephone network (PSTN), a token ring network, or any other type of network.
[0021] Each of the network elements 106a-f is configured to send utilization information to monitoring processes 108a-b. For example, network elements 106a-c are shown to be configured to send usage information to monitor 108a, while network elements 106d-f are shown to be configured to send usage information to monitor 108b. In some aspects, monitor 108a and monitor 108b may be the same monitoring process. Each of monitors 108a-b may be configured to aggregate the utilization information received from network units 106a-c and 106d-f respectively. For example, the individual measurements from network units 106a-c and 106d-f may be averaged to sum them. Alternatively, a median measurement may be determined from the individual measurements from one or more of the network elements 106a-f. The aggregated information 112a-b may be sent back to the intelligent engine 102 by monitors 108a-b respectively.
[0022] The intelligent engine 102 can determine how to route traffic received from one or more networks 104a-b based on the aggregated utilization information 112a-b received from the monitors 108a-b. For example, if the intelligent engine determines that Network #3 104c is utilized more heavily than Network #4 104d, the intelligent engine can route calls received from one or more networks 104a-b over Network #4 104d instead of Network #3 104c. In some aspects, the determination can be based on the detection of one or more spikes in the utilization on the monitored network. In some aspects, an adaptive threshold can be used to determine whether a network is being over-utilized to support additional traffic. For example, in some aspects, a first utilization can be detected to exceed a first utilization threshold. In these aspects, the utilization around this first detected utilization can then be examined to determine whether the utilization of the network exceeds a second utilization threshold over a period of time, or how many times the utilization exceeds the second utilization threshold. Based on this analysis, in some aspects, the intelligent engine 102 can determine whether the monitored network (e.g., 104c or 104d) can accept additional traffic or whether the traffic should be routed to an alternate network.
[0023] Once the intelligent engine 102 has determined the utilization of one or more networks 104c and / or 104d, the intelligent engine can route network traffic, such as established call traffic or call request messages, over the third network 104c or the fourth network 104d. To effectuate the routing, in some aspects, the intelligent engine 102 can send a signal 108a to the multiplexer 110 to complete the routing decision. The signal 108a can indicate how to route the data 108b. For example, the signal 108a can indicate whether the data 108b is to be routed over the third network 104c or the fourth network 104d. In some aspects, the signal 108a can be the gateway address of the selected network. In some other aspects, the routing can be accomplished by mapping the hostname of the destination to the default gateway that identifies the network identified.
[0024] Figure 2 Another system 200 is shown that can implement at least some of the disclosed embodiments. Figure 2System 200 includes intelligent engine 202. Intelligent engine 202 receives disk write requests 203a-b from application programs 204a-b respectively. System 200 also includes at least two stable storage resources 206a-b. Stable storage resources 206a-b may include one or more stable storage devices. Usage rate data 208a-b of stable storage resources 206a-b can be provided to monitors 210a-b respectively. Usage rate data 208a-b can represent the utilization rate of stable storage resources 206a-b respectively. For example, usage rate data 208a-b can represent the input / output (I / O) bus utilization rate of stable storage resources 206a-b in some aspects. The utilization rate of controller 218 can be determined in some aspects. In some other aspects, the usage rate can represent the disk arm movement utilization rate of stable storage resources 206a-b. In some aspects, the buffer capacity of computing resources can be part of the utilization rate feature. For example, if there is no idle buffer available for computing resources, it can be considered 100% utilized in some aspects.
[0025] Monitors 210a-b can summarize and / or quantify utilization rate measurements 208a-b respectively, and provide the obtained measurements 214a-b to intelligent engine 202. Then, intelligent engine 202 can determine where to allocate disk write requests 203a-b based on the obtained measurements 214a-b.
[0026] Then, intelligent engine 202 can send the data from write requests 203a-b to hard disk controller 218 or multiplexer as data 216a-b respectively. Intelligent engine 202 can also send control signal 216b to hard disk controller 218. Control signal 216b can indicate to hard disk controller 218 how to route data 216a. In other words, control signal 216b can indicate whether disk controller 218 should route data 216 to stable storage resource 206a via data path 220a or to stable storage resource 206b via data path 220b.
[0027] Figure 3 Illustrate exemplary utilization rate measurements that can be recorded by one or more disclosed embodiments. Figure 3 Illustrate a network (such as Figure 1Utilization measurement line 306 for any of the first through fourth networks 104a - d) over time. The utilization measurement 306 consists of discrete utilization measurements 305. The utilization measurement 306 can be collected periodically in some aspects. The period of this utilization measurement can vary according to the embodiment. For example, in some aspects, the period can be 0.1 second, 0.2 second, 0.3 second, 0.4 second, 0.5 second, 0.6 second, 0.7 second, 0.8 second, 0.9 second, 1 second, two seconds, or any one of any period. In some aspects, each individual measurement 306 can sum one or more finer - grained utilization measurements during the measurement period between two individual measurements 306. Figure 3 Also shown are a first utilization threshold 310a and a second utilization threshold 310b. The first utilization threshold 310a represents a higher level of utilization than the second utilization threshold 310b. In some aspects, the first utilization threshold 310a and the second utilization threshold 310b can be a single threshold having two values represented by the shown first and second utilization thresholds 310a - b.
[0028] Figure 3 Shown are utilization measurements 305 that can fall above, between, or below these two utilization thresholds 310a - b. Some aspects of the present disclosure can determine whether the resource is available for additional work based on the utilization of computing resources and the relationship of that utilization to the first and second thresholds 310a - b over a period of time (represented as a time period 320 starting at time T1 and ending at time T2). For example, in some aspects, the disclosed aspects can detect when the utilization 306 exceeds the first threshold 310a. This portion of the utilization is shown as utilization 340. The spike that occurs at the utilization 340 occurs at time T3 in the time window 320. In some aspects, the time window can be defined to include the time at which the spike occurs at the utilization 340. For example, the time window 320 can start when the spike at the utilization 340 is detected, end when the spike is detected, or be placed such that the spike is at the mid - point of the time window 320. Figure 3 In response to the utilization exceeding the first threshold 310a, then some disclosed embodiments can monitor the utilization 305 over a period of time (represented as the time period 320). These embodiments can count the number of times the utilization exceeds the second threshold 310b. Instances where the utilization 306 exceeds the second threshold 310b during the time period 320 are
[0029] shown. Figure 3are shown as examples 350a-c. In the illustrated embodiment, the utilization rate 306 exceeds the second threshold 310b three (3) times during the time period 320, but one of ordinary skill in the art should understand that this number can be any number as the utilization rate 306 fluctuates in response to the load on the monitored resource.
[0030] Figure 4 Example utilization measurements that can be obtained in one or more of the disclosed embodiments are shown. Figure 4 Individual utilization measurements 405 that define the utilization rate curve 406 are shown. Although Figure 3 the utilization measurement 305 defines a single spike above the first threshold 310a, Figure 4 multiple spikes 440a-e above the first utilization threshold 410a are shown. In some aspects, the utilization thresholds 310a and 410a can be equal. How to treat the multiple spikes 440a-e above the first utilization threshold 410a can vary according to the embodiment. For example, in some aspects, a spike such as spike 440c can define a time window 420a that has a start time of t4 and an end time of t5, and spike 440 appears at time t6, which is within the time window 420a. In some aspects, other spikes that do not include spike 440c can be treated as second spikes above the second threshold 410b. For example, in some aspects, each measurement 405 within the time window 420a that is above the second threshold 410b can be treated as a second spike. Thus, Figure 4 thirteen (13) such measurements within the time window 402a are shown. In some other aspects, only the spikes themselves are counted. In some aspects, a spike can be defined as a first measurement that is surrounded on each side by a second measurement that continuously represents a lower utilization rate than the first measurement. Thus, in these aspects, spikes 440a-b and 440d can be considered second spikes within the time window 420a. Since spike 450a is also within the time window 420a, spike 450a can also be considered a second spike in some aspects, and spike 450a is also above the second threshold 410b.
[0031] As discussed above, spikes 440a-b and 440d-e above the first threshold 410a can be treated as spikes above the second threshold 410b within the time window defined by one of the other spikes (e.g., 440c). In some of these aspects, each of spikes 440a-b and 440d-e can also define its own time window. Thus, in some aspects, spikes 440a-e can define five (5) different time windows. Figure 4 A portion of these other time windows is shown as time window 420b, which can be defined by spike 440e. For Figure 4For each time window 420a-b, the disclosed embodiments may track a number of spikes above a second threshold 410b. These spikes may also be above a first threshold 410a, but may exclude the spikes that define the time window, such as spike 450e of time window 420b and spike 450c of time window 420a. The disclosed embodiments may dynamically allocate resources based on the spikes within any single time window. Thus, for example, time window 420a may include spikes that do not result in any particular dynamic reallocation of computing resources, while time window 420b may include spikes that meet the criteria and thus cause a dynamic reallocation of computing resources in some respects. The disclosed embodiments may dynamically reallocate resources, where the resources may be reallocated based on runtime measurements of the computing resources.
[0032] Figure 5 is a flowchart of a method for dynamically allocating computing resources. In some aspects, the processing 500 discussed below with respect to Figure 5 may be performed by the intelligent engines 201 or 202 discussed above with respect to Figure 1 and 2 respectively. In some aspects, the processing 500 may be performed by an electronic processing circuit such as one or more hardware processors, such as those discussed below with respect to Figure 6 respectively.
[0033] In block 510, spikes in the utilization of computing resources are detected and determined. In some aspects, a utilization spike may be detected when the utilization measurement of the computing resources meets a criterion, such as exceeding a threshold. In some aspects, a utilization spike may be detected when the utilization is determined to exceed the threshold for a period of time, or when a certain number of consecutive (in time) utilization measurements exceed the threshold. Examples of the operation of block 510 in some embodiments are provided above in Figure 3 . For example, Figure 3 shows a utilization 306 that exceeds a threshold 310a. This provides a detection of a utilization spike 340.
[0034] In block 520, the threshold is adjusted based on the detection or determination of a spike in the utilization in block 510. In some aspects, the threshold may be decreased in block 520. For example, given that the threshold referenced in block 510 may represent a first level of utilization, the adjusted threshold may represent a lower level of utilization. Examples of block 520 are demonstrated above in at least Figure 3 . For example, in some aspects of block 520, the threshold may be adjusted from the value represented by threshold 310a to the value represented by threshold 310b.
[0035] In some aspects, the thresholds 310a and 310 can be determined or defined statically. In some aspects, the threshold can be determined dynamically. For example, in some aspects, a moving average utilization of computing resources can be determined. Then, the first threshold of block 510 can be based on a percentage value of the above-mentioned moving average. Then the threshold can be adjusted to a second percentage higher than the moving average value. In some aspects, the percentage value used to determine the threshold of block 510 can be a percentage of the moving average that is greater than the adjusted threshold. In some other aspects, the threshold can be determined based on a number of standard deviations of the average moving utilization of the computing resources. The moving average in these embodiments can be the average usage rate during a previous time period. For example, the time period can be any one of the previous 0.1 second, 0.2 seconds, 0.3 seconds, 0.4 seconds, 0.5 seconds, 0.6 seconds, 0.7 seconds, 0.8 seconds, 0.9 seconds, 1 second, 1.5 seconds, 2 seconds, 2.5 seconds, 3 seconds, 3.5 seconds, 4 seconds, 4.5 seconds, 5 seconds, 10 seconds or between any of the example time periods provided here, any value greater than or less than the time period.
[0036] In block 530, one or more second utilization spikes are detected or determined. The second utilization spike is detected during a defined time period or window. The time period can be defined to include the spike detected in block 530. In other words, the processing procedure 500 can check the utilization around the utilization spike of block 510 during a time period. In some aspects, the time when a spike is detected in block 510 can define the start time of the time window. In some other aspects, the time when a spike is detected in block 510 can define the end time of the time window. In some other aspects, the time when a spike is detected in block 510 can define the midpoint of the time window.
[0037] Block 530 can detect a second spike in the utilization that exceeds the adjusted threshold or is different from the threshold used in block 510. The criteria for constituting the second "spike" in the utilization can vary according to the embodiments. Some embodiments can detect a second spike when any one utilization measurement during the time period exceeds the adjusted or second threshold (e.g., 310b). Other embodiments can detect a second spike after a defined number of utilization measurements during the time period exceed the adjusted or second threshold. For example, some embodiments can detect a second spike when two, three, four, five, six, seven, eight, nine or ten consecutive utilization measurements exceed the adjusted or second threshold. Block 530 can also count or determine the number of second spikes that occur during the time window. In some aspects, block 530 can determine the frequency of the second spikes during the time window. For example, in some aspects, block 530 can divide the number of second spikes that occur during the time window by the length of the time window to determine the frequency.
[0038] The length of the time window can vary according to the embodiments. In some aspects, the length of the time window can be based on the speed of the link on which utilization is measured. For example, in some aspects, the length of the time window can be proportional to the speed. For example, a link speed of x bits per second can have a time window length of Y, and a link speed of x + n can have a time window length of Y + m, where X, Y, m, and n are constants. In some other aspects, the ratio of link speed / time window length can remain constant. Thus, as the link speed increases, the length of the time window is increased to maintain a constant ratio. In some aspects, the time window can be inversely proportional to the link speed.
[0039] In block 550, in response to one or more second utilization spikes (detected in block 530) meeting the criteria, computing resources are dynamically reallocated. For example, as discussed above, the criteria can evaluate whether the number of second spikes detected in block 530 exceeds a defined number. In these aspects, if the number of second spikes exceeds the defined number, the load can be moved away from the computing resource. For example, the load can be assigned to a second computing resource. In some aspects, the computing resource can be an input / output bus, a stable storage device, or a network (such as a telephone network). In some aspects, the computing resource can be a core of a multi-core hardware processor. In these aspects, the decision on how to route processing tasks to which core of a multi-core hardware processor can be based on the techniques of the present disclosure.
[0040] As discussed above with respect to Figure 1 Dynamic resource allocation can include routing traffic on a first network (e.g., 104c) rather than a second network (e.g., 104d). For example, the load can be routed on a network with lower or more stable utilization and / or jitter rather than a network with higher utilization and / or jitter. In some aspects, established call traffic can be rerouted based on an analysis of the utilization of the network. For example, in some aspects, process 500 can include determining the number of times the utilization of the first network exceeds an adjusted or second threshold (e.g., 310b or 410b) based on the second utilization spikes detected in block 530, and rerouting established call traffic from the first network to the second network based on the utilization exceeding the second threshold for a defined percentage of time within the window.
[0041] With respect to Figure 2, Dynamically allocating resources can include routing a persistent storage write request (such as 203a or 203b) or a file operation to a first persistent storage device (such as 206a) or a second persistent storage device (such as 206b). For example, a disk write request or other file-based operation can be routed to a persistent storage device that is not as heavily utilized as another persistent storage device, reducing the latency of write requests and / or file operations and load balancing the persistent storage devices in some aspects.
[0042] In some aspects, dynamically allocating resources can include initiating a diagnosis on a network with a determined utilization profile in response to a utilization measurement meeting a first criterion. For example, in some aspects, the diagnostic mode in one or more network elements 106a-f can be modified by the intelligent engine 102 and / or monitors 108a and / or 108b in response to a utilization measurement meeting a first criterion. For example, when the utilization meets the first criterion, the level of detail of the diagnosis can be increased to provide a higher level of detail about the operation of one or more network elements 106a-f. Then, in some aspects, the data indicating the higher level of detail can be analyzed to determine the cause of the utilization.
[0043] In some aspects, a second utilization spike can meet the criterion when the frequency of the second utilization spike during a time window exceeds a defined frequency threshold. As discussed above, the number of the frequency threshold and / or the second spike threshold can be dynamically adjusted based on the speed of the link or the capacity of the computing resources. In some aspects, block 550 can evaluate the second utilization spike according to multiple criteria, such as both the number of spikes relative to the number of spike thresholds and the frequency of spikes relative to the frequency threshold.
[0044] In some aspects, after the time window has been completed or has passed, the adjusted threshold can be restored to its previous value, such as the value in block 510. In some aspects, two thresholds (one in block 510 and a different threshold in block 530) can also be used, so restoring the threshold may not be necessary. For example, in these aspects, block 520 may not be performed because using two different thresholds does not require automatic threshold adjustment. Instead, the operation of block 520 can be accomplished by applying the second threshold in block 530 rather than the threshold used in block 510.
[0045] Figure 6A block diagram showing an example machine 600 on which any one or more of the technologies (e.g., methods) discussed in this application can be executed. In alternative embodiments, machine 600 can operate as a stand-alone device or can be connected (e.g., networked) to other machines. In a networked deployment, machine 600 can operate as a server machine, a client machine, or in a server-client network environment that is both at the same time. In one example, machine 600 can operate as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment. Machine 600 can be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), mobile phone, smartphone, network appliance, network router, switch or bridge, server computer, database, conference room equipment, or any machine capable of executing instructions (sequentially or otherwise) specifying actions to be taken by that machine. Machine 600 can fully or partially implement any one or more of intelligent engine 102, intelligent engine 202, multiplexer 110, hard disk controller 218. In various embodiments, machine 600 can execute one or more of the processes described above with respect to Figure 5 One or more of the processes described. Additionally, although only a single machine is shown, the term "machine" should also be understood to include any collection of machines that, individually or jointly, execute a set (or multiple sets) of instructions to perform any one or more of the methods discussed in this application, such as cloud computing, software as a service (SaaS), other computer cluster configurations.
[0046] As described in this application, an example can include logic or several components, modules, or mechanisms (collectively referred to hereinafter as "modules"), or run thereon. A module is a tangible entity (e.g., hardware) that is capable of performing specified operations and can be configured or arranged in a certain way. In one example, a circuit can be arranged in a specified way as a module (e.g., internally or with respect to an external entity such as other circuits). In one example, all or part of one or more computer systems (e.g., a stand-alone, client, or server computer system) or one or more hardware processors can be configured by firmware or software (e.g., instructions, an application portion, or an application) to run a module for performing specified operations. In one example, the software can reside on a machine-readable medium. In one example, when the software is executed by the underlying hardware of the module, it causes the hardware to perform the specified operations.
[0047] Accordingly, the term "module" is understood to include a tangible entity, one that is physically constructed, specifically configured (e.g., hardwired) or temporarily (e.g., transiently) configured (e.g., programmed) to operate in a specified manner or to perform some or all of the operations described herein. Considering an example where a module is temporarily configured, not every module needs to be instantiated at any given moment. For instance, in the case where a module includes a general hardware processor configured with software, the general hardware processor can be configured to be the respective different modules at different times. The software can configure the hardware processor accordingly, e.g., to constitute a particular module at one instance in time and a different module at a different instance in time.
[0048] A machine (e.g., a computer system) 600 can include a hardware processor 602 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory 604, and a static memory 606, some or all of which may communicate with each other via a link (e.g., a bus) 608. The machine 600 may also include a display unit 610, an alphanumeric input device 612 (e.g., a keyboard), and a user interface (UI) navigation device 614 (e.g., a mouse). In one example, the display unit 610, the input device 612, and the UI navigation device 614 may be a touch screen display. The machine 600 may additionally include a storage device (e.g., a drive unit) 616, a signal generation device 618 (e.g., a speaker), a network interface device 620, and one or more sensors 621, such as a global positioning system (GPS) sensor, a compass, an accelerometer, or other sensors. The machine 600 may include an output controller 628, such as a serial (e.g., universal serial bus (USB)), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection, to communicate with or control one or more peripheral devices (e.g., a printer, a card reader, etc.).
[0049] The storage device 616 may include a machine-readable medium 622 having stored thereon a set or sets of data structures or instructions 624 (e.g., software) that are instantiated or utilized by one or more of the techniques or functions described herein. The instructions 624 may also reside, completely or at least partially, in the main memory 604, the static memory 606, or in the hardware processor 602 during execution by the machine 600. In one example, one or any combination of the hardware processor 602, the main memory 604, the static memory 606, or the storage device 616 may constitute a machine-readable medium.
[0050] Although the machine-readable medium 622 is shown as a single medium, the term "machine-readable medium" can include a single medium or multiple media (e.g., a centralized or distributed database, and / or associated caches and servers) configured to store one or more instructions 624.
[0051] The term "machine-readable medium" can include any medium that is capable of storing, encoding, or carrying instructions for execution by the machine 600 and that cause the machine 600 to perform any one or more of the techniques of the present disclosure, or any medium that is capable of storing, encoding, or carrying a data structure used by or associated with such instructions. Non-limiting examples of machine-readable media can include solid-state memories, and optical and magnetic media. Specific examples of machine-readable media can include: non-volatile memories such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)), and flash memory devices; magnetic disks such as internal hard disks and removable hard disks; magneto-optical disks; random access memory (RAM); solid state drives (SSD); and CD-ROM and DVD-ROM disks. In some examples, the machine-readable medium can include a permanent computer-readable medium. In some examples, the machine-readable medium can include a machine-readable medium that is not a transitory propagated signal.
[0052] The instructions 624 can also be sent or received over the communication network 626 using a transmission medium via the network interface device 620. The machine 600 can communicate with one or more other machines using any one of a variety of transmission protocols (e.g., frame relay, Internet protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), etc.). Exemplary communication networks can include local area networks (LANs), wide area networks (WANs), packet data networks (e.g., the Internet), mobile telephone networks (e.g., cellular networks), plain old telephone (POTS) networks, and wireless data networks (e.g., the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard family, known as the IEEE 802.16 standard family), the IEEE 802.15.4 standard family, the Long-Term Evolution (LTE) standard family, the Universal Mobile Telecommunications System (UMTS) standard family, the peer-to-peer (P2P) network, and so on. In one example, the network interface device 820 may include one or more physical jacks (e.g., Ethernet, coaxial cable, or phone jacks) or one or more antennas to connect to the communication network 626. In one example, the network interface device 620 may include multiple antennas to perform wireless communication using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) techniques. In some examples, the network interface device 620 may perform wireless communication using multi-user MIMO techniques.
[0053] Examples as described in this application may include logic or several components, modules, or mechanisms (collectively referred to as "modules" hereinafter), or run thereon. A module is a tangible entity (e.g., hardware) that can perform specified operations and can be configured or arranged in a certain way. In one example, a circuit can be arranged as a module in a specified manner (e.g., internally or with respect to an external entity such as other circuits). In one example, all or part of one or more computer systems (e.g., a stand-alone, client, or server computer system) or one or more hardware processors can be configured by firmware or software (e.g., instructions, an application part, or an application) to run a module for performing specified operations. In one example, the software can reside on a machine-readable medium. In one example, when the software is executed by the underlying hardware of the module, it causes the hardware to perform the specified operations.
[0054] Example 1 is a system that includes processing circuitry; an electronic hardware memory storing instructions that, when executed by the processing circuitry, control the system to perform the following operations, including: determining at a first time that a utilization measurement of computing resources exceeds a utilization threshold; automatically adjusting the utilization threshold based on the determination; determining, during a time window, one or more second utilization measurements of the computing resources that exceed the adjusted utilization threshold; and dynamically reallocating resources in response to the determined one or more second utilization measurements meeting a first criterion.
[0055] In Example 2, the subject matter of Example 1 optionally includes, wherein dynamically reallocating resources includes directing a file operation to a first stable storage device in response to determining that one or more of the second utilization measurements exceed the first criterion, and otherwise directing the file operation to a second stable storage.
[0056] In Example 3, the subject matter of any one or more of Examples 1-2 optionally includes an operation that further includes determining that a first criterion is met if the number of second utilization measurements within the time window is higher than a predetermined number.
[0057] In Example 4, the subject matter of Example 3 optionally includes an operation that further includes determining that a first criterion is met if the frequency of second utilization measurements within the time window is higher than a predetermined frequency threshold.
[0058] In Example 5, the subject matter of any one or more of Examples 1-4 optionally includes that an adjustment of the utilization threshold reduces the network utilization represented by the utilization threshold.
[0059] In Example 6, the subject matter of any one or more of Examples 1-5 optionally includes an operation that further includes restoring the utilization threshold after the time window.
[0060] In Example 7, the subject matter of any one or more of Examples 1-6 optionally includes determining that the time window includes the first time.
[0061] In Example 8, the subject matter of Example 7 optionally includes an operation that further includes determining the time window such that the first time is the midpoint of the time window.
[0062] In Example 9, the subject matter of any one or more of Examples 1-8 optionally includes that dynamically reallocating resources includes routing network data on a first network in response to one or more determined second utilization measurements meeting the first criterion, and otherwise routing the network data on a second network.
[0063] In Example 10, the subject matter of Example 9 optionally includes that the first network is an Internet Protocol (IP) network and the second network is a time-division multiplexing network or a wireless network.
[0064] In Example 11, the subject matter of any one or more of Examples 9-10 optionally includes that dynamically reallocating resources by routing network data includes transmitting the network data and an indication of whether the network data is routed on the first network or the second network to a multiplexer.
[0065] In Example 12, the subject matter of any one or more of Examples 9-11 optionally includes an operation that further includes initiating a diagnosis on the first network in response to a determined utilization measurement meeting the first criterion.
[0066] In Example 13, the subject matter of any one or more of Examples 9 - 12 optionally includes an operation that also includes determining that a second utilization measurement meets a first criterion when the second utilization measurement indicates that the utilization of the first network exceeds the adjusted utilization threshold for a predetermined period of time.
[0067] In Example 14, the subject matter of any one or more of Examples 9 - 13 optionally includes an operation that also includes rerouting an established call service from the first network to the second network in response to the one or more second utilization measurements meeting the first criterion.
[0068] In Example 15, the subject matter of Example 14 optionally includes an operation that also includes determining an amount of time during which the utilization of the first network exceeds the adjusted threshold within the time window based on the second utilization measurement, and rerouting an established call service from the first network to the second network based on the utilization exceeding a second threshold for a predetermined percentage of time within the time window.
[0069] Example 16 is a method for dynamically allocating computing resources, including determining, via a processing circuit, at a first time that a utilization measurement of computing resources exceeds a utilization threshold; automatically adjusting the utilization threshold based on the determination; determining, during a time window, one or more second utilization measurements of the computing resources that exceed the adjusted utilization threshold; and dynamically reallocating resources in response to the determined one or more second utilization measurements meeting a first criterion.
[0070] In Example 17, the subject matter of Example 16 optionally includes determining that the first criterion is met if the number of second utilization measurements within the time window is higher than a predetermined number.
[0071] In Example 18, the subject matter of any one or more of Examples 16 - 17 optionally includes that the adjustment of the utilization threshold reduces the network utilization represented by the utilization threshold.
[0072] In Example 19, the subject matter of any one or more of Examples 17 - 18 optionally includes determining that the first criterion is met if the frequency of the second utilization measurements within the time window is higher than a predetermined frequency threshold.
[0073] In Example 20, the subject matter of any one or more of Examples 16 - 19 optionally includes restoring the utilization threshold after the time window.
[0074] In Example 21, the subject matter of any one or more of Examples 16 - 20 optionally includes determining that the time window includes the first time.
[0075] In Example 22, the subject matter of Example 21 optionally includes determining the time window such that the first time is the midpoint of the time window.
[0076] In Example 23, the subject matter of any one or more of Examples 16 - 22 optionally includes, wherein dynamically reallocating resources includes routing network data on a first network in response to one or more determined second utilization measurements meeting a first criterion, and otherwise routing the network data on a second network.
[0077] In Example 24, the subject matter of Example 23 optionally includes rerouting an established call service from the first network to the second network in response to the one or more second utilization measurements meeting the first criterion.
[0078] In Example 25, the subject matter of Example 24 optionally includes determining the amount of time that the utilization of the first network exceeds an adjusted threshold within the time window based on the second utilization measurement, and rerouting an established call service from the first network to the second network based on the utilization exceeding a second threshold for a predetermined percentage of the time within the time window.
[0079] In Example 26, the subject matter of any one or more of Examples 23 - 25 optionally includes, wherein the first network is an Internet Protocol (IP) network and the second network is a time - division multiplexing network or a wireless network.
[0080] In Example 27, the subject matter of any one or more of Examples 23 - 26 optionally includes, wherein dynamically reallocating resources by routing network data includes transmitting the network data and an indication of whether the network data is routed on the first network or the second network to a multiplexer.
[0081] In Example 28, the subject matter of any one or more of Examples 23 - 27 optionally includes initiating a diagnosis on the first network in response to a determined utilization measurement meeting the first criterion.
[0082] In Example 29, the subject matter of any one or more of Examples 23 - 28 optionally includes determining that the second utilization measurement meets the first criterion when the second utilization measurement indicates that the utilization of the first network exceeds the adjusted utilization threshold for a predetermined period of time.
[0083] In Example 30, the subject matter of any one or more of Examples 16 - 29 optionally includes, wherein dynamically reallocating resources includes directing a file operation to a first stable storage device in response to one or more determined second utilization measurements exceeding a first criterion, and otherwise directing the file operation to a second stable storage.
[0084] Example 31 is a non-transitory computer-readable storage medium including instructions that, when executed, cause a processing circuit to perform operations to dynamically allocate computing resources, the operations including determining, via the processing circuit at a first time, that a utilization measurement of the computing resources exceeds a utilization threshold; automatically adjusting the utilization threshold based on the determination; determining, during a time window, one or more second utilization measurements of the computing resources that exceed the adjusted utilization threshold; and dynamically reallocating resources in response to the determined one or more second utilization measurements meeting a first criterion.
[0085] In example 32, the subject matter of example 31 optionally includes, wherein dynamically reallocating resources includes routing network data on a first network in response to determining that the one or more second utilization measurements meet the first criterion, and otherwise routing the network data on a second network.
[0086] In example 33, the subject matter of any one or more of examples 31-32 optionally includes, wherein dynamically reallocating resources includes directing a file operation to a first stable storage device in response to determining that the one or more second utilization measurements exceed the first criterion, and otherwise directing the file operation to a second stable storage.
[0087] In example 34, the subject matter of any one or more of examples 31-33 optionally includes determining that the first criterion is met if a predetermined number of second utilization measurements within the time window is higher than a predetermined number.
[0088] In example 35, the subject matter of example 34 optionally includes an operation that further includes determining that the first criterion is met if a frequency of the second utilization measurements within the time window is higher than a predetermined frequency threshold.
[0089] In example 36, the subject matter of any one or more of examples 31-35 optionally includes an operation that further includes restoring the utilization threshold after the time window.
[0090] In example 37, the subject matter of any one or more of examples 31-36 optionally includes determining that the time window includes the first time.
[0091] In example 38, the subject matter of example 37 optionally includes an operation that further includes determining the time window such that the first time is a midpoint of the time window.
[0092] In example 39, the subject matter of any one or more of examples 32-38 optionally includes an operation that further includes determining that the second utilization measurement meets the first criterion when the second utilization measurement indicates that a utilization of the first network exceeds the adjusted utilization threshold for a predetermined period of time.
[0093] In Example 40, the subject matter of any one or more of Examples 32 - 39 optionally includes, wherein adjustment of the utilization threshold reduces the network utilization represented by the utilization threshold.
[0094] In Example 41, the subject matter of any one or more of Examples 32 - 40 optionally includes an operation that further includes rerouting an established call service from a first network to a second network in response to the one or more second utilization measurements meeting a first criterion.
[0095] In Example 42, the subject matter of Example 41 optionally includes an operation that further includes determining an amount of time during which the utilization of the first network exceeds the adjusted threshold within the time window based on the second utilization measurement, and rerouting an established call service from the first network to the second network based on the utilization exceeding a second threshold for a predetermined percentage of the time within the time window.
[0096] In Example 43, the subject matter of any one or more of Examples 32 - 42 optionally includes, wherein the first network is an Internet Protocol (IP) network and the second network is a time - division multiplexing network or a wireless network.
[0097] In Example 44, the subject matter of any one or more of Examples 32 - 43 optionally includes, wherein dynamically re - allocating resources by routing network data includes transmitting network data and an indication as to whether the network data is to be routed on the first network or the second network to a multiplexer.
[0098] In Example 45, the subject matter of any one or more of Examples 32 - 44 optionally includes an operation that further includes initiating a diagnosis on the first network in response to a determined utilization measurement meeting a first criterion.
[0099] Example 46 is an apparatus for dynamically allocating computing resources, the apparatus including units for determining, via a processing circuit, that a utilization measurement of computing resources exceeds a utilization threshold at a first time; units for automatically adjusting the utilization threshold based on the determination; units for determining, during a time window, one or more second utilization measurements of the computing resources that exceed the adjusted utilization threshold; and units for dynamically re - allocating resources in response to the determined one or more second utilization measurements meeting a first criterion.
[0100] In Example 47, the subject matter of Example 46 optionally includes units for restoring the utilization threshold after the time window.
[0101] In Example 48, the subject matter of any one or more of Examples 46 - 47 optionally includes units for determining that a first criterion is met if a predetermined number of second utilization measurements within the time window are higher than a predetermined number.
[0102] In Example 49, the subject matter of any one or more of Examples 46 - 48 optionally includes a unit for determining that the time window includes the first time.
[0103] In Example 50, the subject matter of Example 49 optionally includes a unit for determining the time window such that the first time is the midpoint of the time window.
[0104] In Example 51, the subject matter of any one or more of Examples 46 - 49 optionally includes, wherein the unit for dynamically reallocating resources includes a unit for routing network data on a first network in response to one or more determined second utilization measurements meeting a first criterion, and otherwise routing the network data on a second network.
[0105] In Example 52, the subject matter of Example 51 optionally includes a unit for determining that the first criterion is met if the frequency of the second utilization measurement within the time window is higher than a predetermined frequency threshold.
[0106] In Example 53, the subject matter of any one or more of Examples 51 - 52 optionally includes a unit for determining that the first criterion is met in response to the second utilization measurement indicating that the utilization of the first network exceeds an adjusted utilization threshold for a predetermined period of time.
[0107] In Example 54, the subject matter of any one or more of Examples 51 - 53 optionally includes, wherein the adjustment of the utilization threshold reduces the network utilization represented by the utilization threshold.
[0108] In Example 55, the subject matter of any one or more of Examples 51 - 54 optionally includes a unit for rerouting an established call service from the first network to the second network in response to the one or more second utilization measurements meeting the first criterion.
[0109] In Example 56, the subject matter of Example 55 optionally includes a unit for determining the amount of time that the utilization of the first network exceeds the adjusted threshold within the time window based on the second utilization measurement, and a unit for rerouting an established call service from the first network to the second network based on the utilization exceeding a second threshold for a predetermined percentage of the time within the time window.
[0110] In Example 57, the subject matter of any one or more of Examples 51 - 56 optionally includes, wherein the first network is an Internet Protocol (IP) network and the second network is a time - division multiplexing network or a wireless network.
[0111] In Example 58, the subject matter of any one or more of Examples 51-57 optionally includes, wherein dynamically reallocating resources by routing network data includes transmitting network data and an indication of whether to route the network data on a first network or a second network to a multiplexer.
[0112] In Example 59, the subject matter of any one or more of Examples 51-58 optionally includes a unit for initiating a diagnosis on a first network in response to a determined utilization measurement meeting a first criterion.
[0113] In Example 60, the subject matter of any one or more of Examples 46-59 optionally includes, wherein the unit for dynamically reallocating resources includes a unit for directing a file operation to a first stable storage device in response to determining that one or more second utilization measurements exceed a first criterion, and otherwise directing the file operation to a second stable storage.
[0114] Thus, the term "module" is understood to include a tangible entity that is physically constructed, specifically configured (e.g., hardwired) or temporarily (e.g., transiently) configured (e.g., programmed) to operate in a specified manner, or to perform part or all of any of the operations described in this application. Considering examples where a module is temporarily configured, each module need not be instantiated at any one moment in time. For example, in the case where a module includes a general hardware processor configured using software, the general hardware processor can be configured to be the corresponding different module at different times. The software can configure the hardware processor accordingly, for example so as to constitute a particular module at one point in time, and a different module at a different point in time.
[0115] Various embodiments can be implemented in whole or in part in software and / or firmware. This software and / or firmware can take the form of instructions contained in or on a permanent computer-readable storage medium. Those instructions can then be read and executed by one or more processors to perform the operations described in this application. The instructions can be in any suitable form, such as but not limited to source code, compiled code, interpreted code, executable code, static code, dynamic code, and so on. Such a computer-readable medium can include any tangible permanent medium for storing information in one or more computer-readable forms, such as but not limited to read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory; and so on.
Claims
1. An apparatus for dynamic reallocation of computing resources, the apparatus comprising: a unit for determining, by a processing circuit, at a first time that a utilization measurement of computing resources exceeds a utilization threshold; a unit for automatically adjusting the utilization threshold based on the determination to obtain an adjusted utilization threshold that is lower than the utilization threshold; a unit for determining, during a time window including the first time, one or more second utilization measurements of the computing resources that exceed the adjusted utilization threshold; and a unit for dynamically reallocating resources in response to the determined one or more second utilization measurements meeting a first criterion.
2. The device according to claim 1 further comprises: a unit for restoring the utilization threshold after the time window.
3. The device according to claim 1, further comprising: a unit for determining that the first criterion is met if the number of the second utilization measurements within the time window is higher than a predetermined number.
4. The device according to claim 1, further comprising: a unit for determining the time window to include the first time.
5. The apparatus according to claim 4, further comprising: a unit for determining the time window such that the first time is the midpoint of the time window.
6. The apparatus according to claim 1, wherein The unit for dynamically reallocating resources includes: a unit for routing network data on a first network in response to the determined one or more second utilization measurements meeting the first criterion, and otherwise routing the network data on a second network.
7. The apparatus according to claim 6, further comprising: a unit for determining that the first criterion is met if the frequency of the second utilization measurements within the time window is higher than a predetermined frequency threshold.
8. The apparatus according to claim 6, further comprising: a unit for determining that the first criterion is met in response to the second utilization measurement indicating that the utilization of the first network exceeds the adjusted utilization threshold during a predetermined period.
9. The device according to claim 6, wherein, The adjustment of the utilization threshold reduces the network utilization represented by the utilization threshold.
10. The apparatus according to claim 6, further comprising: a unit for rerouting an established call service from the first network to the second network in response to the determined one or more second utilization measurements meeting the first criterion.
11. The apparatus according to claim 10, further comprising: a unit for determining, based on the second utilization measurement, an amount of time during which the utilization of the first network exceeds the adjusted threshold within the time window, and a unit for rerouting an established call service from the first network to the second network based on the utilization exceeding the adjusted threshold by a predetermined percentage of time within the time window.
12. The device according to claim 6, wherein, Dynamically reallocating resources by routing network data includes: transmitting the network data and an indication of whether to route the network data on the first network or the second network to a multiplexer.
13. The apparatus according to claim 1, wherein, The unit for dynamically reallocating resources includes: a unit for directing a file operation to a first stable storage device in response to the determined one or more second utilization measurements meeting the first criterion, and a unit for otherwise directing the file operation to a second stable storage.
14. A method for dynamically allocating computing resources, comprising: determining, by a processing circuit, at a first time that a utilization measurement of computing resources exceeds a utilization threshold; automatically adjusting the utilization threshold based on the determination to obtain an adjusted utilization threshold that is lower than the utilization threshold; Determine one or more second utilization measurements in the computing resources that exceed the adjusted utilization threshold during a time window that includes the first time; and Dynamically reallocate resources in response to the determined one or more second utilization measurements meeting a first criterion.
15. The method according to claim 14 further comprises: Determine that the first criterion is met if the number of the second utilization measurements within the time window is higher than a predetermined number.
Citation Information
Patent Citations
Dynamic weighting load assessment method based on self-adaptive threshold values in cloud computing
CN104375621A