tier1appteam

tier1appteam

Confoo 2021 – 7 JVM ARGUMENTS

The ConFoo.CA Developer Conference, a major event for programmers, is now fully virtual, featuring over 100 presentations by international speakers. Architect Ram Lakshmanan will present on "7 JVM Arguments of Highly Effective Applications," focusing on key arguments that can significantly enhance application performance amidst the complexity of over 600 options available.

Chaos Engineering – Simulating OutOfMemoryError

This article explores the simulation of the 'java.lang.OutOfMemoryError: Java Heap space' in Java applications. It presents a sample program that continuously adds records to a HashMap until the heap size is exceeded, causing the error. The post discusses both manual and automated approaches to troubleshoot this issue effectively.

Java threads – may not be memory efficient?

The study reveals that Java threads, regardless of their active or dormant states, consume equivalent memory upon creation. Testing with two programs demonstrated that both empty and full stack frame threads allocated the same memory. Developers are advised to minimize thread creation and optimize stack sizes to reduce memory waste.

Chaos Engineering – Simulating CPU spike

This article explains how to simulate 100% CPU consumption using an infinite loop in multiple threads with Java's BuggyApp application. It details the implementation of the 'CPUSpikeDemo' and 'CPUSpikerThread' classes. The author also suggests methods for diagnosing spikes, including manual thread dumps and automated analysis tools like yCrash for root cause identification.

What are the process states in Unix/Linux?

Unix/Linux processes can be in various states: RUNNING & RUNNABLE, INTERRUPTABLE_SLEEP, UNINTERRUPTABLE_SLEEP, STOPPED, and ZOMBIE. Each state indicates a different condition of process activity and resource waiting. The article also explains how to terminate processes in different states and methods to find their current state using command-line tools.

What is ‘Load Average’?

Load average is a key metric from the 1970s indicating system load levels over intervals of 1, 5, and 15 minutes. It reveals trends in compute demand, factoring in CPU, file I/O, and network demands. A load above 80% warrants investigation, while a relative interpretation determines its significance across applications.

Different CPU times – Unix/Linux ‘top’

The article explores CPU consumption metrics in Unix/Linux systems, detailing eight metrics: User CPU time, System CPU time, nice CPU time, Idle CPU time, Waiting CPU time, Hardware Interrupt CPU time, Software Interrupt CPU time, and Stolen CPU time. Each metric highlights the CPU's time allocation for various processes, providing essential insights for performance optimization.

What is the difference between GCeasy and yCrash?

GCeasy focuses on optimizing Garbage Collection (GC) pause times by analyzing GC logs, while yCrash offers comprehensive root cause analysis by evaluating multiple application artifacts. yCrash provides automated data capture, problem forecasting, a centralized dashboard, secure log transmission, and integration with various tools, unlike GCeasy's manual processes and limited capabilities.

Best practices: Java memory arguments for Containers

When migrating Java applications to containers, configuring the Java heap size is essential. The article discusses three JVM options: -XX:MaxRAMFraction, -XX:MaxRAMPercentage, and -Xmx, outlining their usage, limitations, and best practices. The author suggests preferring -Xmx for precise heap configurations and ensuring adequate container memory allocation.

yCrash Demo video

yCrash app is a secure and non-intrusive tool designed for instant root cause analysis during production issues. It captures various artifacts like thread dumps and GC logs in real-time and promptly analyzes them to generate a comprehensive root cause analysis report on the dashboard. A video overview is available.