free命令可以顯示當前系統未使用的和已使用的內存數目,還可以顯示被內核使用的內存緩沖區。
(1)用法:
用法: free [選項參數]
(2)功能:
功能: free 命令顯示系統使用和空閑的內存情況,包括物理內存、交互區內存(swap)和內核緩沖區內存。共享內存將被忽略。
(3)選項參數:
1) -b 以Byte為單位顯示內存使用情況。
2) -k 以KB為單位顯示內存使用情況。
3) -m 以MB為單位顯示內存使用情況。
4) -g 以GB為單位顯示內存使用情況。
5) -s 每3秒執行一次free操作
(4)實例:
1)[sunjimeng@localhost ~]$ free 顯示內存使用情況
[sunjimeng@localhost ~]$ free //以kn為單位顯示 total used free shared buff/cache available Mem: 2013872 641564 864800 10132 507508 1164056 Swap: 2097148 0 2097148 [sunjimeng@localhost ~]$ free -m //以MB為單位顯示 total used free shared buff/cache available Mem: 1966 626 844 9 495 1136 Swap: 2047 0 2047 [sunjimeng@localhost ~]$ free -g //以GB為單位進行顯示 total used free shared buff/cache available Mem: 1 0 0 0 0 1 Swap: 1 0 1 [sunjimeng@localhost ~]$
第一部分Mem行解釋:
total: 內存總數;
used: 已經使用的內存數;
free: 空閑的內存數;
Buffers/cached: 磁盤緩存的大小。
關系: total = used + free +Buffers/cached
第二部分Swap指的是交換分區,也就是我們通常所說的虛擬內存。
2)[sunjimeng@localhost ~]$ free -t 以總的形式顯示內存的使用情況
[sunjimeng@localhost ~]$ free -t total used free shared buff/cache available Mem: 2013872 640344 865772 10132 507756 1165108 Swap: 2097148 0 2097148 Total: 4111020 640344 2962920
3)[sunjimeng@localhost ~]$ free -s 3 每三秒執行一次free操作
[sunjimeng@localhost ~]$ free -s 3 total used free shared buff/cache available Mem: 2013872 642136 863972 10132 507764 1163300 Swap: 2097148 0 2097148 total used free shared buff/cache available Mem: 2013872 642148 863960 10132 507764 1163288 Swap: 2097148 0 2097148
......
(5)其他:
buffers和cached都是緩存,兩者的區別:
為了提高磁盤存取效率, Linux做了一些精心的設計, 除了對dentry進行緩存(用於VFS,加速文件路徑名到inode的轉換), 還采取了兩種主要Cache方式:Buffer Cache和Page Cache。前者針對磁盤塊的讀寫,后者針對文件inode的讀寫。這些Cache有效縮短了 I/O系統調用(比如read,write,getdents)的時間。
簡單說來,page cache用來緩存文件數據,buffer cache用來緩存磁盤數據。在有文件系統的情況下,對文件操作,那么數據會緩存到page cache,如果直接采用dd等工具對磁盤進行讀寫,那么數據會緩存到buffer cache。
所以我們看linux,只要不用swap的交換空間,就不用擔心自己的內存太少.如果常常swap用很多,可能你就要考慮加物理內存了.這也是linux看內存是否夠用的標准。