Efficient Tracing and Versatile Analysis of Lock Contention in Java Applications on the Virtual Machine Level

  • Peter Hofer (Speaker)

Activity: Talk or presentationContributed talkunknown

Description

Concurrent programming has become a necessity in order to benefit from recent advances in processor design. However, implementing correct and scalable locking for accessing shared resources remains a challenge. Examining lock contention in an application at runtime is vital to determine where more sophisticated but error-prone locking pays off. In this paper, we present a novel approach for analyzing lock contention in Java applications by tracing locking events in the Java Virtual Machine. Unlike common methods, our approach observes not only when a thread is blocked on a lock, but also which other thread blocked it by holding that lock, and records both their call chains. This reveals the causes of lock contention instead of showing only its symptoms. We describe the techniques which we use to efficiently record trace events, metadata, and call chains. We present a versatile tool for the analysis of the traces which enables users to identify locking bottlenecks and their characteristics in an effective way. We implemented our approach in the widely used HotSpot Virtual Machine, and with a mean runtime overhead of 7.8%, we consider it efficient enough to monitor production systems.
Period16 Mar 2016
Event title7th Int'l Conference on Performance Engineering (ICPE'16)
Event typeConference
LocationNetherlandsShow on map

Fields of science

  • 102 Computer Sciences
  • 102022 Software development
  • 102025 Distributed systems

JKU Focus areas

  • Computation in Informatics and Mathematics
  • Engineering and Natural Sciences (in general)