Upgrade determination for devices based on telemetry data
By generating score maps and evaluating the resource usage of client devices, the problems of performance degradation and resource waste caused by software upgrades are solved, thereby improving the accuracy of upgrade decisions and the efficiency of resource utilization.
Patent Information
- Application Number
- CN201980081483.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-02-01
- Publication Date
- 2025-11-11
- Estimated Expiration
- 2039-02-01
AI Technical Summary
When performing software upgrades on client devices using existing technologies, it is difficult to effectively assess resource usage, which may lead to performance degradation or resource waste during the upgrade.
By generating a rating map, the resource capacity and utilization of client devices are evaluated based on telemetry data. The rating engine, diagnostic engine, and upgrade engine are used to determine whether the device is suitable for a software upgrade, thus avoiding inappropriate upgrades.
It enables objective assessment of client device upgrades, avoids performance degradation and resource waste, and improves the accuracy of upgrade decisions and resource utilization efficiency.
Smart Images

Figure CN113168398B_ABST
Abstract
Description
Background Technology
[0001] Client devices (such as computing devices) typically run software programs that utilize various resources, such as memory. Over time, the software applications running on client devices may need to be upgraded to provide additional modern features and improved security. Software upgrades generally increase the demand on device resources, as new software features may require additional processor capacity and / or memory capacity. Attached Figure Description
[0002] The accompanying diagram will now be referenced only by way of example, in which:
[0003] Figure 1 This is a block diagram of an example device used to generate suitability metrics to determine the suitability of upgrading client devices;
[0004] Figure 2 This is an example of a rating map generated by a rating engine;
[0005] Figure 3 This is a block diagram of an example client device used to collect telemetry data for forwarding to the device;
[0006] Figure 4 This is a representation of an example system used to generate suitability metrics to determine the suitability of upgrading client devices;
[0007] Figure 5 This is a block diagram of another example device used to generate suitability metrics to determine the suitability of upgrading client devices; and
[0008] Figure 6 This is a flowchart of an example method for generating suitability metrics to determine the suitability of servers in the cloud for upgrading client devices. Detailed Implementation
[0009] Devices connected to the network are likely to be widely accepted and often easier to use. In particular, new services have been developed to provide devices as a service, where consumers simply use the devices while service providers maintain them and ensure their performance is kept at a certain level.
[0010] Each device may have different resource capacities (such as memory), depending on the specific model of the device. Resource capacity can be selected based on various factors (such as intended use) when the device is introduced into service. To utilize the resources on a device efficiently, it is important to understand that resource usage should be close to the maximum available resources. However, a device's resource usage may vary over time. For example, if the device is a personal computing device (such as a laptop or tablet), resource usage may vary depending on the functions performed by the device. If the device is used to display text to the user (such as when the user is reading a document or article), resource usage may be relatively low. In contrast, if the device is used to render complex 3D images (such as in design applications), resource usage in the device may be quite high. As the device can be used for this range of functions, resource capacity should be selected to reasonably accommodate the most computationally intensive tasks expected to be performed on the device.
[0011] As software is developed or evolves, it typically uses increased resource volumes to provide more features to its users. Furthermore, device usage can evolve over time as devices may switch users or user roles change within the organization. Therefore, before implementing a software upgrade on a client device, an analysis is conducted to determine how the device will perform after the upgrade. Depending on the analysis's findings, if no significant performance degradation is expected, the upgrade can proceed at the device. If the analysis determines that the device may suffer performance degradation, the upgrade can be paused until a new device with improved resource capacity is allocated to the user. This analysis can also be used to audit the device, allowing it to be reassigned to another user to better utilize resources if a client device is determined to be underutilized.
[0012] Analyzing resource utilization on user equipment is typically performed by a consultant who can assess the effectiveness of upgrading to a specific device. In this example, the analysis is performed by applying the same model of device to all cases. This improves the accuracy and objectivity of the analysis. Therefore, predictions of the effects of software upgrades on existing equipment can be used to determine the optimal course of action for a specific user device.
[0013] refer to Figure 1An example of an apparatus for generating suitability metrics to determine whether an upgrade is suitable for a client device is generally shown at point 10. Apparatus 10 may include additional components such as various memory storage units, interfaces for communicating with other devices, and further input and output devices for interaction with an administrator capable of accessing apparatus 10. In this example, apparatus 10 includes a communication interface 15, a grading engine 20, a diagnostic engine 25, and an upgrade engine 30. Although this example shows grading engine 20, diagnostic engine 25, and upgrade engine 30 as separate components, in other examples, grading engine 20, diagnostic engine 25, and upgrade engine 30 may be part of the same physical component—such as a microprocessor configured to perform multiple functions.
[0014] Communication interface 15 communicates with client devices via a network. Specifically, communication interface 15 receives telemetry data from client devices. In this example, device 10 may be located in the cloud to manage multiple client devices. Therefore, communication interface 15 may need to receive telemetry data from several different client devices managed by device 10.
[0015] The manner in which communication interface 15 receives telemetry data is not particularly limited. In this example, device 10 may be a cloud server located far from the client device, which may be widely distributed across a large geographical area. Therefore, communication interface 15 may be a network interface that communicates via the Internet. In other examples, communication interface 15 may be connected to the client device via a peer-to-peer connection, such as via a wired or private network.
[0016] In this example, the telemetry data collected is not particularly limited. Telemetry data may include information about the client device, such as the client device's resource capacity and resource utilization levels. Specific resources are not particularly limited and may include available memory, such as random access memory. Additionally, telemetry data may include other information about a specific client device, such as device identifier, account name, model, manufacturer, date of birth, and device type. Telemetry data may also include hardware information, such as smart drive information, firmware revisions, disk physical information (e.g., model, manufacturer, self-test results), and battery voltage. A background process on the client device can be used to collect telemetry data. Background processes use minimal resources, so they do not substantially affect foreground processes running on the device. In this example, telemetry data may be received by communication interface 15 at regularly scheduled intervals. For example, telemetry data may be received once a day. In other examples, telemetry data may be received more frequently (e.g., hourly) or less frequently (e.g., weekly).
[0017] The grading engine 20 generates a rating map to be used with telemetry data. Specifically, the rating map can be used to assign ratings to specific regions on the rating map. In this example, the rating map can be specific to a client device or a type of device. Therefore, the grading engine 20 can use information from the telemetry data to generate the rating map. It will be understood that the way the grading engine 20 generates the rating map is not particularly limited. As an example, the rating map can be a two-dimensional representation where resource utilization is plotted on one axis and resource capacity on another. Thus, a two-dimensional representation can represent different combinations of resource utilization relative to resource capacity for a type of device. The rating map can also include multiple threshold limits that divide the rating map into multiple regions or classification groups, where each region defined by the threshold limit can be used to define a score for a client device. This score can be used to classify and group devices with different characteristics—such as resource capacity and average or median resource utilization—so that they are treated similarly in determining whether an upgrade is appropriate. For example, when the average or median resource utilization is determined as a specific percentage, a client device with low resource capacity can be considered a high-utilization device. In contrast, a client device with high resource capacity can be considered an average or low-utilization device when the average or median resource utilization is determined to be the same percentage as the previous device. In this example, the latter device is considered to have a lower utilization due to the additional resource capacity.
[0018] refer to Figure 2 An example of a rating map generated by the rating engine 20 is generally shown at 300. In the rating map 300, there are multiple threshold limits 305-1, 305-2, 305-3, 305-4, and 305-5 (generally, these threshold limits are referred to herein as “threshold limits 305” and they are collectively referred to as “threshold limits 305”, this nomenclature is used elsewhere in this specification). Threshold limits 305 divide the rating map 300 into multiple regions 310-1, 310-2, 310-3, 310-4, 310-5, and 310-6. In this example, threshold limits 305 are calculated based on the relationship between resource capacity values and resource utilization values. Specifically, the relationship in this example is a parabolic relationship, where each threshold limit 305 has different parameters in the parabolic relationship. The parameters are not particularly restricted and can be set based on empirical data. In other examples, the parameters may be based on a type of device or a group of devices. In examples where the parameters are based on this type of device, the parameters can be determined based on the device identifier received in the telemetry data. Therefore, in such examples, the telemetry data can be used to determine or define the relationship between resource capacity and resource utilization.
[0019] Continuing with the example of rating mapping 300, an example of calculating the threshold limit 305 can be implemented as described below. It should be understood that this is a non-limiting example, but the threshold limit 305 can be implemented. In other examples, other calculations can be performed based on other relationships between resource capacity values and resource utilization values. In this example, the resource capacity value (RC) installed on the client device and the resource utilization threshold (T) are... k The relationship between the two can be described by the following parabolic relationship:
[0020]
[0021] Where a k It can be defined as the following parameters:
[0022]
[0023] in var k This is the threshold variation for each threshold limit 305. In this example, the threshold variation determines the degree to which the threshold limit 305 will bend. The determination of the threshold variation can be based on experience. Furthermore, the threshold variation can vary between each threshold limit. In this example, the threshold variation can also be changed for the calculation of each threshold limit 305. Specifically, for each consecutive threshold limit 305, this example decreases the threshold by 5. max(RC) This is the maximum capacity of the resource. For example, if the resource is storage, then... max(RC) This may be the maximum amount of memory supported by a specific device.
[0024] In the current calculation of the resource utilization threshold, when the resource capacity is zero, b k The value of b represents the initial threshold. k The value is determined based on experience.
[0025] In this example, it will be assumed that a score map 300 will be calculated for the client device based on an analysis of memory usage. At this point, it can be assumed that the median memory usage is determined to be 60%. The device in this example will have 16GB of installed memory capacity and a maximum expandable capacity of 32GB. In this example, an initial threshold variation of 25 (var1) can be used, which decreases by five for each threshold limit of 305. Therefore, it is possible to calculate... a 1 Value:
[0026]
[0027] The remaining value can be calculated as follows:
[0028]
[0029] For this example, we can further assume that for b 1 , b 2 , b 3 , b 4 and b 5 , b k The values have been empirically determined to be 20, 40, 60, 75, and 90, respectively. Therefore, the relationship between the resource capacity (RC) value installed on the client device and the threshold of each threshold limit in the rating map 300 can be described as:
[0030]
[0031]
[0032] in T 1 , T 2 , T 3 , T 4 and T 5 These represent the threshold limits 305-1, 305-2, 305-3, 305-4, and 305-5, respectively.
[0033] Each region 310 of the rating map 300, defined by the threshold limit 305, can be assigned a grade or score. In this example, the scores assigned to regions 310-1, 310-2, 310-3, 310-4, 310-5, and 310-6 are 5.0, 4.0, 3.0, 2.0, 1.0, and 0, respectively. Therefore, in this example, a client device with a low score would indicate that the client device has a high level of resource utilization. In contrast, a client device with a high score would indicate that the client device has low utilization and may be underutilized. Whether a device is overused or underutilized can be considered in relation to whether an upgrade has been implemented at the device. For example, if a client device is considered overused, a software upgrade could lead to increased resource utilization and further exacerbate the overuse problem. Conversely, if a client device is considered underutilized, it can be assumed that the increased resource demand after an upgrade may not significantly affect the performance of the client device.
[0034] The diagnostic engine 25 generates a score based on the application of a scoring map, using telemetry data received via communication interface 15. In this example, the diagnostic engine 25 communicates with communication interface 15 to receive telemetry data and with the scoring engine 20 to receive the scoring map.
[0035] The method of generating scores is not particularly restricted. Continuing with this example of score mapping 300, an example score calculated by diagnostic engine 25 for telemetry data from a client device with a median memory usage of 60% and an installed memory capacity of 16GB is illustrated. Referring to score mapping 300, devices with these characteristics fall within region 310-3. Therefore, a base score of 3 can be associated with this device. To determine the exact score of the device, when the resource capacity is set to 16GB, this can be determined by using a linear regression between threshold limits 305-2 and 305-3. In this particular example, the range between threshold limits 305-2 and 305-3 is 44.9920 and 63.7376. Since the median usage is assumed to be 60%, this generates a score of 3.1994. It will be understood that the calculation of the exact score is not restricted. In other examples, other approximations that are more accurate than linear regression can be used.
[0036] The upgrade engine 30 performs the upgrade at the client device based on the score determined by the diagnostic engine 25. For example, if the score calculated by the diagnostic engine 25 exceeds a predetermined threshold, the client device can be considered underutilized and a good candidate for upgrade because it is capable of handling the additional resource demands typically associated with software upgrades. Alternatively, if the score is below the threshold, the client device may be overutilized. In the case of overutilization, upgrading the software on the client device may lead to higher resource demands and thus degrade the client device's performance.
[0037] The upgrade engine 30 can implement upgrades in any way. For example, the upgrade engine 30 can prompt the user of the client device to download and install the upgrade. In other examples, the upgrade engine 30 can push the upgrade to the client device without further input from the user, such as on managed client devices.
[0038] refer to Figure 3An example of a client device for which a suitability metric is determined is generally shown at 100. Client device 100 is not particularly limited and can be any other device connected to device 10, such as a shared device (e.g., a desktop computer, tablet, or smartphone). Client device 100 may include additional components such as various memory storage units, interfaces for communicating with other devices, and may include peripheral input and output devices for user interaction. In this example, client device 100 includes a communication interface 110, a memory storage unit 115 for storing a database 150, and a resource monitor 120.
[0039] Communication interface 110 communicates with device 10 via a network. In this example, client device 100 may connect to a cloud to be managed by device 10 in the cloud. Therefore, communication interface 110 may transmit telemetry data from memory storage unit 115 for processing by device 10 to determine a score related to suitability for an upgrade. The manner in which communication interface 110 transmits telemetry data is not particularly limited. In this example, client device 100 may connect to device 10 at a remote location via a network such as the Internet. In other examples, communication interface 110 may connect to device 10 via a peer-to-peer connection such as via a wired or private network. In this example, device 10 is a central server. However, in other examples, device 10 may be an existing virtual server in the cloud, where functionality can be distributed across several physical machines.
[0040] Memory storage unit 115 is coupled to communication interface 110 and resource monitor 120, and may include a non-transitory machine-readable storage medium, which can be any electronic, magnetic, optical, or other physical storage device. In this example, memory storage unit 115 may also maintain database 150 to store telemetry data associated with client device 100. For example, current and historical telemetry data may be stored in database 150 for later use.
[0041] Resource monitor 120 collects telemetry data from resources within client device 100. The resources from which resource monitor 120 collects data are unrestricted and may include resources such as volatile memory (e.g., random access memory), non-volatile memory storage devices (e.g., hard drives, solid-state drives, non-volatile memory controllers), batteries, displays, processors, applications, or other software running on client device 100. In this example, resource monitor 120 collects telemetry data regarding volatile memory usage. Specifically, resource monitor 120 determines the average or median usage of client device 100.
[0042] refer to Figure 4An example of a system for generating suitability metrics for client devices is generally shown at 200. In this example, device 10 communicates with multiple client devices 100 via network 210. It will be understood that the client devices 100 are not limited and can be various client devices 100 managed by device 10. For example, client devices 100 can be personal computers, tablet computing devices, smartphones, or laptop computers.
[0043] refer to Figure 5 Another example of an apparatus for generating suitability metrics to determine whether an upgrade is suitable for client device 100 is generally shown at 10a. Similar components of apparatus 10a are labeled similarly to their corresponding parts in apparatus 10, except that they are followed by the suffix "a". Apparatus 10a includes a communication interface 15a, a grading engine 20a, a diagnostic engine 25a, and an upgrade engine 30a. In this example, the grading engine 20a, the diagnostic engine 25a, and the upgrade engine 30a are implemented by a processor 35a. Apparatus 10a also includes a memory storage unit 40a.
[0044] Processor 35a may include a central processing unit (CPU), graphics processing unit (GPU), microcontroller, microprocessor, processing core, field-programmable gate array (FPGA), application-specific integrated circuit (ASIC), etc. Processor 35a and memory storage unit 40a can cooperate to execute various instructions. In this example, processor 35a can execute instructions stored on memory storage unit 40a to implement hierarchical engine 20a, diagnostic engine 25a, and upgrade engine 30a. In other examples, hierarchical engine 20a, diagnostic engine 25a, and upgrade engine 30a may each execute on a separate processor. In further examples, hierarchical engine 20a, diagnostic engine 25a, and upgrade engine 30a may operate on separate machines, such as from software provided by a service provider or within a virtual cloud server.
[0045] Memory storage unit 40a stores various data and information on device 10a. The components of memory storage unit 40a are not particularly limited. For example, memory storage unit 40a may include a non-transitory machine-readable storage medium, which may be, for example, electronic, magnetic, optical, or other physical storage devices. Furthermore, memory storage unit 40a may store an operating system 500a executable by processor 35a to provide general functionality to device 10a. For example, the operating system may provide functionality to additional applications. Examples of operating systems include Windows. TM macOS TM iOS TM Android TM Linux TMand Unix TM The memory storage unit 40a may additionally store instructions that operate at the driver level and other hardware drivers to communicate with other components and peripherals of the device 10a.
[0046] In this example, the memory storage unit 40a may include a device database 510a for storing information about different client devices 100. For example, the device database 510a may include a lookup table in which resource capacity and other specifications of the client devices may be stored. Therefore, upon receiving a device identifier with telemetry data, the device 10a can obtain further information about the client device 100 by retrieving information from the device database 510a.
[0047] Furthermore, the memory storage unit 40a may also include a mapping database 520a for storing rating maps associated with the client device 100. In the example, the rating engine 20a can generate rating maps associated with the client device 100. For similar client devices where the same rating map can be used, the rating map can be retrieved from the mapping database 520a without the rating engine 20a having to perform the step of generating the rating map from scratch. The mapping database 520a can also be used for the same client device, such as to determine whether further upgrades are suitable for the client device, or whether the client device has increased its resource capacity from a hardware upgrade.
[0048] The similarity between client devices that can use the same rating map is unrestricted. In this example, the same rating map can be used for client devices with substantially the same hardware configuration, such as client devices of the same model and resource capacity. This is a common scenario in systems with managed equipment (such as within a company), as providing the same equipment to a group of employees allows computing resources to be standardized for easier maintenance and troubleshooting. In other examples, the same rating map can be used for client devices from the same manufacturer, allowing several models to use the same rating map. In further examples, larger groups can be defined based on the hardware and / or software characteristics of the client devices.
[0049] refer to Figure 6At 400, a flowchart of an example method for generating a suitability metric to determine whether an upgrade is suitable for the client device is generally shown. To aid in the explanation of method 400, it will be assumed that method 400 can be implemented using system 200. In practice, method 400 can be one in which system 200, together with device 10 and client device 100, can be configured. Furthermore, the following discussion of method 400 can lead to a further understanding of system 200, as well as device 10 and client device 100. Moreover, it will be emphasized that method 400 may not be implemented in the exact order shown, and various blocks may be implemented in parallel rather than sequentially, or in entirely different orders.
[0050] Beginning at box 410, telemetry data is received from client device 100. In this example, resource monitor 120 is used to collect telemetry data associated with resource utilization through a background process running on client device 100. The background process implemented by resource monitor 120 uses a relatively small amount of processor resources, such that the background process does not substantially affect the foreground process running on client device 100. For example, resource monitor 120 may periodically take snapshots of resource utilization (such as processor capacity or memory utilization) after a predetermined period of time. The frequency is not limited, and it can be per second, per minute, per hour, per day, etc. Therefore, the user of client device 100 may not be aware that telemetry data is being collected during normal use of the device. In this example, telemetry data may include memory capacity and utilization levels.
[0051] Additional telemetry data can also be retrieved from the database 150 of the memory storage unit 115. For example, the database 150 may include telemetry data such as device information and component information. The device information may include company name, host name, PC model, PC manufacturer, date of birth, product type, etc., and the component information may include smart drive information, firmware revision, sector count, total capacity, capacity used, battery voltage, current, and charging capacity.
[0052] Box 420 includes determining multiple threshold limits based on telemetry data. In this example, the grading engine 20 performs calculations to generate the threshold limits. In this example, the threshold limits may define a rating map with multiple regions or classification groups, where each region defined by the threshold limits can be used to define a score for a client device. This score can be used to classify and group devices with different characteristics—such as resource capacity and average or median resource utilization—so that they are treated similarly in determining whether an upgrade is appropriate. For example, when the average or median resource utilization is determined to be a specific percentage, a client device with low resource capacity may be considered a high-utilization device. In contrast, when the average or median resource utilization is determined to be the same percentage as the former device, a client device with high resource capacity may be considered an average or low-utilization device. In this example, the latter device is considered to have a lower utilization due to the additional resource capacity.
[0053] Box 430 relates to calculating multiple threshold ranges based on the memory capacity of client device 100. In this example, a threshold range represents the distance between a pair of adjacent threshold limits of the memory capacity of client device 100. Therefore, each threshold range can represent a range of usage levels within a region of the rating map. (Reference) Figure 2 In the example rating mapping 300, when the resource capacity is assumed to be 16GB, the threshold ranges for regions 310-1, 310-2, 310-3, 310-4, 310-5, and 310-6 are [0-26.2464]; (26.2464-44.9920]; (44.9920-63.7376]; (63.7376-77.5088]; (77.5088-91.2544]; and (91.2544-100.0000).
[0054] Box 440 determines the score based on the usage level of client device 100 by mapping the score to multiple threshold ranges calculated at box 430. The method of determining the score is not particularly limited. Continuing with this example of score mapping 300 and the ranges determined at box 430, an example of client device score calculation has a median memory usage of 60%. In this example, a device with a memory usage level of 60% falls within region 310-3, which has a threshold range between 44.9920 and 63.7376. Therefore, a base score 3 can be associated with the client device. To determine the exact score of the client device, when the resource capacity is set to 16GB, this can be determined by using a linear regression through the threshold range. In this particular example, the threshold range is between 44.9920 and 63.7376. Since the median usage is assumed to be 60%, this represents 19.94% of the distance from the upper threshold 305-3 to the lower threshold 305-2. In this example, the exact value within the threshold range can be calculated by measuring the distance on the score map 300 within the threshold limits. Therefore, adding 19.94% to the base score 3 provides an exact score of 3.1994. In other examples...
[0055] Box 450 relates to implementing upgrades at the client device based on a score. For example, if the score determined at Box 440 exceeds a predetermined threshold, the client device can be considered underutilized and a good candidate for upgrade due to its ability to handle the additional resource demands from a software upgrade. The method of implementation is unrestricted. For example, a prompt can be generated for the user of the client device, prompting the user to take action to download and install the upgrade. In other examples, the upgrade can be pushed to the client device without further input from the user, such as for managed client devices, where a central management server applies policies to all client devices.
[0056] The various advantages will now become apparent to those skilled in the art. For example, system 200 provides a way in which apparatus 10 can determine a suitability metric (such as a score) based on telemetry data received from client device 100, in order to make an objective determination as to whether client device 100 is a good candidate for software upgrade.
[0057] Other applications of suitability metrics or scores generated by the diagnostic engine 25 are also considered. For example, determining that client device 100 has a high score (i.e., underutilized) may lead to client device 100 being reassigned to another user using more computing resources. The older client device can then be replaced by another client device with more limited hardware components (such as smaller memory capacity). Conversely, determining that client device 100 has a low score (i.e., overutilized) may indicate that the user should upgrade the hardware.
[0058] Specifically, this score can also be used in conjunction with machine learning techniques, such as logistic regression or clustering algorithms, to measure how well the device meets the user's needs. For example, machine learning algorithms can predict when a user might need a hardware upgrade and / or trigger alerts to advise administrators before the user begins experiencing performance issues due to hardware capacity. Furthermore, as an extension of this model, agents or applications can be installed on client devices to receive instructions to change configurations to improve the user experience, such as closing unused applications or stopping unused services or applications during periods of low scores.
[0059] It should be recognized that the features and aspects of the various examples provided above can be combined to form further examples that also fall within the scope of this disclosure.
Claims
1. An apparatus comprising: A communication interface for receiving telemetry data from a client device, wherein the telemetry data includes resource capacity and resource utilization level; A rating engine is used to generate rating maps that correlate resource utilization with resource capacity. The diagnostic engine communicates with the communication interface and the grading engine, wherein the diagnostic engine generates scores based on the application of the scoring map on the telemetry data; as well as An upgrade engine is used to enable upgrades at the client device based on a high score, where the high score indicates that the resource capacity is above the resource utilization level, thereby supporting the operation of the client device as the software is upgraded; The rating engine used to generate rating maps includes using the same rating maps from a mapping database for similar client devices; The scoring mapping includes multiple threshold limits, each based on a resource capacity value; the threshold limit selected from the multiple threshold limits based on a device identifier contained in the telemetry data is used to define the score; and the device identifier is used to determine the relationship between the threshold limit and the resource capacity value.
2. The apparatus according to claim 1, wherein the resource capacity is a memory capacity.
3. The apparatus of claim 1, wherein the communication interface receives a device identifier.
4. A method comprising: Receive telemetry data from the client device, wherein the telemetry data includes memory capacity and memory utilization level; A scoring mapping comprising multiple threshold limits is determined based on telemetry data, each threshold limit being based on a memory value; Calculate multiple threshold ranges based on memory capacity and multiple threshold limits; The score is defined by selecting a threshold limit from multiple threshold limits based on the device identifier contained in the telemetry data, and by determining the score based on the memory usage level and multiple threshold ranges. as well as Upgrades are implemented at the client device based on a high score, where the high score indicates that the memory capacity is higher than the memory utilization level, thus supporting the operation of the client device as the software is upgraded. Determining the rating mapping includes using the same rating mapping from the mapping database for similar client devices; The device identifier is used to determine the relationship between the threshold limit and the memory capacity value.
5. The method of claim 4, wherein implementing the upgrade includes implementing the upgrade if the score is higher than a predetermined threshold.
6. The method of claim 4, wherein determining the score comprises calculating a range percentage of memory usage levels within a threshold range of a plurality of threshold ranges.
7. The method of claim 6, wherein determining the score includes adding a range percentage to the base score.
8. A non-transitory machine-readable storage medium encoded with processor-executable instructions, the non-transitory machine-readable storage medium comprising: Instructions to receive telemetry data from a client device, wherein the telemetry data includes memory capacity and memory utilization level; Instructions for determining a first scoring mapping, including a first threshold limit, based on telemetry data; Instructions for determining a second scoring mapping, including a second threshold limit, based on telemetry data; Instructions for calculating the threshold range between the first threshold limit and the second threshold limit based on memory capacity; Instructions for determining a score based on a memory usage level and a threshold range by selecting a threshold limit from a first threshold limit and a second threshold limit based on a device identifier contained in telemetry data; as well as Upgrades are implemented at the client device based on a high score, where the high score indicates that the memory capacity is higher than the memory utilization level, thus supporting the operation of the client device as the software is upgraded. The instructions for determining the first rating map and the second rating map include using a first identical rating map and a second identical rating map from a mapping database for similar client devices; The device identifier is used to determine the relationship between the threshold limit and the memory capacity value.
9. The non-transitory machine-readable storage medium of claim 8, wherein the non-transitory machine-readable storage medium includes instructions to implement an upgrade if the score is higher than a predetermined threshold.
Citation Information
Patent Citations
Techniques for evaluating server system reliability, vulnerability and component compatibility using crowdsourced server and vulnerability data
US20170034023A1