Linux Memory Management Explained | Virtual Memory, NUMA, OOM, Page Tables & TLB

In my previous video, we explored the Linux `free -h` command and learned where the Buffers and Cache values actually come from by looking inside `/proc/meminfo`. In this video, we take the next step and dive into how Linux really manages memory behind the scenes. We'll start by discussing why `/proc/meminfo` only gives you a global view of memory and why that can sometimes be misleading on NUMA systems. We'll then look at memory inside containers, cgroups, Kubernetes memory pressure, the Linux OOM Killer, and finally dive into process virtual memory, page tables, the TLB, and Huge Pages. If you've ever wondered why your server starts swapping while `free` still reports available memory, or why enabling Huge Pages can dramatically improve performance, this video is for you. Topics Covered Why `free -h` is only part of the story Understanding `/proc/meminfo` NUMA overview Why memory pressure can exist despite free memory Monitoring memory per NUMA node Linux containers and cgroups Kubernetes memory eviction Linux OOM Killer `oom_score` and `oom_score_adj` Process Virtual Address Space Text, Data, BSS, Heap, `mmap`, and Stack Virtual Memory Areas (VMAs) Page Tables (PGD → PUD → PMD → PTE) The Translation Lookaside Buffer (TLB) Why Huge Pages improve performance This video is designed for: Linux System Administrators DevOps Engineers Site Reliability Engineers (SREs) Performance Engineers Software Engineers Backend Developers Anyone interested in Linux internals Previous Video: (Insert previous video link) NUMA Memory Monitoring Script: (Insert GitHub link) If you enjoyed this video, please consider supporting the channel by liking the video, leaving a comment, and subscribing for more content on Linux internals, performance engineering, and kernel deep dives. the memstat: https://github.com/elabed-dhahbi/memstats.... Thanks for watching!