日期:2014-05-16 浏览次数:20617 次
本文链接:http://codingstandards.iteye.com/blog/780289 ?? (转载请注明出处)
free命令用来显示内存使用情况。display information about free and used memory on the system。
b 以字节为单位显示。
-k 以K字节为单位显示。默认显示。
-m 以兆字节为单位显示。
?
-s <seconds> 每隔多少秒重复执行。可编写一个脚本用于监控。
[root@sunrise root]# free
??????????? ? ? ? ? total??????? used???? ?? free???? shared??? buffers???? cached
Mem:?????? 4091428??? 4073120????? 18308????????? 0???? 112784??? 2564792
-/+ buffers/cache:??? 1395544??? 2695884
Swap:????? 8385888????????? 0??? 8385888
[root@sunrise root]#
?
?
数值的单位是KBytes。
Mem开头的行:
total是指内存总数。比如这台机器4G内存,实际上已经扣除掉了作为显存的部分。
used是指操作系统已经使用的内存数。这部分既包括操作系统本身使用的部分,也包括应用程序已经使用的部分,还包括缓存的部分。
free是指操作系统还没有使用的内存数。我们通常看到这部分比较小。
shared已经废弃不用,总是显示0。
buffers和cached是指作为缓存的内存数。
-/+ buffers/cache开头的行:(重点看这行)
used列是指应用程序总共使用的内存数。等于Mem.used-Mem.buffers-Mem.cached。
free列是指应用程序还未使用的内存数。这个数据才是我们需要关注的空闲可用内存数。等于Mem.free+Mem.buffers+Mem.cached。
如果此行中free列的数据太小,那么就需要优化程序或者增加物理内存了。
?
[root@bbqztweb root]# free -s 60
???????????? total?????? used?????? free???? shared??? buffers???? cached
Mem:?????? 1016532???? 996320????? 20212????????? 0????? 97964???? 166716
-/+ buffers/cache:???? 731640???? 284892
Swap:????? 2040244???? 281544??? 1758700
???????????? total?????? used?????? free???? shared??? buffers???? cached
Mem:?????? 1016532???? 996328????? 20204????????? 0????? 97964???? 166724
-/+ buffers/cache:???? 731640???? 284892
Swap:????? 2040244???? 281544??? 1758700
???????????? total?????? used?????? free???? shared??? buffers???? cached
Mem:?????? 1016532???? 996460????? 20072????????? 0????? 97964???? 166724
-/+ buffers/cache:???? 731772???? 284760
Swap:????? 2040244???? 281544??? 1758700
???????????? total?????? used?????? free???? shared??? buffers???? cached
Mem:?????? 1016532???? 996316????? 20216????????? 0????? 97964???? 166740
-/+ buffers/cache:???? 731612???? 284920
Swap:????? 2040244???? 281544??? 1758700
[root@bbqztweb root]#
?
free命令实际上是根据/proc/meminfo生成的。-/+ buffers/cache:这行是计算出来的。
[root@bbqztweb root]# free -b; cat /proc/meminfo
???????????? total?????? used?????? free???? shared??? buffers???? cached
Mem:??? 1040928768 1017909248?? 23019520????????? 0? 100220928? 172040192
-/+ buffers/cache:? 745648128? 295280640
Swap:?? 2089209856? 288301056 1800908800
??????? total:??? used:??? free:? shared: buffers:? cached:
Mem:? 1040928768 1017909248 23019520??????? 0 100220928 371302400
Swap: 2089209856 288301056 1800908800
MemTotal:????? 1016532 kB
MemFree:???????? 22480 kB
MemShared:?????????? 0 kB
Buffers:???????? 97872 kB
Cached:???????? 168008 kB
SwapCached:???? 194592 kB
Active:???????? 667076 kB
ActiveAnon:???? 510760 kB