SELECTION OF CANDIDATE COMPUTING DEVICE TO REPLACE TARGET COMPUTING DEVICE

That an actual resource utilization of a target computing device is greater than a baseline resource utilization of the target computing device is determine. A candidate computing device of a different type than the target computing device and having a baseline resource utilization lower than the actual resource utilization of the target computing device is responsively selected. Whether a baseline utilization profile of the candidate computing device matches an actual utilization profile of the target computing device is determined. Responsive to determining that the baseline utilization profile of the candidate computing device matches the actual utilization profile of the target computing device, an action is performed in relation to the candidate computing device to replace the target computing device.

BACKGROUND

Computing devices include server, desktop, laptop, and notebook computers, as well as other types of computing devices, including smartphones, tablet computing devices, and so on. Computing devices are commonly employed to run workloads of a variety of different application computer programs, which can be referred to as simply applications. A computing device utilizes its resources, including hardware resources such as processors, memory, networking hardware, and storage devices, to run application workloads.

DETAILED DESCRIPTION

As noted in the background, a computing device utilizes resources, such as hardware resources, to run workloads of applications. How well the computing device runs the application workloads depends on the specific applications that are run, as well as the specific workloads of these applications. The application workloads can include how the applications are used on the computing device, how often the applications are used, and so on. That is, the application workloads can include which and for how long applications are run over time on the computing device, as well as how the applications are used when they are running.

In general, a computing device having better hardware specifications, such as a faster graphics and/or central processor or more processor cores, faster or more memory, faster networking capability, and faster storage devices or greater storage device capacity, will run application workloads with better performance than a computing device having worse hardware specifications. However, it can be difficult for a user to determine whether to replace his or her computing device with a different computing device. For example, the user may be unable to discern whether his or her existing computing device already has good performance with respect to the application workloads that the user has actually been running on the computing device, and/or whether a different computing device will markedly improve such application workload performance.

Techniques described herein ameliorate these issues. The actual resource utilization of a target computing device of a user is compared to its baseline resource utilization, which is indicative of the actual resource utilizations of computing devices of the same type as the target computing device as used by others. If the actual resource utilization of the target computing device is greater than its baseline resource utilization, then a candidate computing device having a type different than the target computing device is selected. The candidate computing device that is selected has a baseline resource utilization lower than the actual resource utilization of the target computing device. The baseline resource utilization of the candidate computing device is indicative of the actual resource utilizations of computing devices of the same type as the candidate computing device.

The baseline utilization profile of the candidate computing device is compared to the actual utilization profile of the target computing device. The actual utilization profile of the target computing device is indicative of how the user is using the target computing device, such as the application workloads that the user is running on the target computing device. The baseline utilization profile of the candidate computing device is indicative of how others are using computing devices of the same type as the candidate computing device. If the baseline utilization profile of the candidate computing device matches the actual utilization profile of the target computing device, then an action is performed in relation to the candidate computing device to replace the target computing device.

Therefore, in one implementation, a target computing device may be replaced with a candidate computing device, or a recommendation may be provided indicating that replacement of the target device with the candidate device be considered so long as two conditions have been satisfied. First, the actual resource utilization of the target computing device has to be greater, or higher, than the baseline resource utilization of the target computing device (i.e., the baseline resource utilization of computing devices of the same type as the target computing device). Second, the actual utilization profile of the target computing device has to match the baseline utilization profile of the selected candidate computing device (i.e., the baseline utilization profile of computing devices of the same type as the selected candidate computing device).

If the first condition is met but not the second condition, then a different selected candidate computing device also having a baseline resource utilization lower than the target computing device's actual resource utilization may be selected that does satisfy the second condition. However, if the first condition is not met, then no candidate computing device may be selected to replace the target computing device. That is, if the actual resource utilization of the target computing device is lower than the target computing device's baseline resource utilization, the techniques described herein deem that the target computing device should not be replaced.

FIG. 1shows an example system100including a set of computing devices102A, a set of computing devices102B, and a set of computing devices102C. The computing devices102A,102B, and102C are collectively referred to as the computing devices102. Examples of the computing devices102include server, desktop, laptop, and notebook computers, as well as other types of computing devices, including smartphones, tablet computing devices, and so on.

The computing devices102A are of the same type; the computing devices102B are of the same type; and the computing devices102C are of the same type. However, the type of the computing devices102A differs from the type of the computing devices102B and from the type of the computing devices102C. Similarly, the type of the computing devices102B differs from the type of the computing devices102C.

Each set of computing devices102may be of the same type in that they have the same (i.e., identical) hardware specifications. For example, each set of computing devices102may have the same number and type of central and/or graphics processors, the same amount and type of memory, the same number and type of networking hardware, and the same amount and type of storage devices. Each set of computing devices102may thus have the same manufacturer stock-keeping unit (SKU) in this respect.

In the example ofFIG. 1, there are three sets of computing devices102. However, in actuality, there may be many more than three such sets of computing devices102of different types, such as tens, hundreds, or more sets of computing devices102. Similarly, in the example, each set includes three computing devices102. However, in actuality, each set may include many more than three computing devices102, such as tens, hundreds, thousands, or more computing devices102.

The computing devices102are communicatively connected to what is referred to as a decision computing device104, over a network106. The decision computing device104is a server computing device that collects information from the computing devices102, and determines whether to replace a target computing device118with a computing device102of a different type. The network106can be or include the Internet, for instance, as well as local-area networks (LANs), wide-area networks (WANs), wired networks, wireless networks, intranets, extranets, and so on.

Each computing device102A may run an agent computer program that respectively collects telemetric data108A indicative of the actual resource utilization110A of the computing device102A in question and the actual utilization profile112A of the computing device102A. Each computing device102B may similarly run an agent computer program that respectively collects telemetric data108B indicative of the actual resource utilization110B and the actual utilization profile112B of the computing device110B in question. Each computing device102C may similarly run an agent computer program that respectively collects telemetric data108C indicative of the actual resource utilization110C and the actual utilization profile112C of the computing device110C in question.

The telemetric data108A,108B, and108C collected by the sets of computing devices102A,102B, and102C, respectively, is collectively referred to as the telemetric data108. The actual resource utilizations110A,110B, and110C are likewise collectively referred to as the actual resource utilizations110. The actual utilization profiles112A,110B, and110C are collectively referred to as the actual utilization profiles112.

The telemetric data108collected on each computing device102can include utilization measurements of hardware resources on that computing device102, and which applications are running on that computing device102, over time. That is, the telemetric data108collected on a given computing device102can include such measurements and which applications are running over consecutive time samples for a given length of time. Each computing device102sends its telemetric data108to the decision computing device104over the network106.

The actual utilization profile112of a computing device102can include the actual application per-resource utilizations of the computing device102. The actual application per-resource utilizations of a computing device102can include, for each application running on the computing device102during the given length of time when the telemetric data108was collected, the breakdown of actual resource utilization, by resource, for that application. For example, one application running on the computing device102may have processor, memory, and storage device utilizations of 50%, 25%, and 25%, respectively, and thus be processor-centric in its resource utilization. By comparison, another application running on the computing device102may have processor, memory, and storage device utilizations of 20%, 65%, and 15%, respectively, and thus be memory-centric in its resource utilization. The telemetric data108collected at a computing device102can thus be indicative of the actual application per-resource utilizations as (or as part of) the actual utilization profile112of the computing device102.

The actual utilization profile112of a computing device102can additionally or instead include the actual application overall resource utilizations of the computing device102. The actual application overall resource utilizations of a computing device102can include, for each application running on the computing device102during the given length of time when the telemetric data108was collected, the overall actual resource utilization for that application. For example, one application running on the computing device102may utilize 10% of the resources of the computing device102on average, whereas another application may utilize 8% of the resources of the computing device102on average. The telemetric data108collected at a computing device102can thus be indicative of the actual application overall resource utilizations as (or as part of) the actual utilization profile112of the computing device102.

