1. 程式人生 > >Linux常用工具介紹——free

Linux常用工具介紹——free

linux常用工具

在Linux系統中,我們查看、監控系統內存使用情況,一般最常用的命令就是free,

關於free的實現,其實是調用linux下的/proc/meminfo文件。
[[email protected] /]# free -V
free from procps-ng 3.3.9

[[email protected] /]# free
total used free shared buffers cached
Mem: 1010884 935560 75324 1560 0 22996

-/+ buffers/cache: 912564 98320
Swap: 2129916 565404 1564512

指 標

指 標 意 義

total

總的物理內存大小。total=used + free

used

已經使用的物理內存。一般情況這個值比較大。used=buffers + cached (maybe add shared also)+ -buffers/cache(used)

free

完全未使用的物理內存

shared

應用程序共享的物理內存

buffers

緩存,主要用於塊設備緩存,例如用戶目錄、inode值等(ls大目錄可以看到這個值增加)

cached

緩存,主要用於緩存文件。

指 標

指 標 意 義

前個值表示-buffers/cache

應用程序使用的內存大小,used減去緩存值:-buffers/cache=used-buffers-cached

後個值表示+buffers/cache

所有可供應用程序使用的內存大小,free加上緩存值:+buffers/cache=free+buffers+cached

下面是對buffers和cached具體價紹下。

buffers:是指用來給塊設備做的緩沖大小,它只記錄文件系統的metadata以及 tracking in-flight pages.

cached:是用來給文件做緩沖。

那就是說:buffers是用來存儲目錄裏面有什麽內容,權限等等。而cached直接用來緩存我們打開的文件

也就是說buffers是用於存放要輸出到disk的塊設備數據的,而cache是存放從disk上讀出的數據。這二者是為了提高IO性能的,並由OS管理。

total = used + free

1010884 = 936044 + 74840

-/+buffers/cache(used) 表示第三行的used列的值。-/+buffers/cache(free) 表示第三行free列的值

-/+buffers/cache(used) = used - buffers - cached

911656 = 936044 - 0 - 24388

-/+buffers/cache(free) = free + buffers + cached

99228 = 74840 + 0 + 24388

二、現在我們來看新版,

[[email protected] /]# free -V
free from procps-ng 3.3.10

[[email protected] /]# free
total used free shared buff/cache available
Mem: 1009304 598164 252724 6796 158416 257044
Swap: 2097148 0 2097148

2016年之後發布的內核, "-/+ buffers/cache" 例被取代了。

內存分配改為total = used + free + cache

可用內存直接看available了。

參考:http://www.linuxatemyram.com/

本文出自 “59090939” 博客,請務必保留此出處http://59090939.blog.51cto.com/6338052/1947093

Linux常用工具介紹——free