Samsung Research America held a two-day onsite training on 'JVM Performance Engineering & Troubleshooting' for their performance engineering team in Mountain View, California. The session featured active participation from attendees. The trainers received a positive evaluation with a 5-star rating from Samsung’s Learning & Development department, acknowledging their effective presentation.
Java.lang.VirtualMachineError occurs when the Java virtual machine faces internal issues or resource limitations. This mechanism prevents application crashes. There are four types: OutOfMemoryError, StackOverflowError, InternalError, and UnknownError, each triggered by specific reasons. Understanding and diagnosing these errors with appropriate tools is essential for solutions.
This article provides a simplified troubleshooting strategy for diagnosing CPU spikes in cloud environments. It outlines a three-step process: identifying high CPU-consuming threads, capturing thread dumps, and analyzing the dumps to trace the problematic lines of code. The example illustrates how a non-terminating loop causes CPU spikes in an application.
FastThread offers a REST API for Java thread dump analysis, useful for application monitoring and code quality assessment during CI/CD. The document details using Postman to invoke the API, including steps to install Postman, set the request method, input the URL, and upload thread dump files. Additional features are also mentioned.
Thread dump files are often lengthy and complex, making analysis difficult. The fastThread tool generates condensed flame graphs that simplify this process, allowing for quick identification of hot code paths. Key features include mouse hover information, distinct colors, adjustable box widths, zoom capabilities, and a search function, enhancing debugging efficiency.
Ram Lakshmanan, our Principle Architect, presented at the All Day DevOps Conference on measuring micro-metrics in development and testing environments to predict production performance issues accurately. His presentation was positively received by 113 global developers, highlighting the significance of micro-metrics in forecasting performance challenges.
To debug Java applications remotely, follow two steps: First, launch the JVM with remote debugging arguments, enabling remote access. Second, configure your IDE, such as Eclipse, to establish a connection with the remote server by entering project and connectivity details. Avoid keeping remote debugging enabled to maintain performance and security.
The blog post explains the StackOverFlowError in JVM, detailing its causes, particularly infinite recursive calls, and providing solutions like fixing code, increasing thread stack size using JVM arguments, and utilizing custom stack sizes for threads. Understanding thread stack mechanics is crucial for effective error management and prevention strategies.
