Responsible for Linux infrastructure? Learn to monitor, understand and manage the health and performance of the four core system elements: CPU, memory, storage, and network. Figure out how to spot trouble, pinpoint the cause, and then fix it.
You've probably spent time worrying about the health and welfare of your Linux servers. Wouldn't you love some insight into what’s really going going on under the hood and, more importantly, into setting up a monitoring protocol that will alert you quickly if things seem to be heading south again? In this course, Linux Performance Monitoring and Tuning, you will learn how to identify and manage the way application processes handle CPU, memory, network, and storage resources. You will also learn to use and interpret tools like systemctl, top, iftop, nice, cgroups, and tc, and how to monitor the performance of fleets of servers using Collectd, Nagios, and nmon. Finally, you will touch on how to analyze performance trends of those servers with Munin. When you’re finished with this course, you will have a good idea how to optimize process and application performance on Linux systems in a way that will help you improve and foolproof your infrastructure. Software required: Linux. Lots of Linux.
David taught high school for twenty years, worked as a Linux system administrator for five years, and has been writing since he could hold a crayon between his fingers. His childhood bedroom wall has since been repainted.
Course Overview Servers running layers upon layers of busy software are complicated beasts. And fleets of servers meant to work together to provide digital services of one kind or another are exponentially more complex. If you're responsible for administrating some of those beasts, you'll really want insight into the way they're working and some clues about what they might do next. Since the overwhelming majority of server workloads in use today are running on Linux, I'd say there is great value in learning how to read all the performance data they produce. So this Linux Performance Monitoring and Tuning course aims to help you extract that value so you can get your infrastructure humming nicely. You'll need to understand how Linux manages system resources like CPU, memory, storage, and network connectivity on behalf of your running applications. You'll also need to know how to find and use the many command line tools Linux provides to make necessary system and policy changes. But insight requires more than just a good understanding of how things are supposed to work. You'll also need a way to intelligently consume the flow of data that your servers are constantly generating. To address that need, I'll show you how you can configure and launch multi-server monitoring operations using the number of tools including collectd and Nagios and how to analyze real time performance trends using Munin. When you're done, you should be up to giving your servers a good makeover and sleeping better at night.
Diagnosing and Managing Storage and Network Issues In the previous module, we learned to identify, understand, and control the ways process has accessed CPU and memory resources. Here is where we'll do the same for storage space and network bandwidth because trust me on this those are two things you just don't want to run out of midway through a lazy long weekend. We'll talk about how to identify how much available free space you have on your drives, the kinds of symptoms that could indicate you've run out, design considerations that could help you avoid space trouble, and the form and function of Inodes, along with the chilling fact that everything you know and love will grind to an unpleasant halt if you should ever run out of Inodes. We'll also learn how to visualize another precious resource, network bandwidth, from both inside a server and from on the network. We'll look at ways to identify the specific processes using most of your bandwidth, and then add tc, a tool for controlling or throttling their allowed usage. All that should keep us out of trouble for at least a little while.