Recent times, Uber has been experiencing exponential growth in its traffic. Recent spike in traffic volume exposed several memory related performance bottlenecks in their platform: long garbage collection (GC) pauses, memory corruption, out-of-memory (OOM) exceptions, and memory leaks. In this brilliant article, the Uber engineering team summarizes their optimization journey: What all the challenges they faced, the tools they used, best practices they followed to fix their application’s performance bottlenecks.
Continue reading “Uber optimizes Garbage collection performance using GCeasy”Should I be running my application with few instances (i.e. machines) with large memory size or a lot of instances with small memory size? Which strategy is optimal? This question might be confronted often. After building applications for 2 decades, after building JVM performance engineering/troubleshooting tools (GCeasy, FastThread, HeapHero), I still don’t know the right answer to this question. At the same time, I believe there is no binary answer to this question as well. In this article, I would like to share my observations and experiences on this topic.
Continue reading “LARGE OR SMALL MEMORY SIZE FOR MY APP?”