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)[[email protected] ~]$ free 显示内存使用情况
[[email protected] ~]$ free //以kn为单位显示 total used free shared buff/cache available Mem: 2013872 641564 864800 10132 507508 1164056 Swap: 2097148 0 2097148 [[email protected] ~]$ free -m //以MB为单位显示 total used free shared buff/cache available Mem: 1966 626 844 9 495 1136 Swap: 2047 0 2047 [[email protected] ~]$ free -g //以GB为单位进行显示 total used free shared buff/cache available Mem: 1 0 0 0 0 1 Swap: 1 0 1 [[email protected] ~]$
第一部分Mem行解释:
total: 内存总数;
used: 已经使用的内存数;
free: 空闲的内存数;
Buffers/cached: 磁盘缓存的大小。
关系: total = used + free +Buffers/cached
第二部分Swap指的是交换分区,也就是我们通常所说的虚拟内存。
2)[[email protected] ~]$ free -t 以总的形式显示内存的使用情况
[[email protected] ~]$ 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)[[email protected] ~]$ free -s 3 每三秒执行一次free操作
[[email protected] ~]$ 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看内存是否够用的标准。