HappiomHappiom
  • Self-Improvement
  • Relationship
  • AI for Life
  • Apps
  • Tech
  • More
    • Online Diary
    • Glossary
  • Learn
    • Book
    • >> Soft Skills
    • Time Management
    • >> Tech Skills
    • R
    • Linux
    • Python
  • Our Apps
    • Download Diary App
    • Write Your First Diary
    • Login to Online Diary App
    • 100K+ Famous Quotes Site
  • Resources
    • Self-Improvement Guide
      • 21-Days to Self-Improvement
      • Creating a Habit
      • Learn Life Experiences
      • Easily Prioritizing Tasks
      • Learning from Mistakes
      • Doing Regular Exercises
      • Setting Priority for Success
      • Avoiding Common Mistakes
      • Eating Healthy Food Regularly
    • Journaling Guide
      • Online Diary
      • Best Diary Apps
      • Diary Writing Ideas
      • Diary Writing Topics
      • Avoid Writing in Diary
      • Diary Writing as Hobby
      • Reasons to Write a Diary
      • Types of Feelings In Diary
      • Improve Diary Writing Skills
  • Self-Improvement
  • Relationship
  • AI for Life
  • Apps
  • Tech
  • More
    • Online Diary
    • Glossary
  • Learn
    • Book
    • >> Soft Skills
    • Time Management
    • >> Tech Skills
    • R
    • Linux
    • Python
  • Our Apps
    • Download Diary App
    • Write Your First Diary
    • Login to Online Diary App
    • 100K+ Famous Quotes Site
  • Resources
    • Self-Improvement Guide
      • 21-Days to Self-Improvement
      • Creating a Habit
      • Learn Life Experiences
      • Easily Prioritizing Tasks
      • Learning from Mistakes
      • Doing Regular Exercises
      • Setting Priority for Success
      • Avoiding Common Mistakes
      • Eating Healthy Food Regularly
    • Journaling Guide
      • Online Diary
      • Best Diary Apps
      • Diary Writing Ideas
      • Diary Writing Topics
      • Avoid Writing in Diary
      • Diary Writing as Hobby
      • Reasons to Write a Diary
      • Types of Feelings In Diary
      • Improve Diary Writing Skills
Expand All Collapse All
  • Linux Examples
    • 10 Crontab Commands and Examples to Automate Tasks in Linux
    • 10 Linux Commands to Manage Users and Permissions Effectively
    • 10 Practical find Command Examples Every Linux User Should Know
    • 10 Linux Commands to Monitor System Performance - CPU, RAM, Disk, etc.
    • 10 Linux Archive and Compression Commands
    • 10 Disk Usage Commands to Find and Clean Up Space in Linux
    • 10 grep Command Examples to Supercharge Your Searches
    • 10 Networking Commands in Linux for Troubleshooting and Monitoring
    • 10 File Management Commands in Linux for Daily Use
    • 10 Linux Commands to Kill, Pause, and Manage Processes
    • 10 Linux Commands to Search Files Recursively Like a Pro
    • 10 Essential Linux Commands for Searching Files
    • 5 Quick Linux Commands to Find Disk Space
    • Difference between $? vs $@ in Linux Shell Scripting

10 Linux Commands to Monitor System Performance - CPU, RAM, Disk, etc.

Keeping an eye on system performance is essential for ensuring that your Linux machine remains responsive, efficient, and stable. Whether you’re managing a personal laptop, a cloud server, or a data center system, knowing how to monitor CPU usage, memory load, disk activity, and overall system health from the terminal is crucial. Linux offers a powerful set of command-line tools to help you gather and interpret performance metrics in real-time. This guide covers 10 essential Linux commands you can use to monitor your system’s performance like a pro.

1. top — Real-Time Process and CPU Monitor

top is one of the most widely used system monitoring tools in Linux. It provides a real-time view of system processes, showing which ones are consuming CPU and memory resources.

$ top
  

It updates every few seconds by default. Use P to sort by CPU usage, M for memory, and k to kill a process directly from the interface.

2. htop — Interactive Resource Viewer

htop is an enhanced alternative to top, with a colorful and interactive UI. It’s easier to read, allows scrolling, and displays CPU cores separately.

$ htop
  

Arrow keys navigate through processes. You can sort columns, filter by user, and manage tasks directly. It’s especially useful for multitasking and server diagnostics.

