Title
Continuously measuring critical section pressure with the free-lunch profiler
Abstract
Today, Java is regularly used to implement large multi-threaded server-class applications that use locks to protect access to shared data. However, understanding the impact of locks on the performance of a system is complex, and thus the use of locks can impede the progress of threads on configurations that were not anticipated by the developer, during specific phases of the execution. In this paper, we propose Free Lunch, a new lock profiler for Java application servers, specifically designed to identify, in-vivo, phases where the progress of the threads is impeded by a lock. Free Lunch is designed around a new metric, critical section pressure (CSP), which directly correlates the progress of the threads to each of the locks. Using Free Lunch, we have identified phases of high CSP, which were hidden with other lock profilers, in the distributed Cassandra NoSQL database and in several applications from the DaCapo 9.12, the SPECjvm2008 and the SPECjbb2005 benchmark suites. Our evaluation of Free Lunch shows that its overhead is never greater than 6%, making it suitable for in-vivo use.
Year
DOI
Venue
2014
10.1145/2660193.2660210
OOPSLA
Keywords
Field
DocType
locks,java,multicore,performance analysis,performance measures
Computer science,Lock (computer science),Critical section,Thread (computing),Multicore architecture,NoSQL,Multi-core processor,Java,Operating system,Application server
Conference
Volume
Issue
ISSN
49
10
0362-1340
Citations 
PageRank 
References 
17
0.81
21
Authors
4
Name
Order
Citations
PageRank
Florian David1732.90
Gaël Thomas 00012412.28
Julia Lawall3170.81
Gilles Muller485255.95