IP Library Granted Patent US 8,863,144
Granted Patent B2
US 8,863,144 · App. 12/723,914 · Granted Oct 14, 2014

Method and apparatus for determining resources consumed by tasks

Inventors: Arun Kwangil Iyengar (Yorktown Heights, NY); Hongbo Jiang (Wuhan, CN); Erich M. Nahum (New York, NY); Wolfgang Segmuller (Valhalla, NY); Asser Nasreldin Tantawi (Somers, NY); Charles P. Wright (Cortlandt Manor, NY)
Assignee: International Business Machines Corporation
G06F9/46G06F9/505G06F2209/501G06F2209/5019
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 8,863,144
App. No.
12/723,914
Granted
Oct 14, 2014
Kind
B2
Abstract

In a computer system comprising a plurality of computing devices wherein the plurality of computing devices processes a plurality of tasks and each task has a task type, a method for determining overheads associated with task types comprises the following steps. Overheads are estimated for a plurality of task types. One of the plurality of computing devices is selected to execute one of the plurality of tasks, wherein the selection comprises estimating load on at least a portion of the plurality of computing devices from tasks assigned to at least a portion of the plurality of computing devices and the estimates of overheads of the plurality of task types. One or more of the estimates of overheads of the plurality of task types are varied.

Claims (38)

1. In a computer system comprising a plurality of computing devices wherein the plurality of computing devices processes a plurality of tasks, a method for determining overheads associated with task types comprising the steps of:

estimating overheads for the plurality of tasks wherein each task has a task type and the plurality of tasks has a plurality of task types;

selecting one of the plurality of computing devices to execute one of the plurality of tasks, wherein the selection comprises estimating load on at least a portion of the plurality of computing devices from tasks assigned to at least a portion of the plurality of computing devices that are waiting to be executed and the estimates of overheads of the plurality of task types;

collecting rates at which the system can process tasks for the estimates of overheads of the plurality of task types for a period;

varying one or more of the estimates of overheads of the plurality of task types and continuing collection of the rates at which the system can process the tasks as the one or more estimates of overheads are varied over one or more periods until a set of estimates resulting in a maximal rate at which the system can process tasks is determined; and

using the set of estimates resulting in the maximal rate at which the system can process tasks to determine at least one absolute overhead for the task.

2. The method of claim 1 , wherein the overheads comprise relative overheads whereby the overhead for a first task type is defined relative to the overhead of a second task type.

3. The method of claim 1 , wherein the step of selecting one of the plurality of computing devices to execute one of the plurality of tasks is based on a least-work-left load balancing algorithm.

4. The method of claim 3 , wherein the-least-work-left load balancing algorithm estimates work that a given computing device has to do based on a number of requests assigned to the given computing device but not yet completed by the given computing device.

5. The method of claim 3 , wherein the least-work-left load balancing algorithm takes into consideration relative overheads associated with different requests.

6. The method of claim 1 , wherein the plurality of tasks comprise Session Initiation Protocol (SIP) requests.

7. The method of claim 6 , wherein the overheads comprise overheads of INVITE and BYE requests.

8. The method of claim 1 , wherein the plurality of tasks comprise HyperText Transfer Protocol (HTTP) requests.

9. The method of claim 1 , wherein the computer system further comprises a load balancer and the plurality of computing devices comprise servers and wherein the load balancer assigns requests to servers using a least-work-left algorithm.

10. The method of claim 1 , wherein the computer system further comprises a load balancer and the plurality of computing devices comprise servers and wherein the load balancer assigns requests to servers using a transaction-least-work-left algorithm.

11. In a computer system comprising a plurality of computing devices wherein the plurality of computing devices processes a plurality of tasks, an apparatus for determining overheads associated with task types comprising:

a memory; and

one or more processors coupled to the memory and configured to:

estimate overheads for the plurality of tasks wherein each task has a task type and the plurality of tasks has a plurality of task types;

select one of the plurality of computing devices to execute one of the plurality of tasks, wherein the selection comprises estimating load on at least a portion of the plurality of computing devices from tasks assigned to at least a portion of the plurality of computing devices that are waiting to be executed and the estimates of overheads of the plurality of task types;

collect rates at which the system can process tasks for the estimates of overheads of the plurality of task types for a period;

vary one or more of the estimates of overheads of the plurality of task types and continue collection of the rates at which the system can process the tasks as the one or more estimates of overheads are varied over one or more periods until a set of estimates resulting in a maximal rate at which the system can process tasks is determined; and

use the set of estimates resulting in the maximal rate at which the system can process tasks to determine at least one absolute overhead for the task.

12. The apparatus of claim 11 , wherein the overheads comprise relative overheads whereby the overhead for a first task type is defined relative to the overhead of a second task type.

13. The apparatus of claim 11 , wherein the selection of one of the plurality of computing devices to execute one of the plurality of tasks is based on a least-work-left load balancing algorithm.

14. The apparatus of claim 13 , wherein the-least-work-left load balancing algorithm estimates work that a given computing device has to do based on a number of requests assigned to the given computing device but not yet completed by the given computing device.

15. The apparatus of claim 13 , wherein the least-work-left load balancing algorithm takes into consideration relative overheads associated with different requests.

16. The apparatus of claim 11 , wherein the plurality of tasks comprise Session Initiation Protocol (SIP) requests.

17. The apparatus of claim 16 , wherein the overheads comprise overheads of INVITE and BYE requests.

18. The apparatus of claim 11 , wherein the plurality of tasks comprise HyperText Transfer Protocol (HTTP) requests.

19. The apparatus of claim 11 , wherein requests are assigned to the plurality of computing devices using a least-work-left algorithm.

20. The apparatus of claim 11 , wherein requests are assigned to the plurality of computing devices using a transaction-least-work-left algorithm.

21. An article of manufacture for determining overheads associated with task types in a computer system comprising a plurality of computing devices wherein the plurality of computing devices processes a plurality of tasks, the article of manufacture comprising a non-transitory computer readable storage medium tangibly embodying a computer readable program code which, when executed, causes one or more computers to:

estimate overheads for the plurality of tasks wherein each task has a task type and the plurality of tasks has a plurality of task types;

select one of the plurality of computing devices to execute one of the plurality of tasks, wherein the selection comprises estimating load on at least a portion of the plurality of computing devices from tasks assigned to at least a portion of the plurality of computing devices that are waiting to be executed and the estimates of overheads of the plurality of task types;

collect rates at which the system can process tasks for the estimates of overheads of the plurality of task types for a period;

vary one or more of the estimates of overheads of the plurality of task types and continue collection of the rates at which the system can process the tasks as the one or more estimates of overheads are varied over one or more periods until a set of estimates resulting in a maximal rate at which the system can process tasks is determined; and

use the set of estimates resulting in the maximal rate at which the system can process tasks to determine at least one absolute overhead for the task.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2010
From: IYENGAR, ARUN KWANGIL; JIANG, HONGBO; NAHUM, ERICH M.; SEGMULLER, WOLFGANG; TANTAWI, ASSER NASRELDIN; WRIGHT, CHARLES P.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024080/0457 →
Continuity (1)
Related Publication 20110225594A1 · Sep 15, 2011