The decision computing device104therefore generates an actual resource utilization110and an actual utilization profile112for each computing device102. That is, each computing device102has a respective actual resource utilization110and a respective actual utilization profile112, which are generated from the telemetric data108collected at that computing device102. The actual resource utilization110and the actual utilization profile112for a computing device102are specific to that computing device102, and do not depend and are not based on the application resource utilization110or the actual utilization profile112of any other computing device102.

For the set of computing devices102A, the decision computing device104further generates a baseline resource utilization114A from the actual resource utilizations110A of those computing devices102A, and a baseline utilization profile116A from the actual utilization profiles112A of those computing devices102A. For the set of computing devices102B, the decision computing device104similarly generates a baseline resource utilization114B and a baseline utilization profile116B from the actual resource utilizations110B and the actual utilization profiles112B, respectively, of those computing devices102B. For the set of computing devices102C, the decision computing device104generates a baseline resource utilization114C and a baseline utilization profile116C from the actual resource utilizations110C and the actual utilization profiles112C, respectively, of those computing devices102C.

The baseline resource utilizations114A,114B, and114C are collectively referred to as the baseline resource utilizations114, and the baseline utilization profiles116A,116B, and116C are collectively referred to as the baseline utilization profiles116. The baseline resource utilization114and the baseline utilization profile116of a given computing device102are the baseline resource utilization114and the baseline utilization profile116, respectively, of computing devices102of the same type as the computing device102in question. Therefore, each computing device102of the same type has the same baseline resource utilization114and the same baseline utilization profile116. For example, each computing device102A has the same baseline resource utilization114A and the same baseline utilization profile116A, even though each computing device102A has its own actual resource utilization110A and its own actual utilization profile112A.

The decision computing device104can generate or determine the baseline resource utilization profile116for the computing devices102of the same type from the actual resource utilizations110of these computing devices102in a number of different ways. For example, the actual resource utilizations110of the computing devices102in question may be averaged by hardware resource to generate the baseline resource utilization profile116for these computing devices102. As another example, the actual resource utilizations110of the computing devices102in question may be clustered using k-means or another clustering technique to determine the baseline resource utilization profile116for these computing devices102.

The decision computing device104can similarly generate or determine the baseline utilization profile116for the computing devices102of the same type from the actual utilization profiles112of these computing devices102in a number of different ways. For example, with respect to the actual application per-resource utilizations of the computing devices102in question, for each unique application running on any such computing device102, the breakdowns of actual resource utilization may be averaged by resource to determine the baseline resource utilization profile116(or a portion thereof) for these computing devices102. Similarly, with respect to the actual application overall resource utilizations of the computing devices102in question, for each unique application running on any such computing device102, the overall actual resource utilizations may be averaged to determine the baseline resource utilization profile116(or a portion thereof) for these computing devices102.

In the example ofFIG. 1, one of the computing devices102A is specifically identified as a target computing device118. The decision device104thus determines whether the target computing device118should be replaced, and if so, selects a candidate computing device102to replace the target computing device118. In the example, the target computing device118has an actual resource utilization120and an actual utilization profile122on which basis the decision device104generated the baseline resource utilization114A and the baseline utilization profile116A, respectively. However, in another implementation, the baseline resource utilization114A and the baseline utilization profile116A may have been generated before the actual resource utilization120and the actual utilization profile122of the target computing device118were generated. That is, the baseline resource utilization114A and the baseline utilization profile116A are not generated on the basis of the actual resource utilization120and the actual utilization profile122, respectively.

In both cases, the baseline resource utilization114A and the baseline utilization profile116A are generated from actual resource utilizations110A and actual utilization profiles112A of computing devices102A of the same type. In the former case, these actual resource utilizations110A and actual utilization profiles112A include the actual resource utilization120and the actual utilization profile122of the target computing device118, whereas in the latter case they do not. Nevertheless, in each case, the target computing device118is said to have the baseline resource utilization114A and the baseline utilization profile116A (and in addition to having its own actual resource utilization120and its own actual utilization profile122).

