A brief introduction to Linux performance monitoring commands free

A brief introduction to Linux performance monitoring commands free

When the system encounters various IO bottlenecks, high memory usage, high CPU usage and other problems, how do we locate the error? Linux provides many commands to help us quickly locate errors. The free command is one of the most commonly used commands in Linux: it can view the system's memory status, including the server's total memory, used memory, and remaining unused memory, as well as the memory occupied by the buffer and cache.

$ free -m
total used free shared buffers cached
Mem: 994 787 207 0 121 227
-/+ buffers/cache: 437 557
Swap: 0 0 0

To fully understand the above three lines of data, first understand what buffer and cache are.

buffer: buffer

Buffer the data to solve the handover problem between slow and fast speeds; the fast speed needs to pass the data bit by bit to the slow speed area through the buffer. For example: when writing data from memory to hard disk, it is not written directly, but buffered to a certain size and then flushed to the hard disk.

A buffer is something that has yet to be "written" to disk.

cache: cache

To achieve data reuse, slow devices need to cache frequently used data, and the cached data can provide high-speed transmission to fast devices. For example: reading data from the hard disk and placing it in the cache area of ​​the memory will allow the same resource to be accessed much faster in the future.

A cache is something that has been "read" from the disk and stored for later use.

The buffer is used to store data to be output to the disk (block device), while the cache is used to store data read from the disk. Both are designed to improve IO performance.

After understanding the role of buffer and cache, the information displayed by free is easy to understand. Now let's analyze the meaning of each line of the free command output:

First row: Mem

The total memory 994 (total) = 787 (used) + 207 (free), used indicates the memory that has been used by the system, which includes the memory used by the application and the sum of the memory used for buffering and caching.

Second line: -/+ buffers/cache

-buffers/cache: 437(used) = 787(used) - 121(buffers) - 227(cached), 437 means that excluding the memory consumed by buffers and caches, the actual memory consumed by the application is 437M.

+buffers/cache: 557(free) = 207(free)+121(buffers)+cached(227), 557 means the system has 557M of available memory, because if there is a memory shortage, the memory occupied by buffers and cache can still be used by applications.

Third row: Swap

I have seen many articles that simply say no need to explain, but I want to explain here that Swap means swap partition, which is what we usually call virtual memory. You can use part of the disk space as memory. This space is called virtual memory. When the system memory is insufficient, the system will temporarily put those programs that are still resident in the memory but not currently running into the virtual memory.

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • Detailed explanation of the performance monitoring ideas of specified processes in Linux system based on Python
  • PHP+swoole+linux to achieve system monitoring and performance optimization operation example
  • Detailed explanation of using top command to analyze Linux system performance
  • Detailed explanation of Linux server status and performance related commands
  • Detailed explanation of Linux performance test pmap command
  • 20 Linux server performance optimization tips worth collecting
  • Tutorial on using http_load, a web performance stress testing tool, under Linux
  • Four ways to achieve web data synchronization under Linux (performance comparison)
  • Linux+Nginx+Php to build a high-performance WEB server
  • Linux performance monitoring tool nmon installation and usage tutorial analysis

<<:  How to use CSS custom variables in Vue

>>:  MySQL 8 new features: Invisible Indexes

Recommend

Vue implements three-level navigation display and hiding

This article example shares the specific code of ...

XHTML tutorial, a brief introduction to the basics of XHTML

<br />This article will briefly introduce yo...

10 very good CSS skills collection and sharing

Here, clever use of CSS techniques allows you to g...

Comparison of the efficiency of different methods of deleting files in Linux

Test the efficiency of deleting a large number of...

Common writing examples for MySQL and Oracle batch insert SQL

Table of contents For example: General writing: S...

The latest version of MySQL5.7.19 decompression version installation guide

MySQL version: MySQL Community Edition (GPL) ----...

A brief discussion on DDL and DML in MySQL

Table of contents Preface 1. DDL 1.1 Database Ope...

How to use not in to optimize MySql

Recently, when using select query in a project, I...

Summary of 7 reasons why Docker is not suitable for deploying databases

Docker has been very popular in the past two year...

Detailed explanation of overlay network in Docker

Translated from Docker official documentation, or...

How to submit the value of a disabled form field in a form Example code

If a form field in a form is set to disabled, the ...

A Deeper Look at the Differences Between Link and @import

There are three main ways to use CSS in a page: ad...