Posted on
Software

vmstat: Virtual memory and system stats

Author
  • User
    Linux Bash
    Posts by this author
    Posts by this author

Understanding and Monitoring Your System with vmstat: A Guide to Virtual Memory and System Statistics

In the realm of Linux system monitoring and performance analysis, vmstat (Virtual Memory Statistics) is an indispensable tool for administrators and developers alike. It provides a detailed snapshot of a system's memory, swapping, and processor activity in real time. It can help you understand how your Linux system manages its resources and assists in pinpointing performance bottlenecks.

Before diving deep into how to utilize vmstat, let's start by ensuring it's installed on your system. Depending on your distribution, the installation process might vary. Below, you will find detailed installation instructions for different package managers including apt, dnf, and zypper.

Installation Instructions

For Debian/Ubuntu (using apt)

On Debian-based distributions like Ubuntu, you can install vmstat, which is part of the procps package, using the apt package manager. Open your terminal and enter:

sudo apt update
sudo apt install procps

For Fedora (using dnf)

If you're using Fedora or any other distribution that employs dnf as its default package manager, install the procps-ng package by running:

sudo dnf install procps-ng

For openSUSE (using zypper)

For those who are on openSUSE or a related distribution, use the zypper package manager to install the same procps package:

sudo zypper install procps

How to Use vmstat

Once vmstat is installed on your system, you can start using it right away. Simply typing vmstat in your terminal will provide an immediate overview of your system’s virtual memory, processes, CPU activity, and IO operations. Here's a breakdown of its usage and some common commands:

Basic Command

To run vmstat with default settings:

vmstat

This command outputs several columns such as procs, memory, swap, io, system, and cpu, which report on different aspects of your system performance.

Interval and Count

You can specify a time interval in seconds and a count to see system performance at each time interval:

vmstat 5 10

This will update vmstat every 5 seconds, printing 10 iterations. It's useful for tracking changes over a specific duration.

Understanding the Output

  • procs (r b): The 'r' column shows the number of processes waiting for run time. 'b' displays the number of processes in uninterruptible sleep.

  • memory (swpd free buff cache): These columns provide information on used swap space (swpd), free memory (free), buffered (buff), and cached memory (cache).

  • swap (si so): Swap statistics, 'si' (swap in) and 'so' (swap out) indicating memory swapped from disk and to disk respectively.

  • io (bi bo): Block IO stats, which show blocks received (bi) and sent (bo) to a block device.

  • system (in cs): 'in' is the number of interrupts per second, including the clock. 'cs' shows the number of context switches per second.

  • cpu (us sy id wa st): CPU usage broken down by time spent in user mode (us), system mode (sy), idle (id), wait IO (wa), and stolen time (st).

Conclusion

vmstat is a powerful tool for monitoring a Linux system’s performance in real-time. By providing detailed insights into different system resources, it helps in diagnosing issues and optimizing system performance. Whether you are managing a server or just keen on keeping your personal Linux machine running smoothly, mastering vmstat can add a new depth to your system management skillset.