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

What are the benefits of using // instead of http:// (adaptive https)

//Default protocol /The use of the default protoc...

Detailed explanation of mktemp, a basic Linux command

mktemp Create temporary files or directories in a...

Install Apache2.4+PHP7.0+MySQL5.7.16 on macOS Sierra

Although Mac systems come with PHP and Apache, so...

Native JS to achieve image marquee effects

Today I will share with you a picture marquee eff...

Alpine Docker image font problem solving operations

1. Run fonts, open the font folder, and find the ...

A brief discussion on the synchronization solution between MySQL and redis cache

Table of contents 1. Solution 1 (UDF) Demo Case 2...

Example of how to increase swap in CentOS7 system

Preface Swap is a special file (or partition) loc...

A brief analysis of the usage of USING and HAVING in MySQL

This article uses examples to illustrate the usag...

Optimization methods when Mysql occupies too high CPU (must read)

When Mysql occupies too much CPU, where should we...

JQuery implements hiding and displaying animation effects

This article shares the specific code of JQuery t...

Detailed explanation of the use of Docker commit

Sometimes you need to install certain dependencie...