Insufficient memory is a regular problem for systems, and finding what is using up our memory can be tricky. In this session we look at the linux kernel memory system : where memory is consumed, why, and what to do about it. We'll explore memory metrics through utilities like top, ps, vmstat, pmap, and slabinfo. We'll start with the basics of memory in the Linux kernel - overviewing the relevant fields in top, looking at per process statistics in ps, but then quickly work up to more complex matters. Topics will include paging, swapping, caches, buffers, the Linux VFS, and shared memory. Throughout the presentation we'll look at sample cases which highlight particular components, the circumstances in which that component might become involved in using a significant portion of a system's memory, and discuss how and whether tunables should be used to manage how the kernel manages its resources.