The decision computing device104determines that the target computing device118should be replaced if the actual resource utilization110A of the target computing device118is greater than the baseline resource utilization114A of the target computing device118(i.e., of computing devices102A of the same type as the target computing device118). The actual resource utilization110A of the target computing device118being greater than its baseline resource utilization114A means that the target computing device118is using more hardware resources on average than other computing devices102A of the same type. As a result, replacement of the target computing device118is considered to be appropriate.

If the decision computing device104determines that the target computing device118should be replaced, it selects a candidate computing device102of a different type than the target computing device118to replace the target computing device118. The decision computing device104specifically selects a candidate computing device102having a baseline resource utilization114lower than the actual resource utilization120of the target device118. For instance, the decision computing device104may select a computing device102B or a computing device102C as the candidate computing device102, insofar as the computing devices102B and102C are of different types than the target computing device118, if both the computing devices102B and102C have baseline resource utilizations114B and114C, respectively, lower than the actual resource utilization120of the target device118. For descriptive purposes only, the decision computing device104is said to (at least initially) select a computing device102B as the candidate computing device102.

In this example, the candidate computing device102B is an existing computing device102B having an actual resource utilization110B and an actual utilization profile112B from which the baseline resource utilization114B and the baseline utilization profile116B, respectively, were generated. However, in another implementation, the candidate computing device102B may be an existing computing device102B, but no actual resource utilization110B or actual utilization profile112B may have been generated for the computing device102B. In this case, the baseline resource utilization114B and the baseline utilization profile116B of the candidate computing device102B are thus not generated based on the actual resource utilization110B and the actual utilization profile112B, respectively, of the computing device102B. Rather, the baseline resource utilization114B and the baseline utilization profile116B profile are generated from the actual resource utilizations110B and the actual utilization profiles112B of other computing devices102B of the same type as the candidate computing device102B.

Furthermore, in still another implementation, the candidate computing device102B may not yet exist. That is, the candidate computing device102B may be orderable and/or manufacturable, but may not yet have been ordered or manufactured. In this case, too, the baseline resource utilization114B and the baseline utilization profile116B of the candidate computing device102B are not generated based on the actual resource utilization110B and the actual utilization profile112B, respectively, of the computing device102B. Rather, the baseline resource utilization114B and the baseline utilization profile116B profile are generated from the actual resource utilizations110B and the actual utilization profiles112B of other computing devices102B of the same type as the candidate computing device102B.

The decision computing device104determines whether the baseline utilization profile116B of the selected candidate computing device102B matches the actual utilization profile122of the target device118. The baseline utilization profile116B may be considered to match the actual utilization profile122if the two utilization profiles116B and122are identical within a specified threshold. For example, if the baseline utilization profile116B has an application per-resource utilization that is identical within a specified threshold percentage to the application per-resource utilization of the actual utilization profile122for more than a threshold number of the applications of the actual utilization profile122, then the utilization profiles116B and122may be considered as matching. As another example, if the baseline utilization profile116B has an application overall resource utilization that is identical within a specified threshold percentage to the application overall resource utilization of the actual utilization profile122for more than a threshold number of the applications of the actual utilization profile122, then the utilization profiles116B and112may be considered as matching.

If the baseline utilization profile116B of the selected candidate computing device102B matches the actual utilization profile122of the target computing device118, then the selected candidate computing device102B may replace the target computing device118, or may be offered as a replacement for the target computing device118. If the baseline utilization profile116B of the selected candidate computing device102B does not match the actual utilization profile122of the target computing device118, however, then the decision computing device104may select a different candidate computing device102having a baseline resource utilization114lower than the actual resource utilization120of the target computing device118, such as a candidate computing device102C. If the baseline utilization profile116of this different selected candidate computing device102matches the actual utilization profile122of the target computing device118, then this other candidate computing device102may replace (or may be offered as a replacement for) the target computing device118.

