tier1appteam

tier1appteam

Large or small heap size?

The video discusses strategies for running applications with either large or small heap sizes. It explores the implications of each approach in terms of performance and cost. Viewers can learn which heap size strategy might be optimal for their specific application needs.

Memory Leak in Java executor

The article discusses an unexpected memory leak issue caused by Java's ThreadPoolExecutor, which results in "java.lang.OutOfMemoryError". Despite executing 10 jobs with 5 worker threads, the threads remain in memory instead of being garbage collected. The solution is to call the executor's shutdown() method to properly terminate the threads after job execution.

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.