IP Library › Granted Patent US 9,998,347
Granted Patent B2
US 9,998,347 · App. 14/447,856 · Granted Jun 12, 2018

Monitoring device usage

Inventor: Bruce McNutt (Gilroy, CA)
Assignee: International Business Machines Corporation
H04L43/0876H04L43/0817H04L43/16G06F11/3409G06F11/3495G06F2201/88
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,998,347
App. No.
14/447,856
Granted
Jun 12, 2018
Kind
B2
Abstract

Monitoring a level of utilization is provided. An initial numerical range based, at least in part, on a count of service channels of a device is determined. A candidate numerical range, defined by an upper value and a lower value, based, at least in part, on the initial numerical range, is determined. A level of utilization of a first measurement interval of the device is estimated by: repeatedly updating the lower value and the upper value based, at least in part, on the level of utilization, until the lower value and the upper value differ less than a pre-determined threshold; and determining an estimated level of utilization based, at least in part, on the lower value and the upper value. The estimated level of utilization is reported.

Claims (104)

1. A method for monitoring a level of utilization, the method comprising:

determining, by one or more processors, an initial numerical range based, at least in part, on a count of service channels of a device, wherein:

the service channels comprise embedded processors;

the count of service channels are a measure of a level of concurrency; and

the level of concurrency is a capacity of the device to process operations concurrently;

determining, by one or more processors, a candidate numerical range, defined by an upper value and a lower value, based, at least in part, on the initial numerical range;

determining, by one or more processors, a tipping point, based on the count of service channels, wherein the tipping point is a level of utilization at which a probability of a new request being queued equals the probability of being assigned immediately to a service channel;

estimating, by one or more processors, a level of utilization of a first measurement interval of the device by:

repeatedly updating, by one or more processors, the lower value and the upper value based, at least in part, on the level of utilization, until the lower value and the upper value differ less than a pre-determined threshold; and

determining, by one or more processors, an estimated level of utilization based, at least in part, on the lower value and the upper value; and

reporting, by one or more processors, the estimated level of utilization.

2. The method of claim 1 , further comprising:

subsequent to reporting the estimated level of utilization:

determining, by one or more processors, that the count of service channels has not changed;

estimating, by one or more processors, a level of utilization of a second measurement interval of the device by:

determining a second candidate numerical range of the second measurement interval based on the candidate numerical range of the first measurement interval, wherein the second candidate numerical range is defined by a second lower value and a second upper value;

repeatedly updating, by one or more processors, the second lower value and the second upper value based, at least in part, on the level of utilization, until the level of utilization is within the candidate numerical range and the second lower value and the second upper value differ less than a pre-determined threshold;

determining, by one or more processors, an updated estimated level of utilization based, at least in part, on the second lower value and the second upper value; and

reporting, by one or more processors, the updated estimated level of utilization.

3. The method of claim 1 , further comprising:

responsive to detecting, by one or more processors, a change in the count of service channels of the device, re-determining, by one or more processors, the initial numerical range based on the change in the count of service channels, and repeating:

determining the candidate numerical range;

estimating the level of utilization; and

reporting the estimated level of utilization.

4. The method of claim 1 , further comprising:

responsive to determining, by one or more processors, that the level of utilization is within the candidate numerical range:

determining, by one or more processors, an intermediate boundary value between the upper value and the lower value;

determining, by one or more processors, whether the level of utilization exceeds the intermediate boundary value; and

updating, by one or more processors, the candidate numerical range based on the intermediate boundary value.

5. The method of claim 1 , further comprising:

responsive to determining, by one or more processors, that the level of utilization is greater than the upper value, determining, by one or more processors, the estimated level of utilization based, at least in part, on the upper value, a number of outstanding requests of the device, and the count of service channels of the device.

6. The method of claim 1 , further comprising:

responsive to determining, by one or more processors, that the level of utilization is less than the lower value, determining, by one or more processors, the estimated level of utilization based, at least in part, on the lower value, a number of outstanding requests of the device, and the count of service channels of the device.

7. A computer program product for monitoring a level of utilization, the computer program product comprising:

a computer readable storage medium and program instructions stored on the computer readable storage medium, wherein the computer readable storage medium is not a transitory signal per se, the program instructions comprising:

program instructions to determine an initial numerical range based, at least in part, on a count of service channels of a device, wherein:

the service channels comprise embedded processors;

the count of service channels are a measure of a level of concurrency; and

the level of concurrency is a capacity of the device to process operations concurrently;

program instructions to determine a candidate numerical range, defined by an upper value and a lower value, based, at least in part, on the initial numerical range;

program instructions to determine a tipping point, based on the count of service channels, wherein the tipping point is a level of utilization at which a probability of a new request being queued equals the probability of being assigned immediately to a service channel;

program instructions to estimate a level of utilization of a first measurement interval of the device by:

program instructions to repeatedly update the lower value and the upper value based, at least in part, on the level of utilization, until the lower value and the upper value differ less than a pre-determined threshold; and

program instructions to determine an estimated level of utilization based, at least in part, on the lower value and the upper value; and

program instructions to report the estimated level of utilization.

8. The computer program product of claim 7 , wherein the program instructions further comprise:

