LWM-Linux/13 - Linux Performance Monitoring and Tuning/Performance Monitoring Tools (top, htop, vmstat).md

119 lines
3.8 KiB
Markdown

# Performance Monitoring Tools (top, htop, vmstat)
## 1. top
Top is a dynamic real-time system monitoring tool that comes pre-installed on most Linux distributions. It provides a comprehensive overview of system resource usage.
Key features:
- Real-time view of system processes
- CPU and memory usage
- Load average
- Tasks statistics (running, sleeping, stopped, zombie)
- Uptime
Usage:
To start top, simply type `top` in the terminal.
Important commands within top:
- 'q': Quit
- 'h': Help
- 'k': Kill a process
- 'r': Renice a process
- 'f': Fields management
- 'o': Change sort order
Customization:
You can customize top's display by pressing 'f' to select which fields to show, and 'o' to change the sort order.
## 2. htop
Htop is an enhanced version of top with a more user-friendly interface and additional features. It's not usually pre-installed, so you may need to install it using your distribution's package manager.
Key features:
- Colorful and intuitive interface
- Mouse support
- Vertical and horizontal scrolling
- Tree view of processes
- Detailed CPU, memory, and swap usage
Usage:
To start htop, type `htop` in the terminal.
Important commands within htop:
- F1-F10: Various functions (help, setup, search, etc.)
- Space: Tag a process
- U: Show only processes of a specific user
- t: Tree view
- ]: Sort by CPU usage
- [: Sort by memory usage
Customization:
Htop offers extensive customization options. Press F2 to access the setup menu, where you can configure meters, colors, and display options.
## 3. vmstat
Vmstat (Virtual Memory Statistics) is a command-line tool that provides information about system processes, memory, paging, block I/O, traps, and CPU activity.
Key features:
- Compact output format
- Historical data
- Detailed memory statistics
- Disk I/O statistics
- CPU usage breakdown
Usage:
Basic syntax: vmstat [options] [delay [count]]
Example:
vmstat 5 3
This will display statistics every 5 seconds for 3 iterations.
Important columns in vmstat output:
- r: Number of runnable processes
- b: Number of processes in uninterruptible sleep
- swpd: Used swap space
- free: Free memory
- buff: Memory used as buffers
- cache: Memory used as cache
- si: Memory swapped in from disk
- so: Memory swapped out to disk
- bi: Blocks received from a block device
- bo: Blocks sent to a block device
- in: Interrupts per second
- cs: Context switches per second
- us, sy, id, wa: CPU time spent in user mode, kernel mode, idle, and waiting for I/O
Advanced usage:
- vmstat -s: Displays a table of various event counters and memory statistics
- vmstat -d: Shows disk statistics
- vmstat -p /dev/sda1: Displays statistics for a specific partition
## 4. Comparison and Use Cases:
### 1. top:
- Best for quick system overview
- Good for identifying resource-heavy processes
- Suitable for systems with limited resources
### 2. htop:
- Ideal for interactive use and detailed process management
- Better for systems with many processes
- More user-friendly for less experienced users
### 3. vmstat:
- Excellent for analyzing system performance over time
- Useful for identifying I/O or memory bottlenecks
- Good for scripting and automated monitoring
# 5. Best Practices:
- Regular monitoring: Use these tools regularly to establish a baseline for your system's performance.
- Combine tools: Each tool provides unique insights, so use them in combination for a comprehensive understanding.-3. Look for patterns: Pay attention to trends and patterns in resource usage over time.
- Customize: Tailor the tools to your specific needs by customizing their output and display options.
- Correlate with application logs: When you notice performance issues, correlate the data from these tools with your application logs for a fuller picture.
By mastering these Linux performance monitoring tools, you'll be well-equipped to diagnose and resolve system performance issues effectively.