FIG. 2shows an example method200for selecting a candidate computing device to replace a target computing device. The method200may be performed by the decision computing device104for selecting a candidate computing device102to replace the target computing device118as has been described in relation toFIG. 1. The method200may be implemented as program code stored on a non-transitory computer-readable data storage medium, and executable by a processor of a computing device (e.g., the decision computing device104).

The method200includes collecting telemetric data from computing devices, including from the target computing device (202). The telemetric data of the target computing device may be collected after the telemetric data of the other computing devices have been collected. The method200includes generating the actual resource utilization and the actual utilization profile of each computing device (204). The actual resource utilization and the actual utilization profile of the target computing device may be determined after the actual resource utilizations and the actual utilization profiles of the other computing devices have been determined.

The method200further includes generating a baseline resource utilization and a baseline utilization profile for computing devices of the same type (206). For each type of computing device, a baseline resource utilization and a baseline utilization profile is determined from the actual resource utilizations and the actual utilization profiles, respectively, of computing devices of that type. The baseline resource utilization and the baseline utilization profile of a computing device are thus the baseline resource utilization and the baseline utilization profile calculated from the actual resource utilizations and the actual utilization profiles, respectively, of (other) computing devices of the same type as the computing device in question.

If the actual resource utilization of the target computing device is not greater than the baseline resource utilization of the target computing device (i.e., the baseline resource utilization of other computing devices of the same type as the target computing device) (208), then the method200ends without selecting a candidate computing device to replace the target computing device (210). In this case, the hardware specifications of the target computing device are deemed sufficient for the application workloads that the user of the target computing device has been running on the target computing device. The target computing device is considered for replacement, in other words, just if the target computing device is actually utilizing resources in a greater manner than other computing devices of the same type are, as specified by the baseline resource utilization.

By comparison, if the actual resource utilization of the target computing device is greater than the baseline resource utilization of the target computing device (208), the method200includes then selecting a candidate computing device having a baseline resource utilization (i.e., the baseline resource utilization of other computing devices of the same type as the candidate computing device) that is lower than the actual resource utilization of the target computing device (212). The candidate computing device is of a different type of computing device than the target computing device is. If there is more than one (type of) candidate computing device having a baseline resource utilization lower than the actual resource utilization of the target computing device, which (type of) candidate computing device is selected may be achieved in a number of different ways. As one example, the (type of) candidate computing device having the lowest baseline resource utilization may be selected.

If the baseline utilization profile of the candidate computing device does not match the actual utilization profile of the target computing device (214), however, then the method200selects a different (type of) candidate computing device (212). Once a candidate computing device has been selected that has a baseline utilization profile matching the actual utilization profile of the target computing device (214), the method200includes then performing an action in relation to the selected candidate computing device to replace the target computing device (216). Different types of actions may be performed in this respect.

For example, the application workloads of the target computing device may be transferred to the candidate computing device to replace the target computing device. Such an example action may be suitable in a data center environment, in which there are stand-by candidate computing devices of different types than the target computing device. The decision computing device104ofFIG. 1may, for instance, initiate transfer of workloads performed by the applications of the target computing device to corresponding applications of the candidate computing device. This process may include first causing the applications to be installed on the candidate computing device if they are not yet already installed.

As another example, the candidate computing device may be offered to the user of the target computing device. For instance, the candidate computing device may be offered for purchase or other acquisition to the user. Responsive to receiving approval from the user—such as if the user purchases or otherwise acquires the candidate computing device—the candidate computing device may replace the target computing device. In an enterprise environment, for instance, the user may be offered to upgrade his or her device to a candidate computing device that the enterprise has available or that the enterprise can procure for the user, with the candidate computing device subsequently provided to the user to replace his or her targeting computing device upon approval. In a home environment, the user may be sent an email or otherwise provided with an advertisement indicating that the user would benefit from replacing his or her target computing device with the candidate computing device, with an indication as to how the user can purchase the candidate computing device.

