Ram Lakshmanan

Ram Lakshmanan
Every single day, millions & millions of people in North America—bank, travel, and commerce—use the applications that Ram Lakshmanan has architected. Ram is an acclaimed speaker in major conferences on scalability, availability, and performance topics. Recently, he has founded a startup, which specializes in troubleshooting performance problems.

All Posts by this author

Troubleshooting and resolution

Troubleshooting CPU spike in a major trading application

This article by Ram Lakshmanan examines an example of how to troubleshoot a CPU spike within a major trading application in North America. See what was causing the issue, how it was fixed, and what lessons you can take away.

Lucky number 7

7 JVM arguments of highly effective applications

There are way too many JVM arguments for anyone to digest and comprehend. The grand total might easily be more than 1,000 JVM arguments! In this article, we are highlighting seven important JVM arguments that you may find useful and what their positive impacts are.

Configuring with Ubuntu 16.04

How to install and configure Apache2

In just a few easy steps, this article covers how to install and configure Apache2 web server in Ubuntu 16.04. Simply follow along with these seven steps and plug in your own domain name into and get started.

Troubleshooting an unresponsive app

Log4j Bug – Slows down your app

When troubleshooting a popular SaaS application running on the Azure cloud, slow-down kept occurring intermittently with no noticeable pattern. This article uncovers the findings after troubleshooting and capturing the thread dump with jstack, so that you too will know what to do with an unresponsive application.

Simplifying heap dump analysis

How is HeapHero different?

Ram Lakshmanan explains how HeapHero differs from other heap dump analysis tools and how your entire organization can easily utilize its features. HeapDump helps analyze large size heap dumps, can be run on the cloud, offers sharing features for team collaboration, and has several more unique capabilities not found in other tools.

Taking a look at the JVM tool

Jstat – Analysis

What are the uses of jstat and what are its limitations? It is a Java virtual machine tool for monitoring statistics and captures metrics when the JVM is running without any pre-requisite instrumentation. In this article, find out how to launch jstat, what the data it generates means, and what tool you can use to analyze this data.

Analyzing memory wastage and duplicate strings

Memory wasted by Spring Boot PetClinic application

How much memory are you wasting with duplicate strings? In this article, Ram Lakshmanan goes through a Spring Boot PetClinic application and notes how much memory it wastes. If you can reduce the number of objects that are created to service new incoming requests, your response time will get a lot better.

360-degree view of your problems

Overview of ycrash – finding the source of your problem

Take a tour of ycrash in this article by Ram Lakshmanan. ycrash helps capture critical artifacts, including garbage collection logs, thread dumps, core dumps, heap dumps, disk usage, and more when the problem happens. It applies machine learning algorithms and generates a report which gives you a complete view of the problem, down to the lines of code that caused it.

How to evenly distribute traffic

Load balancing: Round robin may not be the right choice

When it comes to load balancing, round robin may not be the best algorithm to choose from. If auto-scaling is instrumented, it is even worse. In this article, see a simple example explaining why this is so, how the round robin algorithm works, and which load balancing algorithm you should potentially pick instead for even traffic distribution.

Answering questions about the differences

Does 32-bit or 64-bit JVM matter anymore?

Find out the answers to some commonly asked questions about the differences between 32-bit JVM and 64-bit JVM in this article. You will learn all about things to consider when migrating between the two, which performs better, when you should ideally use either, and how to download each.

A curious production problem

TCP: out of memory — consider tuning tcp_mem

Ram Lakshmanan discusses a curious production problem with an application running on multiple AWS EC2 instances behind Elastic Load Balancer. In this article, find out about the error message “TCP: out of memory — consider tuning tcp_mem”, how it was handled, and some concluding advice about memory problems and the ‘dmesg’ command.

Troubleshooting errors

OutOfMemoryError related JVM arguments

Are you Troubleshooting OutofMemoryError related messages? In this article, Ram Lakshmanan walks through four JVM arguments related to OutofMemoryError. Find out what heat dump is and what to do when presented with these errors in this helpful guide.

Answering some common questions

Who? Why? What? Fix? – System.gc()

In this article, Ram Lakshmanan goes over some commonly asked questions about the System.gc() API call. What is System.gc()? How do you detect whether System.gc() calls are made from your application? What are the downsides of invoking System.gc()? Find out all this and more.

Which is the right choice?

Large or small memory size for my app?

When is it best to run your application with fewer instances and large memory size, or a lot of instances with a small memory size? In this article, Ram Lakshmanan discusses the differences and pricing of each module and goes over two multi-billion dollar enterprise stories.

  • 1
  • 2