Welcome to the course “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
Introduction
About Instructor - Ajeet Khan
7+ Yrs of DevOps Experience.
Udemy Instructor
AWS Certified
CKA Certified
AWS Community Builder
YouTuber
How to make use of Udemy Video Player to have good experience watching the course
Important Concepts
What is performance/Speed and Why it is necessary to improve the speed.
Understanding different components of latency and Bufferbloat issue at router
Understanding what is Last mile latency and checking it through traceroute command. Understanding from command result
TCP/IP
Understanding what is TCP/IP
What is TCP 3-Way Handshake. Steps involved in TCP 3-Way handshake
What is TFO (TCP Fast Open) and why it was introduced.
Congestion Collapse issues and how it is solved by Congestion avoidance and flow control mechanism. The rwnd and cwnd helping to avoid congestion collapse.
Demo of enabling window scaling using commands and also setting it permanently.
What is slow start & Cwnd. Why Slow start is needed and how streaming is achieved to maximum available bandwidth using Cwnd.
Understanding Slow Start with example and how it can improve performance.
What is connection reuse and how it can improve performance?
Understand what is congestion avoidance and under which circumstances it kicks in and how it works.
Understanding BDP - Bandwidth Delay Product
HTTP1.X
What was HTTP0.9? What is HTTP1.1? Their capabilities & limitations.
Understanding multiple TCP connection
What is concatenation & Spiriting? What are their benefits and limitations?
HTTP2
What is HTTP2 and what are it's benefits
What is Binary Framing in HTTP2
TCP Optimization
What all TCP Optimization you can do? A checklist to help get started with TCP optimization.
What is a socket and how an application communicate.
Demo of BDP calculation and how to tune based on BDP calculation
Understanding what is head of line blocking effect?
Webserver Optimization (Nginx)
Steps to install Nginx on AWS EC2 instance.
What are Expires headers? How to add headers to resources in Nginx? How Expires headers can be useful?
What is gzip? How resources can be compressed at webserver level. How to use gzip with Nginx?
Optimization Methodology
Ethtool Introductioin
How to use ethtool?
What is Tuned. How to install tuned and how to start using it.
How to create custom profile in using Tuned tool and how to apply it
Detailed explanation on how to use tuned tool for making changes in tuned profiles.