
Meet Ajit Khan, a senior DevOps engineer and AWS community builder who mentors and shares knowledge through Udemy and YouTube, while seeking AWS certification and championing continuous learning.
Master web performance tuning across tcp/ip, nginx, and linux with hands-on demos of tcp optimization, http/2, gzip compression, fastcgi cache, server push, and bandwidth-delay product.
Learn Udemy tips to enhance your course experience by selecting 720 pixel video quality, adjusting playback speed, enabling subtitles, and using the Q&A section and my courses at the top.
Discover how GitHub Copilot acts as an AI pair programmer in VSCode to write code faster. Learn to generate code, explain it, and create tests with Copilot's chat features.
Explore why speed drives user engagement, retention, and conversions, and how bandwidth and latency determine overall web performance.
Explore components of latency across networks, including propagation delay, transmission delay, processing delay, and queuing delay, and how bufferbloat on routers adds unwanted delay.
explains how propagation delay and last mile latency affect web performance, comparing fiber versus vacuum speed of light and using traceroute to identify ISP bottlenecks.
Discover how TCP and IP form the backbone of the internet by providing reliable data transmission over unreliable networks within the Internet Protocol suite.
Explore how the TCP three-way handshake establishes a connection, including syn, syn-ack, and ack exchanges, and why reuse reduces latency in web performance.
Learn how tcp fast open reduces latency when a page loads resources from many sources by allowing data with the syn packet, though effectiveness is limited by syn size.
Explore how congestion collapse arises from queuing and duplicate packets, and how flow control, congestion control, and congestion avoidance prevent it, with window scaling extending receiving window to one gigabyte.
Demonstrates checking and enabling Linux window scaling with sysctl, verifying net.ipv4.tcp.window_scaling equals 1, and configuring it temporarily or permanently via the relevant file.
Discover how slow start sets a conservative initial congestion window in TCP, then grows it by one segment per acknowledgment, up to ten segments, to find available bandwidth.
Explore slow start: a client-server exchange delivers 64 KB response, with initial congestion window of ten segments and cwnd growing with each ACK to maximize bandwidth over 56 ms RTT.
Reuse of a TCP connection boosts web performance by eliminating extra handshakes, allowing multiple transfers on one connection and delivering up to 75% faster subsequent requests.
Explore congestion avoidance after slow start, doubling data in flight until it meets the receiver's flow control window, a system threshold, or a packet loss.
Define the bandwidth-delay product (BDP) as the data link capacity times round-trip time, representing the maximum data in the network at any moment, with large BDP indicating long fat networks.
Learn how http 0.9 differs from http 1.1 and how http 1.1 improves performance through persistent connections, request pipelining, and chunked transfer encoding, with enhanced caching and latency awareness.
Learn how keep-alive connections minimize TCP handshakes, allowing a single connection to fetch multiple resources and reduce handshake overhead for faster page delivery.
Discover how HTTP pipelining reuses a single connection to process multiple requests in a FIFO order, reducing network round trips and speeding up responses.
Explore how multiple TCP connections enable six parallel requests from client and server, boosting the initial round-trip packets, while highlighting resource overhead, bandwidth contention, and increased complexity.
Domain sharding distributes resources across multiple sub domains to increase parallel TCP connections and enable concurrent requests, but adds development, deployment, and maintenance complexity.
Learn how concatenation and image spriting reduce protocol overhead by bundling JavaScript, css, and images into single resources, while considering caching, invalidation, and delivery latency.
Discover http/2 latency benefits from multiplexing, header compression, and server push, while framing and transport changes preserve http semantics and enable flow control, prioritization, and upgrade mechanisms.
Explore the http2 binary framing layer that encodes messages as separated headers and data frames in binary form, highlighting its impact on performance and client-server encoding requirements.
Explore http2's binary framing, where streams carry messages made of frames with frame headers over a single tcp connection.
Explore practical tcp optimization for latency and throughput, including kernel upgrades, initial congestion window, window scaling, tcp fast open, data compression, and reusing connections via a cdn.
explains sockets and socket buffers in linux, how interrupts and context switching affect performance, and how kernel defaults like 128 kb buffer and buffer bloat influence latency and jitter.
Learn how to tune tcp_mem and udp_mem on a Linux server, adjust system wide buffers, and compute the bandwidth delay product to optimize web performance through tested settings.
Calculate bandwidth delay product by measuring round-trip time with ping and set the buffer accordingly. Read NIC speed with ifconfig (eth2) to inform tuning, shown as 100 MB/s.
Explain head of line blocking by illustrating how a lost P1 packet causes P2 and P3 to be buffered, delaying application reads until TCP retransmits P1.
Install nginx on an aws ec2 ubuntu 22.04 lts instance, set up ssh key access, allow http/https, and verify the default nginx page via the public IP.
Learn how expires headers in nginx control caching to boost web performance by setting cache-control, pragma, vary, and expires for resources like python.png, css, js, and images.
Enable gzip in nginx to compress css and javascript, set compression level three, and apply gzip types for optimized bandwidth and load times.
Enable and configure http2 in nginx by rebuilding with the http2 module and ssl, creating a self-signed certificate for a quick demo, and verifying http2 replaces http 1.1.
Learn to implement nginx fastcgi cache by caching php fpm outputs on disk, configure cache path, levels, keys, and 100 mb cache size to speed up requests.
Discover how http/2 server push delivers style.css and thumb.png with index.html, using nghttp2 to verify, and configure nginx to push linked assets for faster page loads.
Define metrics that matter, set a clear tuning aim, and test with production-like workloads to safely improve speed, latency, and transactions per second.
Use the command line tool to display and change ethernet adapter settings, including speed, autonegotiation, wake on LAN, and duplex mode, helping identify performance issues and optimize NIC settings.
Demonstrate how to disable autonegotiation with ethtool, set speed to 100 and duplex to half, and persist these settings in the ifcfg-eth0 file using ETHTOOL_OPTS.
Use tuned to automatically optimize Linux performance by applying dynamic profiles (including sysctl, disk elevator, transparent huge pages, and power management); manage with tuned ADM and simple systemctl commands.
Create and apply a custom tuning profile with the tuned tool on Linux. Place the profile under /usr/lib/tuned, edit tune.conf, run tuned-list, and apply via tuned-adm.
Explore the tuned tool, activate the server power save profile, and demonstrate dynamic disk elevator changes and sysconfig edits to apply profile-based performance tuning.
Apply evergreen optimization best practices to reduce latency and data transfer by cutting DNS lookups, reusing TCP connections, lowering redirects, shortening round trips, and eliminating unnecessary resources.
Apply optimization practices by caching and compressing assets, reducing http header data, bundling resources across domains, using cookies to cut round trips, parallelizing requests, and optimizing for http/1.x and http/2.
We continually improve the course by adding more contents and topics around performance optimization. We invite your feedback to guide future videos and course updates.
Welcome to the course “Application Performance Optimization”. This course is designed to help you get started to understand the primers of performance affecting your application and how you can tune these primers.
There could be a lot of factors that might affect the performance of your application. For example, the TCP connection parameters, webserver related optimization, tools that will help for performance debugging and tuning. We will be covering these topics in this course.
The application code itself can affect the performance of the application single handedly but the application code optimization is beyond the scope of this course.
We will be continuously improving the course by adding more topics around performance optimization.
However, we are open to your feedback. If you think some more topics around optimization should be included in the course then feel free to suggest us and we will try to create more videos on it and will append to this course.
What you will learn:
What is performance/speed, its components and why is it important to address it
What are the primers of Optimization
What is TCP/IP and how it works
What all factors affects TCP connections and how you can optimize it
Understanding Bandwidth Delay Product and optimizing using BDP with a Demo and actual calculation
What is HTTP1.X and its limitation. How HTTP2 overcomes the limitations of HTTP1.X and added improvement?
TCP Optimization Demo
Various Optimization for a Webserver (Nginx) including fastcgi cache, http2, compression etc.
Various Tools to help you optimize for example: ethtool, tuned
How to start optimizing and when to stop
Evergreen performance best practices
Intended Learners:
DevOps Engineers
System Administrator
IT Engineers
DevOps Aspirants
CloudOps Engineers
Cloud Engineers
Platform Engineers
SRE (Site Reliability Engineers)
Prerequisites:
Basic Understanding of Linux
Knowledge about Nginx & how it works
Basic Understanding of TCP/IP
How a web application works