page header photo
share Twitter share LinkedIn

masterclass Linux performance analysis and tuning

This is training is specific to the Linux system.

The "Linux performance analysis and tuning" masterclass provides an insight into the methods and techniques to measure the performance of a Linux system, to interpret the results, and to implement improvements. Buying additional hardware usually is not an appropriate solution to a performance problem. The course teaches how to measure the load on the four most important hardware resources (CPU, memory, disk, network), and to prevent overloading by rearranging the configuration, by spreading or limiting the load or, as a last resort, to purchase additional hardware. Lab exercises, — under the guidance of the course teacher — will provide the necessary practical skills.

After the course, an informed answer can be given to questions such as: "is our system overloaded, or are we facing a different problem", and best practices to handle these situations will be known. Read more >>>

Target audience?

  • Experienced system administrators who need to manage their systems effectively, and to get the best performance from all software and hardware components.
Duration: 4 days       
Contact
Price € 2215,- plus VAT       

Scheduled dates

Currently scheduled course dates are:

22,23,26,27 Jan 2015   Utrecht   (in Dutch language)

Register for this course: "Linux performance analysis and tuning".

Detailed information about this course

Performance

Improving the performance and responsiveness are topics that appeal to every system administrator in a natural way. System load increases gradually, and performance decreases as a result. This is caused by the multi user and multi tasking aspect of the Linux architecture, and by the fact that newer software exhibits an ever increasing appetite to consume system resources. The system administrator is the first to face the resulting complaints of the users and of the company management.

Measure, understand, improve

This course discusses the components most likely involved in the loss of performance by overloading. The critical ones are: CPUs, disks, memory and network connections.

Many software tools produce endless lists of statistical counters and good looking graphs: the measuring part. Problems usually start when conclusions must be drawn from this hodgepodge of numbers or lines: what is (not) relevant in the given situation, and what is the mutual relation between all those values: the understanding. Well-founded conclusions can only be based upon knowledge about the way a Linux kernel manages a certain system component, and how the capacity is distributed.

For this reason, the course focussus heavily upon the internal mechanisms of a Linux kernel. Once a bottle neck is identified, remedying it often is straightforward: the improve. A large selection of suggestions for improvement will be provided. Software tools for extensive measuring will be discussed, and extra tools will be provided as part of the course package. This will guide the course attendants to a better analysis of Linux system performance, and towards well founded performance improvement.

Prerequisite knowledge

You are an experienced administrator of Linux systems.

Basic knowledge may be obtained via our courses "Linux/UNIX part 1", followed by "Linux/UNIX part 2" and finally (in Dutch) "Linux/UNIX system administration and concepts".

Technical content of the course

  • Plan of action for performance problems: measure, understand and improve.
  • Potential bottle necks and rules of thumb for measuring.
  • The /proc and /sys file systems.
  • Reading statistical counters from the kernel. Categories of counters.
  • Monitoring and adapting kernel settings.
  • Process management: Programs, processes and threads. Life cycle of a process. Role of the kernel in a Linux system. Sleep and wakeup mechanism. Stolen time.
  • Importance and use of the measuring tools atop and atopsar.
  • Control groups (cgroups): limiting the use of hardware components.
  • Processor:
    Hardware (multi socket, multi core, hyperthreading, NUMA). Time sharing and real time processes. Thread scheduling, policies, nice value, implementation of the O(1) scheduler and of the CFS scheduler.
    Measuring with atop, atopsar, ltrace, strace, perf and many other commands.
    Improving with nice, chrt, and taskset commands, and with the cgroups controllers 'cpu' and 'cpuset'.
  • Memory:
    Hardware (operation of the Memory Management Unit). Demand paging, virtual and physical process sizes, swap space, memory leakage, overcommit, OOM killing, nodes and zones, swapout mechanism. Influence of kernel parameters.
    Measuring with atop, atopsar and many other commands.
    Limiting memory with help of the cgroups controller 'memory'.
  • Disk:
    Hardware (disk characteristics, zones, controllers). Queueing algoritms and I/O scheduling, RAID techniques, Logical Volume Management (LVM), layout of ext2/ext3/ext4 file system, path name cache, workings of page cache. Influence of kernel parameters.
    Measuring with atop, atopsar, countcat and many other commands.
    Improving with ionice and with help of the cgroups controller 'blkio'.
  • Network:
    Hardware (interface controllers, switches, routers). TCP/IP protocol (a.o. bandwidth delay product), network delays, SNMP.
    Use of atop, atopsar, netstat, traceroute, attract, iftop, iptables, SNMP and many other commands. Use of the kernel module netatop.
    Partitioning network bandwidth with help of the cgroups controller 'net_cls'.

Documentation

Course attendants will receive a student pack containing copies of the presentations, lab exercises, answers to the exercises, and background information.

The course material is in English, and the teaching language will be English unless the attendants prefer the Dutch language unanimously.

Certificate

Shortly after the course the student will receive a certificate as a proof of participation.

Valid XHTML 1.0 Strict   Valid CSS2