Thread Dump Analysis Fundamentals - Part 1

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone my name is PA Charbonneau I'm an art the architect and also the author of the blog Joey support patterns to block paths calm so what I'm proposing to you over the next few weeks is a comprehensive JVM tread analysis training program so I've been getting a lot of emails recently about help about how to analyze tread dams and everything so I decided to publish a full comprehensive course on YouTube which I hope will really help your day-to-day work depending on which type of role you have in your IT organization ok so we're going to split the course in several parts just to help you absorb some of the content because some of the analysis can be a bit complex for the beginners especially for the beginners in the type of IT support type of role so I did essentially split the training in two main sections one which would be the basic training role map and one will be the advanced training as well once you acquire more experience so what are you going to be able to learn throughout this training well first we'll start with some of the JVM and tread down fundamentals ok which will start there shortly then we're going to show you how to generate tread dumps using tools and OS commands right and then we're going to dissect together with the tread um data and the format itself right for instance the format between Oracle hot spot and IBM g9 JVM and of course we're going to go to the analysis process and the recommended approach on how to go to at read them and of course we'll go through the stack trace analysis process which is quite important and how you should be looking from bottom up from the runtime structures that we're going to see ok once you're more on with the basic aspect of tread dump and how I can use you then we're going to deep dive into the advanced training program itself ok so that the scope of this training program will be the advanced techniques and other tools that were going to use like for example TDA but also still focusing on the raw data itself we're going to go to several problem patterns which is I think is going to be a key training for you there like for instance trade lock contention deadlocks and quite a few other type of problems as well which will show up in that red damp to help with with this fraud and patterns we're going to go to some several case studies of course we're going also to do problem simulations so I will set up two labs for you one on Linux and Solaris and possibly Windows as well and finally we're going I'm going to show you more tips and tricks I've been using for several years now with the trading analysis ok so I hope you all enjoyed this training program and I highly encourage you to post any comments and questions on my youtube channel as well thank you alright so let's get started with some of the tread down fundamentals so in case you did not have a chance to go to my blog just yet so I recommend that you do this right now even as a prerequisite to this training program so so you will see in the the blog there's actually a tread down menu item can simply click on it and I would recommend that you review some of the articles they already wrote on the trader molasses I think that would be a good starting point so in order to get some of the fundamentals for a tread down we'll start with a little bit of jvm overview which is essentially a reuse as some of the article they'll walk through with you here ok so tread them and yeah at the end of the day what we're trying to do is get a view and the health of the JVM for what the tread the actual Java treads and even at some points on the native treads or actually doing right so one of the diagram that I created for this article is actually I believe a good view of that type of interaction right in a typical G of M and var regardless of your role ravier Java developer or an IT support individual it's important that you understand a GVM fundamentals okay so JVM which then of course which have a virtual machine you will see that it can be quite complex interaction or ecosystem right between the applications so on the JVM itself you have several aspect to understand some of them which we'll cover in the next training sessions of course but essentially the JVM you get a Java heap itself with a native heap which I hope you're familiar by now with this concept otherwise we'll do a bit more overview in the next few training sessions and part of JVM we of course have the Java treads which are actually executing your application program and also the other let's say third party vendor or even Java container itself right so depending if you're probably you could be developing a stay on java application could be for sone desktop or most of you probably are involving enterprise level type of either support or development but also of course Java is common on other components including a mobile well as well so essentially as a lot of these principle quite common all all across the technologies there right and of course your the Java tree as I mentioned you have also some internal native and GC treads which we'll see later on and then you can see the JVM essentially into rack or the middle way actually itself would interact and reuse reuse of the JVM provided out-of-the-box features right like we're in for joy containers we can think about of course like some addy Apache Tomcat which is probably the most use serving container out there and then you have a enterprise level or commercial solution like Oracle WebLogic IBM WebSphere even reddit Jebus which has of course open source and a commercial version through the rIDOT support and of course part of middleware you have several services right could you could be using external web application or services or other components but essentially all these components will need to rely on on the JVM fundamentals right which include Java tread so for instance your application if you have one user doing a login right to your web applications well at some point a Java tread would be required to do this task right depending on how you design your application synchronous asynchronous essentially Java treads will be used for the processing which is why it's important right to record a JVM tramatic skill so you can have a view and understand how your application and Tareq with your user and more importantly understand bottlenecks and issues when they arise okay so just a bit of overview as I said which I find useful just to give you a bit more context while we need that type of analysis and then we'll get back for sound or fundamentals so another article that you will notice also is the port tree which is called hotspot vmg essentially what we'll dissect in the next few sessions since today we're just covering a high-level overview right so basically what is at read them right so essentially by now you probably already have an idea so essentially it's a it's a snapshot right of all the JVM threads running at a given time again it's a snapshot right it's not giving you necessarily it's not like a true profile trace it's not giving you all the execution path right for use case ready for one of you is giving you actually execution snapshot at a given time right which for your complete listing of all the treads as I just mentioned of course you have several a lot of data like a trend name type and priority trade ID native ID all the data is very useful with other techniques let's say you want to investigate issues like CPU problems and other type of problems shred them actually we'll help you form any type of problems or investigation so we will we're going to die second deep dive into these advents troubleshooting in the advanced training program but first of all we need to go to the basics we at least you get a good idea what this is all about and of course you have the Java tread stack trace right so each of the tread that you will see the tread them they have a each of them have their own runtime stack trace which which we'll review together and in certain format for let's see hot spot JVM 1.6 and above of course will get even a utilization of the Java heap itself which is very useful right because a lot of a lot of times sometimes yeah a lot of noise right in at read them which could be just a symptom of another problem like for you sense and if you're having Java heap memory problem sometime you look at the tread um and you think you have issues with tread ABC but I didn't I did these tread or just victim of the fact that the JVM the heap ran out of memory right so our again we're going to use these and review together these problem patterns in the end of this training program ok so let me complete this high-level teacher with just a breakdown of the tread them right which is typical format for for hot spot again high level and we're going to die sick raw data later on so G of M right essentially as I mentioned you will get a listing of your of course if your application is using a jelly container like Tomcat or J bus as I mentioned will get a multiple trade pools or breakdown of all the treads executing user requests of your application right and then you may get separate credits as well like separate program or main trail of the container and we're going to I'm going to identify you what this all means right because one of the key challenge will be for you to first you need to differentiate the application thread versus the container manage tread right otherwise you can spend like several hours trying to figure all that out but first you need to understand quickly the treads that you care about and filter out the one that you don't need right to focus right so that that's a key understanding otherwise you'll be spending too much time throughout the analysis process right and then of course a GVM as I mentioned here you will have internal JVM treads either hotspot or IBM g9 if using the IBM product itself and even the garbage collection treads for instance if you're using the parallel or the kind I wanted a comparator collector you gets on the parallel GC treads which will show up in the JVM tread them itself ok and of course a bit of data like jin-gi global references count and depending which format you use right so essentially that's high-level breakdown so essentially you get a lot of data a lot of treads spinning of the size of your application the time that you took the snapshot and then you need to try to make sense of all the data altogether which is exactly will be the goal here get at read them and for you to understand what this is all about so at the end of this training I think what you need to understand is ultimately you need to be able to get at read them yourself go through this data quickly right as I mentioned and hopefully should be able in just a few minutes to quickly parse through that tread down I will and and at least come up with a list of maybe one or two reason on what is this potential issue so I think that'd be a good way for you to size your achievement and in this training and and for that purpose all I'll get back with more case studies as well but first we'll start with some fundamentals ok so so that's it for the training for today for the next running session we'll deep dive into the fundamentals and I'll show an example of a tread dump data itself that we're going to dissect together okay well thank thank you and please treat you to post any comment have a good day
Info
Channel: Pierre-Hugues Charbonneau
Views: 53,940
Rating: undefined out of 5
Keywords: Java (Programming Language), Java Virtual Machine (Video Game Platform), Java Monitoring, Thread, Programming Language (Software Genre)
Id: 1qzHSEjU8Hc
Channel Id: undefined
Length: 13min 8sec (788 seconds)
Published: Sun Aug 02 2015
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.