The method200can be varied in different ways. For example, as has ben described, a candidate computing device that has a baseline resource utilization lower than the actual resource utilization of the target computing device is first selected, and an action is performed in relation replacing the target device with the candidate device so long as the baseline utilization profile of the candidate device matches the actual utilization profile of the target device. However, instead, multiple candidate devices that have baseline resource utilizations lower than the actual resource utilization of the target device may be considered. Of these multiple candidate devices, the candidate device that has a baseline utilization profile that best matches the actual utilization profile of the target device may be selected.

FIG. 3shows a graph300of example computing device resource utilization on which basis a candidate computing device can be selected to replace a target computing device. The graph300defines a two-dimensional (2D) space having dimensions302and304that respectively correspond to different first and second resources. The description herein in relation to the graph300can be extended, however, to multidimensional spaces having more than two dimensions that each correspond to a different resource. InFIG. 3, the lighter points306correspond to computing devices of a first type, and the darker points308correspond to computing devices of a different, second type.

Each point306corresponds to the actual utilization of a respective computing device of the first type for the different resource of each dimension302and304. That is, for a given computing device of the first type, there is a point306having a value in the dimension302equal to this computing device's actual utilization of the first resource to which the dimension302corresponds and having a value in the dimension304equal to this computing device's actual utilization of the second resource to which the dimension304corresponds. Similarly, each point308corresponds to the actual utilization of a respective computing device of the second type for the different resource of each dimension302and304. For a given computing device of the second type, there is therefore a point308having values in the dimensions302and304equal to this computing device's actual utilization of the first and second resources, respectively.

A baseline point310is determined for the computing devices of the first type. In the example, the baseline point310is a center point of the points306within the graph300. A baseline point312is similarly determined for the computing devices of the second type. In the example, the baseline point312is a center point of the points308within the graph300. Therefore, whereas the points306and308correspond to the actual resource utilization of computing devices of the first and second types, respectively, the baseline points310and312correspond to the baseline resource utilization of the computing devices of the first and second types, respectively.

A target computing device in the example is of the same first type as the computing device having the points306. The target computing device specifically has a target point314corresponding to the actual utilization of a respective computing device of the first type for the different resource of each dimension302and304. The target point314may be one of the points306from which the baseline point310was calculated, or may not be one of the points306if the actual resource utilization of the target computing device to which the target point314corresponds was determined after the baseline point310was calculated as the baseline resource utilization of the computing devices of the first type.

In either case, the target computing device nevertheless is considered to have the baseline point310as its baseline resource utilization, insofar as the baseline point310is calculated for (other) computing devices of the same (first) type. The determination of the points306,310, and314may be performed as part of determining whether the actual resource utilization of the target computing device is greater than its baseline resource utilization. The determination of the points306and314may be performed in part204ofFIG. 2, and the determination of the baseline point310may be determined in part206.

The target computing device has an actual resource utilization greater than its baseline resource utilization. This is because the target point314is farther from the origin of the two-dimensional space of the graph300than the baseline point310is. Stated another way, the target computing device is determined as having an actual resource utilization greater than its baseline resource utilization by determining that the target point314is farther from the origin than the baseline point310is. In the example, for instance, the distance from the origin to the target point314is a normalized unitless distance of 82.62, whereas the distance from the origin to the baseline point310is a normalized unitless distance of 52.84.

A candidate computing device of the second type is selected in the example. The candidate computing device has the baseline point312, insofar as it is of the same (second) type as (other) computing devices having the points308from which the baseline point312was calculated. The candidate computing device may or may not have a corresponding point308, however. The determination of the points308and312may be performed as part of selecting the candidate computing device that is of a different type than the target computing device and that has a baseline resource utilization less than the actual resource utilization of the target computing device. The determination of the points308may be performed in part204ofFIG. 2, and the determination of the baseline point312may be determined in part206.

