Article Title: for beginners, refer to the detailed analysis of Linux operating system memory. Linux is a technology channel of the IT lab in China. Includes basic categories such as desktop applications, Linux system management, kernel research, embedded systems, and open source.
Linux is not as convenient as Windows Memory, and there is a new concept of Swap. Therefore, it makes sense to know how to look at Linux memory.
In Linux, we usually use command free to view memory.
[Root @ nonamelinux ~] # Free
Total used free shared buffers cached
Mem: 386024 377116 8908 0 21280 155468
-/+ Buffers/cache: 200368 185656
Swap: 393552 0 393552
The following is an explanation of these values:
Row 2 (mem ):
Total: total physical memory size.
Used: used.
Free: available.
Shared: The total memory Shared by multiple processes.
Buffers/cached: disk cache size.
Row 3 (-/+ buffers/cached ):
Used: used.
Free: available.
The fourth line won't be explained much.
Differences:
The difference between used/free of the second row (mem) and used/free of the third row (-/+ buffers/cache.
The difference between the two is that from the usage perspective, the first line is from the OS perspective, because for OS, buffers/cached is used, so its available memory is 8908KB, the used memory is kb, including the + buffers + cached used by the kernel (OS) + Application (X, oracle, etc.
The third line indicates that, from the application perspective, for applications, buffers/cached is equivalent to available, because buffer/cached is designed to improve file read performance, when the application needs to use the memory, buffer/cached will be quickly recycled.
From the application perspective, the available memory = system free memory + buffers + cached.
For example:
185656 = 8908 + 21280 + 155468
Next, we will explain when the memory will be exchanged and by which side.
When the available memory is less than the rated value, a meeting will be held for exchange.
Rating (RHEL4.0 ):
# Cat/proc/meminfo
Switching reduces the number of physical pages used in the system in three ways:
1. Reduce the buffer and page cache size,
2. swap out the V-type memory page of the system,
3. Swap out or discard the page. (The Memory Page occupied by the Application, that is, the physical memory is insufficient ).
In fact, using swap in a small amount affects the system performance.
The following is the difference between buffers and cached.
Buffers is the buffer size for Block devices. It only records the metadata and tracking in-flight pages of the file system.
Cached is used to buffer files.
That is to say: buffers is used for storage. What content and permissions are contained in the directory.
Cached is used directly to remember the files we opened. If you want to know whether the files take effect, you can try and execute two commands one by one # man X, you can obviously feel that the second start is much faster.
Experiment: it is obvious on a machine with no application. Remember that the experiment can only be performed once. If you want to do more, change the file name.
# Free
# Man X
# Free
# Man X
# Free
You can compare the size of buffers after free.
Another experiment:
# Free
# Ls/dev
# Free
You can compare the two sizes. Of course, the buffers are increasing at any time, but if you have ls, the increase will be faster. This is the difference between buffers and chached.