<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>tuning on Dhaval Shah</title><link>https://www.dhaval-shah.com/tags/tuning/</link><description>Recent content in tuning on Dhaval Shah</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Sun, 01 Sep 2024 02:00:50 +0000</lastBuildDate><atom:link href="https://www.dhaval-shah.com/tags/tuning/index.xml" rel="self" type="application/rss+xml"/><item><title>Optimizing Linux's network stack</title><link>https://www.dhaval-shah.com/optimizing-linux-network-stack/</link><pubDate>Sun, 01 Sep 2024 02:00:50 +0000</pubDate><guid>https://www.dhaval-shah.com/optimizing-linux-network-stack/</guid><description>Background In today’s world of distributed computing, network is the backbone of high-performance, low-latency enterprise applications. Understanding and optimizing the Linux network stack is crucial for achieving peak system performance.
Here’s a breakdown of the key components:
Network Components:
Hardware: Includes routers, NICs, switches, and more. Software: Encompasses the OS kernel, device drivers, and protocols. Protocols:
Kernel-Level Protocols: TCP, UDP, etc. Application-Level Protocols: HTTP, WebSocket etc.</description></item><item><title>Performance Improvement Vs Performance Optimization</title><link>https://www.dhaval-shah.com/performance-improvement-vs-performance-optimization/</link><pubDate>Fri, 13 Oct 2023 06:00:50 +0000</pubDate><guid>https://www.dhaval-shah.com/performance-improvement-vs-performance-optimization/</guid><description>Background Recently I stumbled upon a tweet on my twitter timeline, that discussed about approaches / strategies that can be adopted to improve performance of enterprise applications. What struck me while going through its responses and various similar posts on Linkedin is - tons of material preaching and teaching of how to improve performance of a system is uni-dimensional. While I completely agree to the patterns / guidelines shared by our vibrant community, what IMO is getting missed out is fundamental understanding of Performance Engineering - Primary goal of Performance Engineering is to improve end user experience by reducing latency / increasing throughput.</description></item><item><title>Optimizing Kafka Producers and Consumers</title><link>https://www.dhaval-shah.com/optimizing-kafka-producers-consumers/</link><pubDate>Sat, 01 Apr 2023 06:00:50 +0000</pubDate><guid>https://www.dhaval-shah.com/optimizing-kafka-producers-consumers/</guid><description>Background In this current era, Distributed Architecture has become de-facto architectural paradigm, which necessitates implementation of loosely coupled Microservices which would talk with each other via
REST API Message Oriented Middleware As far as Message Oriented Middleware is concerned, Apache Kafka has become quite ubiquitous in today's world of Distributed Systems. Apache Kafka is a powerful, distributed, replicated messaging service platform that is mainly responsible for storing and sharing data in a scalable, robust and fault tolerant manner.</description></item><item><title>Linux tools for analyzing System Performance</title><link>https://www.dhaval-shah.com/linux-tools-4-analyzing-system-performance/</link><pubDate>Sat, 03 Sep 2022 07:00:50 +0000</pubDate><guid>https://www.dhaval-shah.com/linux-tools-4-analyzing-system-performance/</guid><description>Background In today's contemporary world of enterprise software where massively used applications are expected to scale and run seamlessly at extreme high loads e.g. Scaling Hotstar for 25.3 million users, system performance becomes one of the key tenant of architecting high throughput, low latency applications along with capability of ease in scaling as per business / end consumer needs .
System performance is a very broad term as it would encompass entire gambit of computer system i.</description></item><item><title>G1 GC - A primer from performance engineering standpoint</title><link>https://www.dhaval-shah.com/g1-gc-primer/</link><pubDate>Mon, 04 Apr 2022 07:00:50 +0000</pubDate><guid>https://www.dhaval-shah.com/g1-gc-primer/</guid><description>Background In couple of my previous articles I not only tried helping understand fundamentals of JVM memory management, but also delved deeper to understand how Garbage Collection works along with its optimization. So with this background, I am sure you would be convinced that behavior of garbage collection may have ramification on performance of an application.
With newer versions of Java, garbage collection has also evolved from Serial -&amp;gt; Parallel -&amp;gt; CMS -&amp;gt; G1 GC -&amp;gt; Z GC.</description></item><item><title>Understanding nuances of garbage collection and ways to tune it with real world example</title><link>https://www.dhaval-shah.com/understanding-and-optimizing-garbage-collection/</link><pubDate>Sun, 17 Nov 2019 18:37:16 +0000</pubDate><guid>https://www.dhaval-shah.com/understanding-and-optimizing-garbage-collection/</guid><description>In one of my previous post I elaborated basics of JVM memory and also explained how garbage collection works. In this post we will try to understand various types of GC and how to tune and optimize them with a real world example.
GC Taxonomy 1. Minor GC When garbage is collected from Young space it is called Minor GC.
Characteristics Triggered when JVM is unable to allocate space for a new object in Eden space.</description></item><item><title>Understanding JVM Memory Management</title><link>https://www.dhaval-shah.com/understanding-jvm-memory-management/</link><pubDate>Mon, 23 Oct 2017 04:44:34 +0000</pubDate><guid>https://www.dhaval-shah.com/understanding-jvm-memory-management/</guid><description>Everyone of us as Software Engineers would have experienced memory leaks, OOM errors in our Java/JVM applications? In order to dissect such issues it is extremely important to understand the whats' and hows' of JVM memory and its management.
JVM - Memory Management One of the many strengths of the JVM is that it performs automatic memory management. As we all know memory management is the process of allocating objects, determining when those objects are no longer needed; thereby de-allocating the memory used by those objects and making it available for future allocations</description></item></channel></rss>