IP Library Granted Patent US 9,836,320
Granted Patent B2
US 9,836,320 · App. 15/067,625 · Granted Dec 5, 2017

Collecting performance metrics from java virtual machines

Inventor: Nigel V. Williams (Agoura Hills, CA)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/45558G06F2009/45583G06F2009/45591
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,836,320
App. No.
15/067,625
Granted
Dec 5, 2017
Kind
B2
Abstract

Embodiments include methods, and computing systems, and computer program products for collecting performance metrics from Java virtual machines. Aspects include: setting up a virtual storage structure of a collector on a computing system for collecting performance metrics data from one or more Java virtual machines, pushing, at each of Java virtual machines through a corresponding performance monitoring Java agent, performance metrics data collected by the Java virtual machine to the virtual storage structure of collector, pulling, at a performance monitoring system through a collector API, the performance metrics data collected by the plurality of Java virtual machines from the virtual storage structure of the collector, analyzing the performance metrics data pulled from the virtual storage structure of the collector by the performance monitoring system, and generating, at the performance monitoring system, a performance alert when the performance metrics data analyzed indicates one or more system abnormalities.

Claims (74)

1. A method of collecting performance metrics data from Java virtual machines, comprising:

setting up a virtual storage structure of a collector on a computing system for collecting performance metrics data from a plurality of Java virtual machines;

pushing, at each of the plurality of Java virtual machines through a corresponding performance monitoring Java agent, performance metrics data collected by the Java virtual machine to the virtual storage structure of the collector;

pulling, at a performance monitoring system through a collector application programming interface (API), the performance metrics data collected by the plurality of Java virtual machines from the virtual storage structure of the collector;

analyzing the performance metrics data pulled from the virtual storage structure of the collector by the performance monitoring system; and

generating, by the performance monitoring system, a performance alert when the performance metrics data analyzed indicates one or more system abnormalities; wherein setting up a virtual storage structure comprises:

setting up a global vector table (GVT) and structures for storing performance metrics data collected from each of the plurality of Java virtual machines, a program call (PC) routine, and a system-wide addressable name-token with a unique name comprising a collector identifier (ID), and a token having a PC number, a GVT address and an address space token (STOKEN).

2. The method of claim 1 , wherein pushing performance metrics data comprises:

pushing the performance metrics data collected by the Java virtual machine to the virtual storage structure of the collector through a low-level cross-memory service.

3. The method of claim 1 , wherein pushing performance metrics data comprises:

pushing the performance metrics data collected by the Java virtual machine to the virtual storage structure of the collector continuously.

4. The method of claim 1 , wherein pulling performance metrics data comprises:

pulling the performance metrics data collected by the plurality of Java virtual machines from the virtual storage structure of the collector periodically in a predetermined interval.

5. The method of claim 1 , wherein pulling performance metrics data comprises:

a historical collection;

a situation collection; and

an interactive collection.

6. The method of claim 1 , wherein the performance metrics data comprises:

garbage collection performance;

threads and locking details;

system response time;

system throughput;

central processing unit (CPU) utilization;

memory utilization; and

Java virtual machine environment details.

7. A computing system comprising a memory storing computer-executable instructions for the computing system, and a processor for executing the computer-executable instructions, the computer-executable instructions comprising:

setting up a virtual storage structure of a collector on the computing system for collecting performance metrics data from a plurality of Java virtual machines;

pushing, at each of the plurality of Java virtual machines through a corresponding performance monitoring Java agent, performance metrics data collected by the Java virtual machine to the virtual storage structure of the collector;

pulling, at a performance monitoring system through a collector API, the performance metrics data collected by the plurality of Java virtual machines from the virtual storage structure of the collector;

analyzing the performance metrics data pulled from the virtual storage structure of the collector by the performance monitoring system; and

generating, by the performance monitoring system, a performance alert when the performance metrics data analyzed indicates one or more system abnormalities; wherein setting up a virtual storage structure comprises:

setting up a global vector table (GVT) and structures for storing performance metrics data collected from each of the plurality of Java virtual machines, a program call (PC) routine, and a system-wide addressable name-token with a unique name comprising a collector identifier (ID), and a token having a PC number, a GVT address and an address space token (STOKEN).

8. The computing system of claim 7 , wherein pushing performance metrics data comprises:

pushing the performance metrics data collected by the Java virtual machine to the virtual storage structure of the collector through a low-level cross-memory service.

9. The computing system of claim 7 , wherein pushing performance metrics data comprises:

pushing the performance metrics data collected by the Java virtual machine to the virtual storage structure of the collector continuously.

10. The computing system of claim 7 , wherein pulling performance metrics data comprises:

pulling the performance metrics data collected by the plurality of Java virtual machines from the virtual storage structure of the collector periodically in a predetermined interval.

11. The computing system of claim 7 , wherein pulling performance metrics data comprises:

a historical collection;

a situation collection; and

an interactive collection.

12. The computing system of claim 7 , wherein the performance metrics data comprises:

garbage collection performance;

threads and locking details;

system response time;

system throughput;

CPU utilization;

memory utilization; and

Java virtual machine environment details.

13. A computer program product for collecting performance metrics data from Java virtual machines, comprising a computer-readable storage medium having computer-executable instructions embodied therewith, when executed by a processor on the computing system, the computer-executable instructions cause the processor to perform:

setting up a virtual storage structure of a collector on the computing system for collecting performance metrics data from a plurality of Java virtual machines;

pushing, at each of the plurality of Java virtual machines through a corresponding performance monitoring Java agent, performance metrics data collected by the Java virtual machine to the virtual storage structure of the collector;

pulling, at a performance monitoring system through a collector API, the performance metrics data collected by the plurality of Java virtual machines from the virtual storage structure of the collector;

analyzing the performance metrics data pulled from the virtual storage structure of the collector by the performance monitoring system; and

generating, by the performance monitoring system, a performance alert when the performance metrics data analyzed indicates one or more system abnormalities; wherein setting up a virtual storage structure comprises:

setting up a global vector table (GVT) and structures for storing performance metrics data collected from each of the plurality of Java virtual machines, a program call (PC) routine, and a system-wide addressable name-token with a unique name comprising a collector identifier (ID), and a token having a PC number, a GVT address and an address space token (STOKEN).

14. The computer program product of claim 13 , wherein pushing performance metrics data comprises:

pushing the performance metrics data collected by the Java virtual machine to the virtual storage structure of the collector through a low-level cross-memory service; and

pushing the performance metrics data collected by the Java virtual machine to the virtual storage structure of the collector continuously.

15. The computer program product of claim 13 , wherein pulling performance metrics data comprises:

pulling the performance metrics data collected by the plurality of Java virtual machines from the virtual storage structure of the collector periodically in a predetermined interval.

16. The computer program product of claim 13 , wherein pulling performance metrics data comprises:

a historical collection;

a situation collection; and

an interactive collection.

17. The computer program product of claim 13 , wherein the performance metrics data comprises:

garbage collection performance;

threads and locking details;

system response time;

system throughput;

CPU utilization;

memory utilization; and

Java virtual machine environment details.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2016
From: WILLIAMS, NIGEL V.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037956/0262 →
Continuity (1)
Related Publication 20170262304A1 · Sep 14, 2017