IP Library Granted Patent US 8,683,079
Granted Patent B2
US 8,683,079 · App. 13/608,897 · Granted Mar 25, 2014

Systems and methods for determining metrics of machines providing services to requesting clients

Inventors: Eric Sven-Johan Swildens (Mountain View, CA); Richard David Day (Upton, MA); Ajit K. Gupta (Fremont, CA)
Assignee: Akamai Technologies, Inc.
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,683,079
App. No.
13/608,897
Granted
Mar 25, 2014
Kind
B2
Abstract

In one embodiment, a method for determining metrics of a content delivery and global traffic management network provides service metric probes that determine the service availability and metric measurements of types of services provided by a content delivery machine. A server in the network has a metric test associated with each service supported by the server which the service metric probes periodically performs metric tests on and records the metric test results which are periodically sent to all of the DNS servers in the network. Generic load probes also report metric test results. DNS servers use the test result updates to determine the best server to return for a given DNS name.

Claims (51)

1. A system, comprising:

a first machine operated by a service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor to provide a first service to requesting clients via a network interface, the first service being any of: HTTP service, HTTPS service, and FTP service;

a second machine operated by the service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor to provide a second service to requesting clients via a network interface, the second service being different than the first service;

a third machine operated by the service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor to determine a specific load metric that reflects load on the first machine for the first service, wherein the specific load metric is of a type that is specific to the first service;

the code on the third machine further being executable on the at least one hardware microprocessor to determine a generic load metric that reflects load on the second machine for the second service, wherein the generic load metric is of a type that is generic to the first and second services.

2. The system of claim 1 ,

wherein the first and second services are mapped to first and second hostnames, respectively,

the system further comprising a fourth machine operated by the service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor to provide a DNS service via a network interface, the DNS service determining a machine address to return to a requesting DNS client, so as to cause requests for content to be made to said determined machine address, wherein said determination is based at least in part on:

(i) the specific load metric, for a DNS request to resolve the first hostname; and

(ii) the generic load metric, for a DNS request to resolve the second hostname.

3. The system of claim 2 , wherein said determined machine address comprises an internet protocol (IP) address.

4. The system of claim 1 , wherein the specific load metric reflects performance of the first service as a user would experience the first service.

5. The system of claim 1 , wherein the specific load metric comprises a time to retrieve a Web page using the first service.

6. The system of claim 1 , wherein the generic load metric comprises any of CPU utilization and memory utilization of the second machine.

7. The system of claim 1 , wherein the first machine and the second machine are each one of a plurality of first machines and second machines, respectively, operated by the service provider on behalf of a plurality of customers who have content that is delivered to clients via at least one of the first and second machines.

8. The system of claim 1 , wherein the first machine comprises memory tangibly storing code that is executable on the first machine's at least one hardware microprocessor to run the first machine as a cache server storing content for delivery to requesting clients.

9. A system, comprising:

a first machine operated by a service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor to provide a first service to requesting clients via a network interface, the first service being a streaming media service;

a second machine operated by the service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor to provide a second service to requesting clients via a network interface, the second service being different than the first service;

a third machine operated by the service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor to determine a specific load metric that reflects load on the first machine for the first service, wherein the specific load metric is of a type that is specific to the first service;

the code on the third machine further being executable on the at least one hardware microprocessor to determine a generic load metric that reflects load on the second machine for the second service, wherein the generic load metric is of a type that is generic to the first and second services.

10. The system of claim 9 ,

wherein the first and second services are mapped to first and second hostnames, respectively,

the system further comprising a fourth machine operated by the service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor to provide a DNS service via a network interface, the DNS service determining a machine address to return to a requesting DNS client, so as to cause requests for content to be made to said determined machine address, wherein said determination is based at least in part on:

(i) the specific load metric, for a DNS request to resolve the first hostname; and

(ii) the generic load metric, for a DNS request to resolve the second hostname.

11. The system of claim 10 , wherein said determined machine address comprises an internet protocol (IP) address.

12. The system of claim 9 , wherein the specific load metric reflects performance of the first service as a user would experience the first service.

13. The system of claim 9 , wherein the generic load metric comprises any of CPU utilization and memory utilization of the second machine.

14. The system of claim 9 , wherein the first machine and the second machine are each one of a plurality of first machines and second machines, respectively, operated by the service provider on behalf of a plurality of customers who have content that is delivered to clients via at least one of the first and second machines.

15. The system of claim 9 , wherein the first machine comprises memory tangibly storing code that is executable on the first machine's at least one hardware microprocessor to run the first machine as a cache server storing content for delivery to requesting clients.

16. A method, comprising:

receiving requests from clients for a first service that comprises any of: HTTP service, HTTPS service, and FTP service, by a first machine operated by a service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor to provide the first service;

receiving requests from clients for a second service different than the first service, by a second machine operated by a service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor to provide the second service;

with a third machine operated by the service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor, determining a specific load metric that reflects load on the first machine for the first service, wherein the specific load metric is of a type that is specific to the first service;

with the third machine, determining a generic load metric that reflects load on the second machine for the second service, wherein the generic load metric is of a type that is generic to the first and second services.

17. The method of claim 16 , further comprising:

wherein the first and second services are mapped to first and second hostnames, respectively,

the method further comprising, with a fourth machine operated by the service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor, providing a DNS service via a network interface, and as part of the DNS service, determining a machine address to return to a requesting DNS client, so as to cause requests for content to be made to said determined machine address, wherein said determination is based at least in part on:

(i) the specific load metric, for a DNS request to resolve the first hostname; and

(ii) the generic load metric, for a DNS request to resolve the second hostname.

18. A method, comprising:

receiving requests from clients for a first service that comprises a streaming media service, by a first machine operated by a service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor to provide the first service;

receiving requests from clients for a second service different than the first service, by a second machine operated by a service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor to provide the second service;

with a third machine operated by the service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor, determining a specific load metric that reflects load on the first machine for the first service, wherein the specific load metric is of a type that is specific to the first service;

with the third machine, determining a generic load metric that reflects load on the second machine for the second service, wherein the generic load metric is of a type that is generic to the first and second services.

19. The method of claim 18 , further comprising:

wherein the first and second services are mapped to first and second hostnames, respectively,

the method further comprising, with a fourth machine operated by the service provider and comprising at least one hardware microprocessor coupled to memory storing code that is executable on the at least one hardware microprocessor, providing a DNS service via a network interface, and as part of the DNS service, determining a machine address to return to a requesting DNS client, so as to cause requests for content to be made to said determined machine address, wherein said determination is based at least in part on:

(i) the specific load metric, for a DNS request to resolve the first hostname; and

(ii) the generic load metric, for a DNS request to resolve the second hostname.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2014
From: SWILDENS, ERIC SVEN-JOHAN; DAY, RICHARD DAVID; GUPTA, AJIT K.
To: SPEEDERA NETWORKS, INC.
Reel/Frame 032167/0924 →
MERGER Recorded Feb 7, 2014
From: SPEEDERA NETWORKS, INC.
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 032167/0965 →
Continuity (10)
Continuation 13419723 · Mar 14, 2012
Continuation 12986055 · Jan 6, 2011
Continuation 12426952 · Apr 20, 2009
Continuation 09909711 · Jul 19, 2001
Continuation In Part 09641746 · Aug 18, 2000
Provisional Application 60219172 · Jul 19, 2000
Provisional Application 60219166 · Jul 19, 2000
Provisional Application 60219946 · Jul 19, 2000
Provisional Application 60219177 · Jul 19, 2000
Related Publication 20130198387A1 · Aug 1, 2013