IP Library Granted Patent US 9,727,406
Granted Patent B2
US 9,727,406 · App. 14/880,078 · Granted Aug 8, 2017

Mitigating crashes of an application server executing a monitoring agent

Inventors: Sebastian Ramirez (Portland, OR); Andrew Kent (Portland, OR)
Assignee: New Relic, Inc.
G06F11/079G06F11/0709G06F11/0754G06F11/0793G06F11/34G06F11/3409H04L43/04H04L43/0817
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,727,406
App. No.
14/880,078
Granted
Aug 8, 2017
Kind
B2
Abstract

A software circuit breaker observes an amount of free memory available in an application server and a duration of a garbage collection process performed by the application server. The application server executes an agent comprising a plurality of processes for monitoring performance of the application server. Based on the amount of free memory and duration of the garbage collection process, the circuit breaker anticipates a likely crash of the application server. In response to anticipating the likely crash, the circuit breaker disables one or more processes of the agent.

Claims (58)

1. A method for monitoring an application server, the method comprising:

observing an amount of free memory available in the application server and a duration of a garbage collection process performed by the application server, the application server executing an agent comprising a plurality of processes for monitoring performance of the application server, and wherein the duration of the garbage collection process represents a percentage of cycles of a processor of the application server occupied by the garbage collection process, and the amount of free memory represents a percentage of memory available to the application server that is free memory;

anticipating based on the duration of the garbage collection process and the amount of free memory, a likely crash of the application server; and

responsive to anticipating the likely crash, disabling one or more processes of the agent.

2. The method of claim 1 , wherein anticipating the likely crash comprises:

comparing the duration of the garbage collection process to a garbage collection threshold;

comparing the free memory to a memory threshold; and

responsive to the duration of the garbage collection process being above the garbage collection threshold and the free memory being below the memory threshold, anticipating the likely crash.

3. The method of claim 1 , wherein observing the duration of the garbage collection process comprises:

identifying a garbage collection process in a tenured memory pool of the application server, the tenured memory pool storing objects created by the application server that are above a threshold age; and

observing a duration of the identified garbage collection process.

4. The method of claim 3 , wherein identifying the garbage collection process in the tenured memory pool comprises:

observing a number of garbage collections performed by each of a plurality of garbage collection processes in the application server during a specified period of time; and

identifying a garbage collection process performing a least amount of collections as the garbage collection process in the tenured memory pool.

5. The method of claim 1 , further comprising:

after disabling the one or more processes of the agent, monitoring the amount of free memory available in the application server and the duration of the garbage collection process; and

enabling the one or more processes of the agent responsive to the amount of free memory being above a memory threshold and the duration of the garbage collection process being below a garbage collection threshold.

6. The method of claim 1 , wherein the agent monitors processes and response time of the application server.

7. The method of claim 1 , wherein the one or more processes of the agent include one or more high memory utilization processes.

8. A method for monitoring an application server, the method comprising:

observing an amount of free memory available in the application server and a duration of a garbage collection process performed by the application server, the application server executing an agent comprising a plurality of processes for monitoring performance of the application server;

anticipating based on the duration of the garbage collection process and the amount of free memory, a likely crash of the application server;

responsive to anticipating the likely crash, disabling one or more processes of the agent; and

sending a notification to the application server responsive to disabling the one or more processes of the agent.

9. The method of claim 8 , wherein anticipating the likely crash comprises:

comparing the duration of the garbage collection process to a garbage collection threshold;

comparing the free memory to a memory threshold; and

responsive to the duration of the garbage collection process being above the garbage collection threshold and the free memory being below the memory threshold, anticipating the likely crash.

10. The method of claim 8 , wherein the agent monitors processes and response time of the application server.

11. The method of claim 8 , wherein the one or more processes of the agent include one or more high memory utilization processes.

12. A non-transitory computer readable storage medium storing executable computer program instructions, the instructions when executed by a processor causing the processor to:

observe an amount of free memory available in the application server and a duration of a garbage collection process performed by the application server, the application server executing an agent comprising a plurality of processes for monitoring performance of the application server, and wherein the duration of the garbage collection process represents a percentage of cycles of a processor of the application server occupied by the garbage collection process, and the amount of free memory represents a percentage of memory available to the application server that is free memory;

anticipate based on the duration of the garbage collection process and the amount of free memory, a likely crash of the application server; and

responsive to anticipating the likely crash, disable one or more processes of the agent.

13. The non-transitory computer readable storage medium of claim 12 , wherein the instructions causing the processor to anticipate the likely crash comprise instructions that when executed by the processor cause the processor to:

compare the duration of the garbage collection process to a garbage collection threshold;

compare the free memory to a memory threshold; and

responsive to the duration of the garbage collection process being above the garbage collection threshold and the free memory being below the memory threshold, anticipate the likely crash.

14. The non-transitory computer readable storage medium of claim 12 , wherein the instructions causing the processor to observe the duration of the garbage collection process comprise instructions that when executed by the processor cause the processor to:

identify a garbage collection process in a tenured memory pool of the application server, the tenured memory pool storing objects created by the application server that are above a threshold age; and

observe a duration of the identified garbage collection process.

15. The non-transitory computer readable storage medium of claim 14 , wherein the instructions causing the processor to identify the garbage collection process in the tenured memory pool comprise instructions that when executed by the processor cause the processor to:

observe a number of garbage collections performed by each of a plurality of garbage collection processes in the application server during a specified period of time; and

identify a garbage collection process performing a least amount of collections as the garbage collection process in the tenured memory pool.

16. The non-transitory computer readable storage medium of claim 12 , further comprising instructions that when executed by the processor cause the processor to:

after disabling the one or more processes of the agent, monitor the amount of free memory available in the application server and the duration of the garbage collection process; and

enable the one or more processes of the agent responsive to the amount of free memory being above a memory threshold and the duration of the garbage collection process being below a garbage collection threshold.

17. The non-transitory computer readable storage medium of claim 12 , wherein the agent monitors processes and response time of the application server.

18. The non-transitory computer readable storage medium of claim 12 , wherein the one or more processes of the agent include one or more high memory utilization processes.

19. A non-transitory computer readable storage medium storing executable computer program instructions, the instructions when executed by a processor causing the processor to:

observe an amount of free memory available in the application server and a duration of a garbage collection process performed by the application server, the application server executing an agent comprising a plurality of processes for monitoring performance of the application server

anticipating based on the duration of the garbage collection process and the amount of free memory, a likely crash of the application server; and

responsive to anticipating the likely crash, disabling one or more processes of the agent;

sending a notification to the application server responsive to disabling the one or more processes of the agent.

20. The non-transitory computer readable storage medium of claim 19 , wherein anticipating the likely crash comprises:

comparing the duration of the garbage collection process to a garbage collection threshold;

comparing the free memory to a memory threshold; and

responsive to the duration of the garbage collection process being above the garbage collection threshold and the free memory being below the memory threshold, anticipating the likely crash.

Assignments (2)
SECURITY INTEREST Recorded Nov 8, 2023
From: NEW RELIC, INC.
To: BLUE OWL CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 065491/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2017
From: RAMIREZ, SEBASTIAN; KENT, ANDREW
To: NEW RELIC, INC.
Reel/Frame 042767/0996 →
Continuity (1)
Related Publication 20170102979A1 · Apr 13, 2017