The candidate computing device has a baseline resource utilization less than the actual resource utilization of the target computing device. This is because the baseline point312is closer to the origin of the two-dimensional space of the graph300than the target point314is. Stated another way, the candidate computing device that has a baseline resource utilization less than the target computing device's actual resource utilization can be selected by determining that the baseline point312is closer to the original than the target point314is. In the example, for instance, the distance from the origin to the baseline point312is a normalized unitless distance of 61.36, whereas the distance form the origin to the target point314is a normalized unitless distance of 82.62.

It is noted that the candidate computing device of the second type may be selected to replace the target computing device even though the candidate computing device has a higher baseline resource utilization than the target computing device. That is, the baseline point310corresponding to the baseline resource utilization of the target computing device (i.e., of computing devices of the same first type as the target computing device) is farther from the origin than the baseline point312corresponding to the baseline resource utilization of the client computing device (i.e., of computing devices of the same second type as the client computing device) is. The candidate computing device is thus selected on the basis of its baseline resource utilization vis-à-vis the actual resource utilization of the target computing device, and not vis-à-vis the baseline resource utilization of the target computing device.

Selection of such a candidate computing device in this manner may be unintuitive, but nevertheless can yield selection of a suitable candidate computing device to replace the target computing device. That is, even though the baseline resource utilization of the selected candidate computing device is higher than that of the target computing device, the selected candidate computing device may nevertheless have lower resource utilization in running the application workloads of the target computing device than the target computing device. For instance, if the baseline utilization profile of the candidate computing device matches the actual utilization profile of the target computing device, the candidate computing device may still have lower resource utilization in running the application workloads even though the candidate computing device has a higher baseline resource utilization than the target computing device.

FIG. 4shows an example of how application per-resource utilizations can be used as a utilization profile on which basis to determine whether a selected candidate computing device should replace a target computing device. For each of a number of different applications402A,402B,402C,402D,402E, and402F, which are collectively referred to as the application402, the candidate computing device has a baseline application per-resource utilization404and the target computing device has an actual application per-resource utilization406. In the example, there are six such applications402for which the candidate and the target computing devices have application works404and406, respectively. However, there may be fewer or more than six applications402.

Each application per-resource utilization404and406for each application402specifies the relative resource utilization of the application402in question for up to four hardware resources: processor resources, network resources, memory resources, and storage resources, as indicated by different shading inFIG. 4. That is, in running a given application402, computing devices of the same type as the candidate computing device on average relatively utilize resources as indicated by the baseline application per-resource utilization404for that application402. Similarly, in running a given application, the target computing device relatively utilizes resources as indicated by the actual application per-resource utilization406for that application402.

Whether the selected candidate computing device should replace the target computing device is determined based on whether the baseline application per-resource utilizations404match the actual application per-resource utilizations406. For example, for a given application402, the baseline application per-resource utilization404may be considered as matching the actual application per-resource utilization406if the percentages of the resources specified by the per-resource utilization404are equal to the percentages of the resources specified by the per-resource utilization406within a threshold. So long as the baseline application per-resource utilizations404match the actual application per-resource utilizations406for more than a threshold number of applications402, the selected candidate computing device should replace the target computing device.

FIG. 5shows an example of how application overall resource utilizations can be used as a utilization profile on which basis to determine whether a selected candidate computing device should replace a target computing device. For each of a number of different applications402, the candidate computing device has a baseline application overall resource utilization504and the target computing device has an actual application overall resource utilization506. As inFIG. 4, there may be more or fewer than the six applications402depicted inFIG. 5.

Each application overall resource utilization504and506for each application402specifies the overall utilization of the application402of the hardware resources of the computing device(s) in question. That is, in running a given application402, computing devices of the same type as the candidate computing device on average utilize overall resources as indicated by the baseline application overall resource utilization504for that application402. Similarly, in running a given application, the target computing device on average utilizes overall resources as indicated by the actual application overall resource utilization506for that application402. For example, an application overall resource utilization of 5% for a given application402means that on average the given application402utilizes 5% of the overall resources of computing device(s) in question when running.

