What To Do On Linux

What To Do On Linux

Reading time1 min
#Linux#Monitoring#SysAdmin#htop#iostat#vmstat

Master the Art of Linux System Monitoring with Native Tools

Forget installing bloated monitoring suites—discover how the built-in Linux commands like top, htop, iostat, and vmstat can give you real-time insights and control over your system’s health with zero overhead.

Whether you’re a system administrator, developer, or just a Linux enthusiast, mastering native Linux monitoring tools is essential. These tools are lightweight, reliable, and universally available on virtually every Linux system. They help you track system performance, troubleshoot issues, and optimize resources without the hassle of third-party software.

In this post, we’ll walk through some of the most powerful native monitoring utilities, explaining what they do and showing practical examples so you can start using them effectively today.


1. Monitor CPU and Processes with top and htop

Using top

top is the classic command-line task manager that comes installed by default on all Linux distributions.

top

This opens an interactive screen that updates every few seconds to show:

  • CPU usage (user vs kernel vs idle)
  • Memory usage
  • Running processes sorted by CPU usage by default
  • Uptime and load average (system load over 1, 5, and 15 minutes)

Tips for using top:

  • Press P to sort processes by CPU usage.
  • Press M to sort by memory usage.
  • Press k to kill a process directly from within top.
  • Press q to quit.

Using htop

For a more visual, user-friendly alternative, try htop. It may require installing first:

sudo apt-get install htop   # Debian/Ubuntu
sudo yum install htop       # RHEL/CentOS
sudo pacman -S htop         # Arch Linux

Run it simply as:

htop

Benefits over top:

  • Color-coded output for easy reading.
  • Scrollable process list (vertical and horizontal).
  • Mouse support.
  • Tree view for process hierarchy (press F5).

2. Analyze Disk I/O Performance with iostat

If disk input/output is suspect in slowing down your system or applications, iostat is your go-to tool. It reports statistics related to CPU utilization and input/output statistics for devices and partitions.

Install it via the sysstat package if not available:

sudo apt-get install sysstat   # Debian/Ubuntu
sudo yum install sysstat       # RHEL/CentOS

Run it like this:

iostat -xz 2 5

Explanation:

  • -x: Extra statistics like average queue size and wait times.
  • -z: Suppresses output for devices with zero activity.
  • 2 5: Update every 2 seconds, output 5 reports.

This way you can monitor disk throughput and spot bottlenecks such as high wait times (await) or saturated queues (avgqu-sz).


3. Check Memory Usage Trends with vmstat

The virtual memory statistics tool (vmstat) provides an overview of processes, memory, paging, block IO, traps, disks, and CPU activity.

Example command:

vmstat 2 10

This prints system stats every 2 seconds for a total of 10 samples.

Key columns to watch:

  • r: number of runnable processes waiting for CPU.
  • b: number of processes in uninterruptible sleep (usually IO waiting).
  • swpd: amount of virtual memory used (swap space).
  • free: amount of idle memory.
  • si & so: swap in/out—heavy swapping indicates memory pressure.
  • bi & bo: blocks received/sent to block devices (disk activity).
  • us & sy: CPU time spent in user and system modes.

Use this data to quickly detect if your system is swapping excessively or if CPU pressure is high due to runnable tasks queueing up.


4. Inspect Network Statistics with Built-in Tools

Using /proc/net/dev

View real-time network interface statistics:

cat /proc/net/dev

You’ll get counters for bytes/packets received/transmitted per interface.

Using netstat or the modern alternative ss

List active TCP connections:

netstat -tupan   # older tool; may be deprecated on some distros

# Or use:
ss -tupan       # newer replacement for netstat

For network monitoring without extra installs, these come prebuilt as well.


Bonus Tips

Combine tools with watch

To run any command repeatedly at intervals use:

watch -n 3 'iostat -xz'

This will run the given command every 3 seconds displaying live updates on your terminal.

Logging output for later analysis

Redirect command outputs into log files during long troubleshooting sessions:

vmstat 5 > vmstat.log &
tail -f vmstat.log   # follow live logs as they grow

Summary

Mastering these native Linux monitoring tools empowers you to keep finger-on-the-pulse control over your systems without added overhead or dependencies. Real-time insights from:

  • top / htop — View CPU & processes,
  • iostat — Analyze disk IO,
  • vmstat — Monitor memory & CPU trends,
  • Network tools like /proc/net/dev, netstat, and ss

Make troubleshooting performant Linux environments straightforward and efficient.

Next time your server acts up or you want to optimize resource usage – skip installing bulky suites and dive straight into these trusty native commands!


Happy Monitoring!

If you liked this walkthrough or want more advanced tips on scripting automated monitoring with these tools, let me know in the comments!