Bird
Raised Fist0
Linux CLIscripting~5 mins

System resource monitoring (free, uptime, vmstat) in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes your computer or server feels slow or unresponsive. To understand why, you need to check how much memory, CPU, and uptime it has. The commands free, uptime, and vmstat help you see this information quickly.
When your server is running slow and you want to check if it is out of memory.
When you want to know how long your system has been running without a restart.
When you want to see CPU usage and system activity in real time.
When you need to check if your system is swapping memory to disk, which slows it down.
When you want to monitor system performance before and after installing new software.
Commands
This command shows how much memory is free, used, and available on your system in a human-readable format.
Terminal
free -h
Expected OutputExpected
total used free shared buff/cache available Mem: 7.7G 2.1G 3.2G 150M 2.4G 5.0G Swap: 2.0G 0B 2.0G
→
-h - Shows memory sizes in human-readable format like MB or GB
This command tells you how long the system has been running, how many users are logged in, and the system load averages.
Terminal
uptime
Expected OutputExpected
14:35:22 up 3 days, 4:12, 2 users, load average: 0.15, 0.10, 0.05
This command shows system performance statistics like CPU, memory, and I/O every 1 second, 3 times in total.
Terminal
vmstat 1 3
Expected OutputExpected
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 3300000 250000 1200000 0 0 5 10 100 200 5 2 90 3 0 0 0 0 3298000 250000 1201000 0 0 0 0 110 210 3 1 95 1 0 0 0 0 3297000 250000 1202000 0 0 0 0 105 205 4 1 94 1 0
→
1 - Interval in seconds between updates
→
3 - Number of updates to show
Key Concept

If you remember nothing else from this pattern, remember: free shows memory use, uptime shows system running time and load, and vmstat shows detailed system activity over time.

Common Mistakes
Running 'free' without the -h flag
The output shows memory in bytes, which is hard to read and understand quickly.
Always use 'free -h' to see memory sizes in MB or GB for easier reading.
Running 'vmstat' without interval and count arguments
It only shows a single snapshot, which may not represent ongoing system activity.
Use 'vmstat 1 3' or similar to see continuous updates and understand trends.
Confusing load average from 'uptime' with CPU usage percentage
Load average shows how many processes want CPU time, not the CPU usage percent, so it can be misunderstood.
Use load average as a sign of system demand, and vmstat or other tools for CPU usage details.
Summary
Use 'free -h' to check how much memory is free and used in a readable format.
Use 'uptime' to see how long the system has been running and current load averages.
Use 'vmstat 1 3' to monitor CPU, memory, and I/O activity over time with repeated updates.

Practice

(1/5)
1. What does the free command primarily display on a Linux system?
easy
A. System uptime and load average
B. Disk usage statistics
C. CPU temperature
D. Memory usage and availability

Solution

  1. Step 1: Understand the purpose of free

    The free command shows information about the system's memory usage, including total, used, free, and available memory.
  2. Step 2: Compare with other commands

    uptime shows system running time and load, vmstat shows detailed CPU and memory stats, but free focuses on memory.
  3. Final Answer:

    Memory usage and availability -> Option D
  4. Quick Check:

    free = Memory info [OK]
Hint: Remember: free = memory info, uptime = running time [OK]
Common Mistakes:
  • Confusing free with uptime output
  • Thinking free shows CPU or disk info
  • Mixing vmstat details with free
2. Which of the following is the correct syntax to display memory usage in megabytes using the free command?
easy
A. free -k
B. free -m
C. free -g
D. free --bytes

Solution

  1. Step 1: Identify the option for megabytes

    The -m option in free shows memory in megabytes.
  2. Step 2: Check other options

    --bytes shows bytes, -g shows gigabytes, -k shows kilobytes. So -m is correct for MB.
  3. Final Answer:

    free -m -> Option B
  4. Quick Check:

    free -m = megabytes [OK]
Hint: Use -m for MB, -k for KB, -g for GB in free [OK]
Common Mistakes:
  • Using -k expecting MB output
  • Confusing --bytes with -m
  • Using wrong option like -g for MB
3. What output will the command uptime produce on a system that has been running for 3 days, 4 hours, 12 minutes with load averages 0.15, 0.10, 0.05?
medium
A. 10:30:00 up 3 days, 4:12, 1 user, load average: 0.15, 0.10, 0.05
B. 3 days, 4 hours, 12 minutes uptime with load 0.15, 0.10, 0.05
C. uptime: 3d 4h 12m, load: 0.15 0.10 0.05
D. System up for 3 days 4 hours 12 minutes, load averages: 0.15 0.10 0.05

Solution

  1. Step 1: Understand uptime output format

    The uptime command shows current time, system uptime in days and hours:minutes, number of users, and load averages.
  2. Step 2: Match given data to output style

    The correct format includes current time, "up 3 days, 4:12", user count, and load averages separated by commas.
  3. Final Answer:

    10:30:00 up 3 days, 4:12, 1 user, load average: 0.15, 0.10, 0.05 -> Option A
  4. Quick Check:

    uptime shows time, up, users, load [OK]
Hint: Look for 'up' and load averages format in uptime output [OK]
Common Mistakes:
  • Expecting uptime to print in verbose sentences
  • Missing commas or user count in output
  • Confusing uptime with other commands
4. You run vmstat 1 3 but get an error saying "command not found". What is the most likely cause?
medium
A. vmstat is not installed on the system
B. The interval must be greater than 1 second
C. The command syntax is incorrect; count must be last
D. You need to run vmstat as root user

Solution

  1. Step 1: Verify vmstat syntax

    vmstat 1 3 uses correct syntax: 1-second delay, 3 samples.
  2. Step 2: Analyze the error

    "command not found" means vmstat (from procps package) is not installed.
  3. Final Answer:

    vmstat is not installed on the system -> Option A
  4. Quick Check:

    command not found = not installed [OK]
Hint: vmstat missing? Install procps package [OK]
Common Mistakes:
  • Assuming syntax error for missing command
  • Thinking root needed for vmstat
  • Believing interval too small
5. You want to monitor CPU and memory usage every 2 seconds for 5 samples using vmstat. Which command will correctly do this and what will be the total monitoring time?
hard
A. vmstat 2 5; total time 10 seconds
B. vmstat 5 2; total time 10 seconds
C. vmstat 2 5; total time 8 seconds
D. vmstat 5 2; total time 8 seconds

Solution

  1. Step 1: Understand vmstat interval and count

    vmstat 2 5 runs vmstat every 2 seconds, 5 times total.
  2. Step 2: Calculate total monitoring time

    vmstat prints the first line immediately, then 4 intervals of 2 seconds each, so total time = 2 * (5 - 1) = 8 seconds.
  3. Final Answer:

    vmstat 2 5; total time 8 seconds -> Option C
  4. Quick Check:

    Total time = interval * (count - 1) [OK]
Hint: Total time = interval x (count - 1) for vmstat [OK]
Common Mistakes:
  • Multiplying interval by count instead of count-1
  • Swapping interval and count values
  • Assuming total time equals interval x count
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard