here gets the first equation:
FO[2][1] = FO [2][2] + FO[2][3]
FO[2][4] indicates that the memory shared by several processes is now deprecated, and its value is always 0 (of course on some systems too) May not be 0, mainly depends on how the free command is implemented).
FO[2][5] represents the memory that is occupied by the OS buffer. FO[2][6] indicates the memory of the OS cache. In some cases, the words buffer and cache are often mixed. However, in some lower-level software, it is necessary to distinguish these two words, look at the foreigner's foreign language:
A buffer is something that has yet to be "written" to disk.A cache is something that has been " Read" from the disk and stored for later use.
That is, the buffer is used to store the data to be output to the disk (block device), and the cache is to store the data read from the disk. Both are designed to improve IO performance and are managed by the OS.
Linux and other mature operating systems (such as windows), in order to improve the performance of IO read, always have to cache more data, which is why FO[2][6](cached memory) is relatively large And FO[2][3] is a small reason. We can do a simple test:
1. Free up the data occupied by the system cache;
echo 3>/proc/sys/vm/drop_caches
2. Read a large file and record the time;
3. Close the file;
4. Reread the large file and record the time;
The second read should be better than The first time is a lot faster. I used to do a BerkeleyDB read operation, read 5G files, tens of millions of records. In my environment, the second reading is about 9 times faster than the first.
The second line of free output is the use of system memory from the perspective of an application.
For FO[3][2], ie -buffers/cache, indicates how much memory an application thinks the system is using; for FO[3][3], ie +buffers/cache, an application thinks How much memory is in the system;
Because the memory occupied by the system cache and buffer can be quickly reclaimed, usually FO[3][3] is much larger than FO[2][3].
There are two equations here:
FO[3][2] = FO[2][2] - FO[2][5] - FO[2][6]FO[ ,null,null,3],3][3] = FO[2][3] + FO[2][5] + FO[2][6]
These two are not difficult to understand.
The free command is provided by procps.*.rpm (on the Redhat series OS). All output values of the free command are read from /proc/meminfo.
There may be a meminfo(2) function on the system, which is to parse /proc/meminfo. The procps package implements the meminfo() function itself. You can download a procps tar package to see the specific implementation, now the latest version 3.2.8.
1. Introduction to Firewalls Firewall Concept Firewalls can filter datagrams and restrict specific s
Problem Description Review Linux file system management today, mount a new hard disk on a L
First, the installation package software Here are some necessary, I will attach the downlo
Yesterday I received the zabbix alarm email, the usage rate of a servers /home directory re
Linuxbond configuration steps, seven bond mode descriptions
Linux system shutdown and restart command
Example of using Samba server under Linux
Computer technology: 10 ways to generate random passwords using Linux system
Ubuntu10.10 installed arm version of Qt encountered error: thread-local storage no
Linux command after the run -nohup
U-Boot first phase key code understanding
Using forever to implement Node.js project on Linux
Linux installer and common methods of relying on the installation package
Building a personal server is so simple!
Win 10 Edge browser experience is about to be enhanced
Windows 8 system how to limit disk access
Windows 7 System Restore CD Creation Tutorial
How to deal with Win8 automatic repair is not successful?
Requirements for installing computer hardware on Windows 8 systems
Improve the speed of five strokes practice
Win2003 browser will have a security warning every time the network access?