Overseer: Low-Level Hardware Monitoring and Management for Java

download Overseer: Low-Level Hardware Monitoring and Management for Java

If you can't read please download the document

Transcript of Overseer: Low-Level Hardware Monitoring and Management for Java

Tool Demonstration

web: http://sosoa.inf.unisi.chemail: [email protected]

Overseer: Low-Level Hardware Monitoring and Management for Java

Achille Peternier, Daniele Bonetta, Walter Binder, Cesare Pautasso

The Overseer library

The Overseer library

Developers/ApplicationsJava VMKernelCPUReality

The Overseer library

Today it is impossible to estimate performance: you have to measure it. Programming has become an empirical science.

Performance Anxiety: Performance analysis in the new millenniumJoshua Bloch, Google Inc.

The Overseer library

Developers/ApplicationsJava VMKernelCPUReality

Outline

The Overseer libraryOverHpcDemo: HW survey

Demo: HPC measurements

OverAgentDemo: threads and CPU usage monitoring

OverIpmiDemo: power consumption and thread scheduling

Conclusion

The Overseer library

Overseer

overseer.jarOverHpc

import ch.usi.overseer.OverHpcOverAgent

import ch.usi.overseer.OverAgent-agentpath=path2libOverIpmi

import ch.usi.overseer.OverIpmi

libpfmhwlocfreeipmiJVMTI

Operating System (Linux)Hardware

OverHpc

Hardware Performance Counters (HPCs)Cache misses, branch mispredictions, prefetch efficiency, etc.

Hardware SurveyUnderlying architectureNumber of available CPUs, cores, NUMA nodes

How are they aggregated

Scheduling managementChanging the way OS threads are assigned to cores for execution

OverHpc - Deployment

Local

Remote

1 CPU (Core2Duo)

2 Cores

2 Processing Units

2 GB RAM

4 CPUs (Nehalem-based esacore Xeon)

24 Cores (6 cores per CPU)

48 Processing Units (2 Hyperthreading units per core)

128 GB RAM (4 NUMA nodes, 32 GB each)

OverHpc - Demo

HW Architectural overview:

Extended version of Runtime.availableProcessors()

HPCs at work:

Enumerating available HPCs

Measuring hardware-level metrics during a CPU intensive task

OverAgent

JVMTI Native Agent

Intercepting thread creation/termination at the JVM levelSending notifications back to the application level

Monitoring CPU usage on a per thread-basis ( la unix top command)

Template for plug&play agents

OverAgent - Demo

Thread monitoring (including CPU usage):

Keeping track of threads spawning and their CPU usage

OverIpmi

Interfacing various hardware-level sensors commonly available on server-class machinesSystem temperatures, power consumption, etc.

* The Intelligent Platform Management Interface (IPMI) is a standardized computer system interface used by system administrators to manage a computer system and monitor its operation. (wiki)

OverIpmi - Demo

Per-core bindings and power consumption:

Computing Fibonacci series on several cores

First using a single CPU, then more

Overseer@work

Daniele Bonetta, Achille Peternier, Cesare Pautasso, and Walter Binder. A multicore-aware runtime architecture for scalable service composition. In Services Computing Conference (APSCC), 2010 IEEE Asia-Pacific, pages 83-90, dec. 2010.

Achille Peternier, Daniele Bonetta, Cesare Pautasso, and Walter Binder. Exploiting multicores to optimize business process execution. In Service-Oriented Computing and Applications (SOCA), 2010 IEEE International Conference on, pages 1-8, dec. 2010.

Daniele Bonetta, Achille Peternier, Cesare Pautasso, and Walter Binder. Towards scalable service composition on multicores. In Proceedings of the 2010 international conference on On the move to meaningful internet systems, OTM'10, pages 655-664, Berlin, Heidelberg, 2010. Springer-Verlag.

Conclusion

Links:Overseer library available here: http://sosoa.inf.unisi.ch

JOpera:
http://www.jopera.org

Contacts:email: [email protected]

Thank you!

Muokkaa otsikon tekstimuotoa napsauttamalla

Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso