How to use htop in Linux
How to Use htop in Linux: Complete Guide for System Monitoring
System monitoring is a crucial skill for Linux administrators, developers, and power users. While the traditional `top` command has been the go-to tool for monitoring system processes, `htop` offers a more user-friendly and feature-rich alternative. This comprehensive guide will walk you through everything you need to know about using htop effectively in Linux environments.
What is htop?
htop is an interactive process viewer and system monitor for Linux and Unix-like systems. It provides a colorful, easy-to-read interface that displays real-time information about running processes, system resources, and performance metrics. Unlike the traditional `top` command, htop offers mouse support, horizontal and vertical scrolling, and an intuitive interface that makes system monitoring more accessible.
Key Advantages of htop Over top
- Colorful interface: Uses colors to differentiate process information
- Mouse support: Click and scroll functionality for easier navigation
- Tree view: Displays process hierarchies in a visual tree format
- Multi-core CPU display: Shows individual CPU core usage
- Easy process management: Kill, nice, and search processes with simple keystrokes
- Customizable display: Configure columns and meters according to your needs
Installing htop on Linux
Before you can start using htop, you need to install it on your Linux system. The installation process varies depending on your distribution.
Ubuntu/Debian Systems
```bash
sudo apt update
sudo apt install htop
```
CentOS/RHEL/Fedora Systems
For CentOS/RHEL 8+:
```bash
sudo dnf install htop
```
For older CentOS/RHEL versions:
```bash
sudo yum install htop
```
For Fedora:
```bash
sudo dnf install htop
```
Arch Linux
```bash
sudo pacman -S htop
```
openSUSE
```bash
sudo zypper install htop
```
Verification
After installation, verify htop is properly installed:
```bash
htop --version
```
Basic htop Interface Overview
When you launch htop by simply typing `htop` in your terminal, you'll see several distinct sections:
Header Section
The top portion displays system-wide information:
- CPU usage bars: Individual bars for each CPU core showing current utilization
- Memory bar: RAM usage visualization
- Swap bar: Swap space utilization
- Tasks: Total number of running tasks and threads
- Load average: System load over 1, 5, and 15-minute intervals
- Uptime: How long the system has been running
Process List
The main area shows a scrollable list of processes with columns including:
- PID: Process ID
- USER: Process owner
- PRI: Priority level
- NI: Nice value
- VIRT: Virtual memory usage
- RES: Resident memory usage
- SHR: Shared memory usage
- S: Process state (R=Running, S=Sleeping, Z=Zombie)
- CPU%: CPU usage percentage
- MEM%: Memory usage percentage
- TIME+: Total CPU time consumed
- Command: Process command and arguments
Function Key Bar
The bottom shows available function keys for various operations like Help (F1), Setup (F2), Search (F3), etc.
Essential htop Navigation
Basic Movement
- Arrow keys: Navigate through the process list
- Page Up/Page Down: Scroll through processes quickly
- Home/End: Jump to the beginning or end of the process list
- Mouse wheel: Scroll up and down through processes
Sorting Processes
htop allows you to sort processes by different criteria:
- P: Sort by CPU usage (default)
- M: Sort by memory usage
- T: Sort by time/CPU time
- U: Sort by username
- Click column headers: Sort by that specific column
Process States and Colors
htop uses colors to indicate different process states:
- Green: Normal/running processes
- Blue: Low-priority processes
- Red: Critical/high-priority processes
- Yellow: Processes owned by the current user
Core htop Functionality
Searching for Processes
Finding specific processes is straightforward in htop:
1. Press F3 or /: Open search dialog
2. Type the process name or part of the command
3. Press Enter to find the first match
4. Press F3 again to find the next match
Example: Search for "firefox" to find all Firefox-related processes.
Filtering Processes
To focus on specific processes:
1. Press F4: Open filter dialog
2. Enter filter criteria (e.g., username or process name)
3. Press Enter: Only matching processes will be displayed
4. Press F4 and clear the filter to show all processes again
Process Management Operations
Killing Processes
To terminate a process:
1. Navigate to the target process using arrow keys
2. Press F9 or k: Open kill signal menu
3. Select the appropriate signal:
- SIGTERM (15): Graceful termination (default)
- SIGKILL (9): Force termination
- SIGHUP (1): Restart/reload process
4. Press Enter to send the signal
Changing Process Priority
To modify process priority (nice value):
1. Select the target process
2. Press F7: Decrease priority (increase nice value)
3. Press F8: Increase priority (decrease nice value)
Note: You can only change priorities for processes you own, unless you're running as root.
Advanced htop Features
Tree View Mode
Tree view displays the hierarchical relationship between processes:
1. Press F5 or t: Toggle tree view
2. Navigate through parent-child relationships
3. Use +/- to expand/collapse branches
This view is particularly useful for understanding process relationships and identifying resource-intensive process trees.
Following Process Activity
To track a specific process continuously:
1. Select the process
2. Press F: Follow mode
3. The display will automatically center on the selected process
This feature is invaluable when monitoring a specific application's behavior over time.
Multi-User Process Management
When running htop as root or with appropriate permissions, you can manage processes from all users:
- u: Show processes from a specific user
- U: Show processes from all users (toggle)
System Resource Monitoring
CPU Monitoring
htop provides detailed CPU information:
- Individual core utilization
- Color-coded usage levels
- Real-time updates
Press F2 → Display options → Detailed CPU time to see more granular CPU metrics.
Memory Analysis
Monitor memory usage effectively:
- Physical RAM usage
- Swap utilization
- Per-process memory consumption
- Shared memory identification
Customizing htop Display
Setup Menu (F2)
The setup menu allows extensive customization:
Meters Configuration
1. Press F2: Open setup
2. Navigate to "Meters"
3. Add/remove/rearrange system meters
4. Choose between different display styles (bar, text, LED)
Available meters include:
- CPU usage (individual cores or average)
- Memory and swap usage
- Load average
- Network I/O
- Disk I/O
- System uptime
Column Configuration
Customize which columns appear in the process list:
1. Setup → Columns
2. Add/remove columns using function keys
3. Rearrange column order
4. Available columns include PID, PPID, PGRP, SESSION, TTY, TGID, etc.
Display Options
Configure visual appearance:
- Hide/show kernel threads
- Hide/show userland process threads
- Shadow other users' processes
- Highlight program basename
- Show custom thread names
Color Schemes
htop offers multiple color schemes:
1. Setup → Colors
2. Choose from available themes:
- Default
- Monochrome
- Black on white
- Light terminal
- MC (Midnight Commander style)
Practical Use Cases and Examples
Monitoring High CPU Usage
When your system feels sluggish:
1. Launch htop
2. Press P to sort by CPU usage
3. Identify processes consuming excessive CPU
4. Analyze if the usage is expected or problematic
5. Take appropriate action (kill, nice, or investigate further)
Memory Leak Detection
To identify memory leaks:
1. Sort by memory usage (M)
2. Monitor memory consumption over time
3. Look for processes with steadily increasing memory usage
4. Use tree view to identify related processes
Server Performance Monitoring
For server environments:
```bash
Run htop with specific options
htop -d 10 # Update every 10 seconds
htop -u apache # Show only apache user processes
htop -p 1234,5678 # Monitor specific PIDs
```
Batch Processing Monitoring
When running batch jobs:
1. Use filter (F4) to focus on job-related processes
2. Enable tree view to see process hierarchies
3. Monitor resource consumption patterns
4. Identify bottlenecks or resource conflicts
Command Line Options
htop supports various command-line arguments for specific use cases:
```bash
Basic options
htop -d 5 # Set update interval to 5 seconds
htop -C # Disable colors (monochrome mode)
htop -s PERCENT_CPU # Sort by CPU percentage
htop -s PERCENT_MEM # Sort by memory percentage
User-specific monitoring
htop -u username # Show processes for specific user
htop -U # Show processes for all users
Process-specific monitoring
htop -p 1234 # Monitor specific process ID
htop -p 1234,5678 # Monitor multiple specific PIDs
System information
htop --tree # Start in tree view mode
```
Troubleshooting Common Issues
htop Not Displaying Correctly
Problem: Garbled display or missing colors
Solutions:
1. Check terminal compatibility:
```bash
echo $TERM
```
2. Try monochrome mode:
```bash
htop -C
```
3. Update terminal or try a different one
Permission Issues
Problem: Cannot kill processes or change priorities
Solutions:
1. Run with appropriate privileges:
```bash
sudo htop
```
2. Check user permissions and group membership
3. Understand that you can only manage processes you own (unless root)
High CPU Usage from htop Itself
Problem: htop consuming significant CPU
Solutions:
1. Increase update interval:
```bash
htop -d 10
```
2. Reduce display complexity (disable tree view, use fewer meters)
3. Close htop when not actively monitoring
Missing Process Information
Problem: Some processes not visible
Solutions:
1. Check if filtering is active (F4)
2. Ensure showing all users (U)
3. Verify if hiding kernel threads is enabled
4. Run with elevated privileges if needed
Performance Optimization Tips
Efficient System Monitoring
1. Adjust update frequency: Use appropriate intervals for your monitoring needs
2. Use targeted filtering: Focus on relevant processes to reduce visual clutter
3. Leverage sorting: Quick identification of resource-intensive processes
4. Combine with other tools: Use alongside `iostat`, `vmstat`, and `netstat` for comprehensive monitoring
Resource Management Best Practices
1. Regular monitoring: Check system health periodically
2. Trend analysis: Watch for patterns in resource usage
3. Proactive management: Address issues before they become critical
4. Documentation: Keep notes on normal vs. abnormal system behavior
Comparison with Other System Monitors
htop vs. top
| Feature | htop | top |
|---------|------|-----|
| Interface | Colorful, interactive | Text-based, traditional |
| Mouse support | Yes | No |
| Tree view | Built-in | Limited |
| Customization | Extensive | Basic |
| Resource usage | Slightly higher | Lower |
htop vs. System Monitor (GUI)
- htop: Terminal-based, lightweight, scriptable
- System Monitor: Graphical, user-friendly, resource-intensive
- Use case: htop for servers/SSH, GUI monitors for desktop environments
Conclusion
htop is an indispensable tool for Linux system administration and monitoring. Its intuitive interface, rich feature set, and extensive customization options make it superior to traditional monitoring tools for most use cases. Whether you're troubleshooting performance issues, monitoring server resources, or simply keeping an eye on system health, htop provides the functionality and flexibility needed for effective system management.
By mastering htop's features—from basic navigation and process management to advanced filtering and customization—you'll have a powerful tool at your disposal for understanding and managing Linux system resources. Regular use of htop will help you develop a deeper understanding of system behavior and improve your overall Linux administration skills.
Remember to combine htop with other system monitoring tools and practices for comprehensive system management. With the knowledge gained from this guide, you're well-equipped to leverage htop's full potential in your Linux environment.