3. vmstat — Virtual Memory and CPU Stats

vmstat (virtual memory statistics) reports information about processes, memory, paging, block I/O, and CPU activity.

$ vmstat 2 5
  

This command samples every 2 seconds for 5 intervals. Look for high values in the si (swap in) and so (swap out) columns as signs of memory pressure.

4. free — Memory Usage Summary

free provides a quick snapshot of RAM and swap usage.

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        2.1G        1.5G        210M        4.0G        5.1G
Swap:          2.0G          0B        2.0G
  

Use the -h flag for human-readable output. The “available” field gives a better idea of how much memory can be used safely.

5. iostat — Disk I/O and CPU Statistics

From the sysstat package, iostat reports on CPU usage and I/O stats for devices and partitions.

$ iostat -xz 1 3
  

This shows extended output, sampled every second for 3 times. Look for high await or %util values indicating disk bottlenecks.

6. sar — Historical System Performance Data

sar collects and reports system activity metrics over time. It’s also part of the sysstat suite and allows you to review past performance data.

$ sar -u 1 5
Linux 5.15.0 (hostname)  07/06/2025

12:01:01 AM     CPU     %user     %system   %idle
12:01:02 AM     all     10.00     2.00      88.00
  

It’s ideal for long-term performance monitoring and system diagnostics.

7. mpstat — CPU Usage per Processor

mpstat provides CPU usage statistics for each core or processor. It helps identify whether a load is balanced or isolated to specific CPUs.

$ mpstat -P ALL 1
  

This shows usage data every second for all CPUs. It’s useful for troubleshooting multi-threaded applications or CPU affinity issues.

8. iotop — Real-Time Disk I/O Usage by Process

iotop is like top, but specifically for disk I/O. It displays which processes are reading/writing to disk in real time.

$ sudo iotop
  

Sort by I/O usage to identify heavy disk users. This is helpful when your system feels slow due to disk operations.

9. nmon — All-in-One Performance Monitor

nmon is a comprehensive and interactive performance monitor that covers CPU, memory, disk, network, and more. It’s ideal for sysadmins and power users.

$ nmon
  

Use keys like c for CPU, m for memory, d for disks. It’s also capable of exporting CSV for graphing and reporting.

10. uptime — System Load Summary

uptime gives a snapshot of how long the system has been running and the current load averages over the past 1, 5, and 15 minutes.

$ uptime
14:23:45 up 12 days,  4:01,  2 users,  load average: 0.12, 0.34, 0.25
  

Compare the load averages to the number of CPUs (cores) to gauge system stress. A load of 1.0 per core is ideal; beyond that may indicate CPU saturation.

Conclusion

Monitoring system performance on Linux doesn’t require installing heavy tools or graphical interfaces. With just a few terminal commands, you can get deep visibility into CPU load, memory consumption, disk I/O, and system responsiveness. Tools like top and htop give real-time feedback, while iostat, sar, and mpstat provide advanced reporting. Understanding these commands not only helps with troubleshooting but also with capacity planning and performance tuning.

Pro tip: Combine these tools with shell scripting and cron jobs to automate health checks and generate logs for later analysis. Many of these tools support exporting to files or generating daily reports. For example, use vmstat 1 60 > /tmp/vmstat.log to log 1-minute performance data for review.

Whether you’re running a personal workstation or a critical production server, these Linux commands form the foundation of effective system monitoring. Practice using them regularly, and you’ll always have your finger on the pulse of your system.

Related Articles
  • 10 Crontab Commands and Examples to Automate Tasks in Linux
  • 10 Linux Commands to Manage Users and Permissions Effectively
  • 10 Practical find Command Examples Every Linux User Should Know
  • 10 Linux Archive and Compression Commands
  • 10 Disk Usage Commands to Find and Clean Up Space in Linux
  • 10 grep Command Examples to Supercharge Your Searches

No luck finding what you need? Contact Us

Previously
10 Practical find Command Examples Every Linux User Should Know
Up Next
10 Linux Archive and Compression Commands
  • About Us
  • Contact Us
  • Archive
  • Hindi
  • Tamil
  • Telugu
  • Marathi
  • Gujarati
  • Malayalam
  • Kannada
  • Privacy Policy
  • Copyright 2025 Happiom. All Rights Reserved.