一、free命令
free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
(1)用法:
用法:free [选项参数]
(2)功能:
功能:free命令显示系统使用和空闲的内存情况,包括物理内存、交换区内存(swap)和内核缓冲区内存。共享内存将被忽略。
(3)选项参数:
1)-b 以Byte为单位显示内存使用情况
2)-k 以KB为单位显示内存使用情况
3)-m 以MB为单位显示内存使用情况
4)-g 以GB为单位显示内存使用情况
5)-s 每3秒执行一次free操作
(4)实例:
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
第一部分Mem行解释:
total: 内存总数;
used: 已经使用的内存数;
free: 空闲的内存数;
Buffers/cached: 磁盘缓存的大小;
关系:total=used+free+Buffers/cached
第二部分Swap指的是交换分区,也就是我们通常所说的虚拟内存
2)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)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看内存是否够用的标准。