Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
openSUSE Leap 15.6

System Analysis and Tuning Guide

Abstract

This guide supports administrators in problem detection, resolution and optimization.

Publication Date: June 10, 2024
Preface
Available documentation
Improving the documentation
Documentation conventions
I Basics
1 General notes on system tuning
1.1 Be sure what problem to solve
1.2 Rule out common problems
1.3 Finding the bottleneck
1.4 Step-by-step tuning
II System monitoring
2 System monitoring utilities
2.1 Multi-purpose tools
2.2 System information
2.3 Processes
2.4 Memory
2.5 Networking
2.6 The /proc file system
2.7 Hardware information
2.8 Files and file systems
2.9 User information
2.10 Time and date
2.11 Graph your data: RRDtool
3 System log files
3.1 System log files in /var/log/
3.2 Viewing and parsing log files
3.3 Managing log files with logrotate
3.4 Monitoring log files with logwatch
3.5 Configuring mail forwarding for root
3.6 Forwarding log messages to a central syslog server
3.7 Using logger to make system log entries
III Kernel monitoring
4 SystemTap—filtering and analyzing system data
4.1 Conceptual overview
4.2 Installation and setup
4.3 Script syntax
4.4 Example script
4.5 User space probing
4.6 More information
5 Kernel probes
5.1 Supported architectures
5.2 Types of kernel probes
5.3 Kprobes API
5.4 debugfs Interface
5.5 More information
6 Hardware-based performance monitoring with Perf
6.1 Hardware-based monitoring
6.2 Sampling and counting
6.3 Installing Perf
6.4 Perf subcommands
6.5 Counting particular types of event
6.6 Recording events specific to particular commands
6.7 More information
7 OProfile—system-wide profiler
7.1 Conceptual overview
7.2 Installation and requirements
7.3 Available OProfile utilities
7.4 Using OProfile
7.5 Generating reports
7.6 More information
8 Dynamic debug—kernel debugging messages
8.1 Benefits of dynamic debugging
8.2 Checking the status of dynamic debug
8.3 Using dynamic debug
8.4 Viewing the dynamic debug messages
IV Resource management
9 General system resource management
9.1 Planning the installation
9.2 Disabling unnecessary services
9.3 File systems and disk access
10 Kernel control groups
10.1 Overview
10.2 Resource accounting
10.3 Setting resource limits
10.4 Preventing fork bombs with TasksMax
10.5 I/O control with cgroups
10.6 More information
11 Automatic Non-Uniform Memory Access (NUMA) balancing
11.1 Implementation
11.2 Configuration
11.3 Monitoring
11.4 Impact
12 Power management
12.1 Power management at CPU Level
12.2 In-kernel governors
12.3 The cpupower tools
12.4 Special tuning options
12.5 Troubleshooting
12.6 More information
12.7 Monitoring power consumption with powerTOP
V Kernel tuning
13 Tuning I/O performance
13.1 Switching I/O scheduling
13.2 Available I/O elevators with blk-mq I/O path
13.3 I/O barrier tuning
14 Tuning the task scheduler
14.1 Introduction
14.2 Process classification
14.3 Completely Fair Scheduler
14.4 More information
15 Tuning the memory management subsystem
15.1 Memory usage
15.2 Reducing memory usage
15.3 Virtual memory manager (VM) tunable parameters
15.4 Monitoring VM behavior
16 Tuning the network
16.1 Configurable kernel socket buffers
16.2 Detecting network bottlenecks and analyzing network traffic
16.3 Netfilter
16.4 Improving the network performance with receive packet steering (RPS)
VI Handling system dumps
17 Tracing tools
17.1 Tracing system calls with strace
17.2 Tracing library calls with ltrace
17.3 Debugging and profiling with Valgrind
17.4 More information
18 Kexec and Kdump
18.1 Introduction
18.2 Required packages
18.3 Kexec internals
18.4 Calculating crashkernel allocation size
18.5 Basic Kexec usage
18.6 How to configure Kexec for routine reboots
18.7 Basic Kdump configuration
18.8 Analyzing the crash dump
18.9 Advanced Kdump configuration
18.10 More information
19 Using systemd-coredump to debug application crashes
19.1 Use and configuration
VII Synchronized clocks with Precision Time Protocol
20 Precision Time Protocol
20.1 Introduction to PTP
20.2 Using PTP
20.3 Synchronizing the clocks with phc2sys
20.4 Examples of configurations
20.5 PTP and NTP
A GNU licenses
A.1 GNU Free Documentation License

Copyright © 2006–2024 SUSE LLC and contributors. All rights reserved.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or (at your option) version 1.3; with the Invariant Section being this copyright notice and license. A copy of the license version 1.2 is included in the section entitled GNU Free Documentation License.

For SUSE trademarks, see https://www.suse.com/company/legal/. All third-party trademarks are the property of their respective owners. Trademark symbols (®, ™ etc.) denote trademarks of SUSE and its affiliates. Asterisks (*) denote third-party trademarks.

All information found in this book has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither SUSE LLC, its affiliates, the authors nor the translators shall be held liable for possible errors or the consequences thereof.

Print this page