Whether the selected candidate computing device should replace the target computing device is determined based on whether the baseline application overall resource utilizations504match the actual application overall resource utilizations506. For example, for a given application402, the baseline application overall resource utilization504may be considered as matching the actual application overall resource utilization506if the overall percentage of the former is equal to that of the latter within a threshold. So long as the baseline application overall resource utilizations504match the actual application overall resource utilizations506for more than a threshold number of applications402, the selected candidate computing should replace the target computing device.

The application overall resource utilization approach ofFIG. 5can be used in addition to or in lieu of the application per-resource utilization approach ofFIG. 4. For example, that the candidate computing device should replace the target computing device may be determined if there is both application per-resource utilization matching perFIG. 4and application overall resource utilization matching perFIG. 5. As another example, that the candidate computing device should replace the target computing device may be determined so long as there is application per-resource utilization matching or application overall resource utilization matching, even if there is not both types of matching.

FIG. 6shows an example method600. The method600may be implemented as program code stored on a non-transitory computer-readable data storage medium and executed by a processor of a computing device. The method600includes determining that an actual resource utilization of a target computing device is greater than a baseline resource utilization of the target computing device (602). The method600includes responsively selecting a candidate computing device of a different type than the target computing device and having a baseline resource utilization lower than the actual resource utilization of the target computing device (604).

The method600includes then determining whether a baseline utilization profile of the candidate computing device matches an actual utilization profile of the target computing device (606). The method600includes, responsive to determining that the baseline utilization profile of the candidate computing device matches the actual utilization profile of the target computing device, then performing an action in relation to the candidate computing device to replace the target computing device (608). For instance, the action may be one of the actions that have been described above in relation toFIG. 2.

FIG. 7shows an example non-transitory computer-readable data storage medium700storing program code702executable by a processor of a computing device to perform processing. The processing includes receiving telemetric data collected at a target computing device (704). The telemetric data is indicative of actual resource utilization of the target computing device. The processing includes determining that the actual resource utilization of the target computing device is greater than a baseline resource utilization of the target computing device (706).

The processing further includes responsively selecting candidate computing devices of a different type than the target computing device and having a baseline resource utilization lower than the actual resource utilization of the target computing device (708). The processing includes determining that a baseline utilization profile of the candidate computing device matches an actual utilization profile of the target computing device (710), and responsively causing replacement of the target computing device with the candidate computing device (712). That replacement of the target computing device with the candidate computing device is caused may include performing any of the actions that have been described above in relation toFIG. 2.

FIG. 8shows an example computing device800, such as the decision computing device104ofFIG. 1. The computing device800includes a processor802and a memory804storing instructions806executable by the processor802. The instructions806are executable to determine that an actual resource utilization of a target computing device is greater than a baseline resource utilization of the target computing device (808).

The instructions806are executable to responsively select a candidate computing device of a different type than the target computing device and having a baseline resource utilization lower than the actual resource utilization of the target computing device (810). The instructions806are executable to further determine that a baseline utilization profile of the candidate computing device matches an actual utilization profile of the target computing device (812), and responsively cause the candidate computing device to replace the target computing device (814). That replacement of the target computing device with the candidate computing device is caused may include performing any of the actions that have been described above in relation toFIG. 2.

Techniques have been described for selecting a candidate computing device to replace a target computing device. A candidate computing device is selected if the target computing device's actual resource utilization is greater than its baseline resource utilization. The selected candidate computing device is of a different type than the target computing device, and has a baseline resource utilization lower than the target computing device's actual resource utilization, regardless of whether the baseline resource utilization of the selected candidate computing device is greater or less than the baseline resource utilization of the target computing device. The selected candidate computing then may replace the target computing device if it has a baseline utilization profile matching the actual utilization profile of the target computing device.