Analyzing Java Thread Dumps
Thread dumps are one of the most valuable tools a troubleshooter can have in their toolset. This course will teach you everything there is to know about Java thread dumps, and familiarize you with other popular advanced troubleshooting tools.
What you'll learn
When troubleshooting software, you either know precisely what the problem is, or you don't know anything at all. As programs become smarter and faster, troubleshooting with precision is becoming more and more challenging. In this course, Analyzing Java Thread Dumps, you will learn foundational knowledge of analyzing Java thread dumps and gain the skills required for tackling complex issues with confidence. First, you will learn how to read a thread dump, and how a thread dump is structured. Next, you will discover just how indispensable thread dumps are when you need to dig deeper into an issue, and how they can consistently put you ahead of the problem. Finally, you will see how to gather valuable, thread-oriented analytics from the operating system itself using tools such as "top", "strace", "lsof", and more. When you’re finished with this course, you will have the skills and knowledge needed to troubleshoot the most complex software issues that come your way.
Table of contents
- Introduction 2m
- Filesystem Read/write Mechanics in Java 3m
- The Demo Code, Part 1 2m
- The Demo Environment - Linux ״cgroups״ 2m
- The Demo Code, Part 2 2m
- Demo Part 1 - The Problem 2m
- Demo Part 2 - Thread Stagnation 6m
- Demo Part 3 - Debunking Thread Stagnation 6m
- Demo Part 4 - Using "Top" to Find I/O-bound Processes 3m
- Introduction 1m
- What Is a Deadlock? 2m
- Connection Pools 2m
- Intro to the Demo - Bearer Authentication 1m
- The Code and the Problem 3m
- Capturing the Thread Dump 1m
- Analyzing the First Thread 2m
- The Code Part 1 - The Loading Cache 3m
- The Code Part 2 - HTTP Connections 3m
- The Code Part 3 - The Loading Cache Read-lock 1m
- Analyzing the Second Thread 1m
- Summary and Conclusions 2m