subsequent to the program instructions to report the estimated level of utilization:

program instructions to determine that the count of service channels has not changed;

program instructions to estimate a level of utilization of a second measurement interval of the device by:

program instructions to determine a second candidate numerical range of the second measurement interval based on the candidate numerical range of the first measurement interval, wherein the second candidate numerical range is defined by a second lower value and a second upper value;

program instructions to repeatedly update the second lower value and the second upper value based, at least in part, on the level of utilization, until the level of utilization is within the candidate numerical range and the second lower value and the second upper value differ less than a pre-determined threshold;

program instructions to determine an updated estimated level of utilization based, at least in part, on the second lower value and the second upper value; and

program instructions to report the updated estimated level of utilization.

9. The computer program product of claim 7 , wherein the program instructions further comprise:

program instructions to, responsive to detecting a change in the count of service channels of the device, re-determine the initial numerical range based on the change in the count of service channels, and repeating the program instructions to:

determine the candidate numerical range;

estimate the level of utilization; and

report the estimated level of utilization.

10. The computer program product of claim 7 , wherein the program instructions further comprise:

program instructions to, responsive to determining that the level of utilization is within the candidate numerical range:

determine an intermediate boundary value between the upper value and the lower value;

determine whether the level of utilization exceeds the intermediate boundary value; and

update the candidate numerical range based on the intermediate boundary value.

11. The computer program product of claim 7 , wherein the program instructions further comprise:

program instructions to, responsive to determining that the level of utilization is greater than the upper value, determine the estimated level of utilization based, at least in part, on the upper value, a number of outstanding requests of the device, and the count of service channels of the device.

12. The computer program product of claim 7 , wherein the program instructions further comprise:

program instructions to, responsive to determining that the level of utilization is less than the lower value, determine the estimated level of utilization based, at least in part, on the lower value, a number of outstanding requests of the device, and the count of service channels of the device.

13. The computer program product of claim 7 , wherein the program instructions are executed by one or more embedded processors of the device.

14. A computer system for monitoring a level of utilization, the computer system comprising:

one or more computer processors;

one or more computer readable storage media;

program instructions stored on the computer readable storage media for execution by at least one of the one or more processors, the program instructions comprising:

program instructions to determine an initial numerical range based, at least in part, on a count of service channels of a device, wherein:

the service channels comprise embedded processors;

the count of service channels are a measure of a level of concurrency; and

the level of concurrency is a capacity of the device to process operations concurrently;

program instructions to determine a candidate numerical range, defined by an upper value and a lower value, based, at least in part, on the initial numerical range;

program instructions to determine a tipping point, based on the count of service channels, wherein the tipping point is a level of utilization at which a probability of a new request being queued equals the probability of being assigned immediately to a service channel;

program instructions to estimate a level of utilization of a first measurement interval of the device by:

program instructions to repeatedly update the lower value and the upper value based, at least in part, on the level of utilization, until the lower value and the upper value differ less than a pre-determined threshold; and

program instructions to determine an estimated level of utilization based, at least in part, on the lower value and the upper value; and

program instructions to report the estimated level of utilization.

15. The computer system of claim 14 , wherein the program instructions further comprise:

subsequent to the program instructions to report the estimated level of utilization:

program instructions to determine that the count of service channels has not changed;

program instructions to estimate a level of utilization of a second measurement interval of the device by:

program instructions to determine a second candidate numerical range of the second measurement interval based on the candidate numerical range of the first measurement interval, wherein the second candidate numerical range is defined by a second lower value and a second upper value;

program instructions to repeatedly update the second lower value and the second upper value based, at least in part, on the level of utilization, until the level of utilization is within the candidate numerical range and the second lower value and the second upper value differ less than a pre-determined threshold;

program instructions to determine an updated estimated level of utilization based, at least in part, on the second lower value and the second upper value; and

program instructions to report the updated estimated level of utilization.

16. The computer system of claim 14 , wherein the program instructions further comprise:

program instructions to, responsive to detecting a change in the count of service channels of the device, re-determine the initial numerical range based on the change in the count of service channels, and repeating the program instructions to:

determine the candidate numerical range;

estimate the level of utilization; and

report the estimated level of utilization.

17. The computer system of claim 14 , wherein the program instructions further comprise:

program instructions to, responsive to determining that the level of utilization is within the candidate numerical range:

determine an intermediate boundary value between the upper value and the lower value;

determine whether the level of utilization exceeds the intermediate boundary value; and

update the candidate numerical range based on the intermediate boundary value.

18. The computer system of claim 14 , wherein the program instructions further comprise:

program instructions to, responsive to determining that the level of utilization is greater than the upper value, determine the estimated level of utilization based, at least in part, on the upper value, a number of outstanding requests of the device, and the count of service channels of the device.

19. The computer system of claim 14 , wherein the program instructions further comprise:

program instructions to, responsive to determining that the level of utilization is less than the lower value, determine the estimated level of utilization based, at least in part, on the lower value, a number of outstanding requests of the device, and the count of service channels of the device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2014
From: MCNUTT, BRUCE
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033432/0201 →
Continuity (1)
Related Publication 20160036677A1 · Feb 4, 2016