linux free 解读
来源:互联网 发布:幻灯片软件免费下载 编辑:程序博客网 时间:2024/05/22 13:39
free命令可以用来查看系统内存使用情况。我一般习惯-m参数以MB的方式查看
- [root@localhost ~]# free -m
- total used free shared buffers cached
- Mem: 1020288 947960 72328 312 82656 647740
- -/+ buffers/cache: 217564 802724
- Swap: 2097148 466656 1630492
其他参数
- -b 以Byte为单位显示内存使用情况。
- -k 以KB为单位显示内存使用情况。
- -m 以MB为单位显示内存使用情况。
- -g 以GB为单位显示内存使用情况。
- -o 不显示缓冲区调节列。
- -s<间隔秒数> 持续观察内存使用状况。
- -t 显示内存总和列。
- -V 显示版本信息。
解释:
- total:是总的物理内存
- used:使用中的内存
- free:完全空闲的内存
- shared:多个进程共享的内存
- buffers:写缓存,在写入磁盘之前,先把数据缓存一段时间,可以释放
- cache:读缓存,读取过的文件,会缓存一段时间。可以释放
- -buffers/cache:应用程序实际使用中的内存大小,等于used-buffers-cached(Mem列的三个数)
- +buffers/cache:可供使用的内存总量,等于free+buffers+cached(Mem列的三个数)
- Swap:不解释,都能看懂的
所以,可以供程序使用的内存,应该看+buffers/cache(),而不是free。
那明明已经开始使用 swap了,怎么能说内存还充足呢?
照我的理解是,系统在分配内存的时候,如果发现内存不足,会释放一批旧的cache,把空间腾出来给新申请的进程用, 有时候释放不充分或者不及时,于是开始使用到swap了!
手动释放缓存
使用sync命令可以把buffer强制写入硬盘,有时候怕配置没有生效,会使用它强制写到硬盘。如果系统突然断电,buffer的数据没保存,是会丢失的!其实,大多数情况下,占用内存的都是cache,而不是buffer!
下面来说说怎么使用sysctl强制释放缓存,和内存释放相关的内核参数是vm.drop_caches,vm.drop_caches可以设置为0、1、2、3。
说明
0 采取措施之前的默认值
1 释放pagecache
2 释放dentries 和 inodes
3 释放pagecache、dentries和inodes
实际操作可以使用如下的sysctl,也可以使用echo 3 > /proc/sys/vm/drop_caches,效果一样!
- [root@localhost ~]# sysctl vm.drop_caches=3
- vm.drop_caches = 3
- [root@localhost ~]# free -m
- total used free shared buffers cached
- Mem: 996 88 907 0 0 12
- -/+ buffers/cache: 75 920
- Swap: 2047 455 1592
不过这个还是会慢慢涨起来的!
阅读全文
0 0
- linux free命令解读
- Linux命令free解读
- linux free 解读
- free -M解读
- Free命令内容解读
- malloc/free解读
- linux free
- Linux free
- linux free
- Linux free
- Linux---free
- linux free
- 解读RIA终极目标 FREE才是王道
- Linux?Free BSD?Solaris
- linux性能分析 -- free
- AVG FREE FOR LINUX
- linux命令free详解
- linux的free命令
- java for循环定时循环
- Nginx 转发配置
- 5.6.24-72.2-log Percona Server 主从延迟
- NYOJ 103-A+B Problem II
- C++模板函数中含有数据类型成员时导致编译错误(显示未知类型)的解决方法
- linux free 解读
- 深入理解Java虚拟机(6)-.Class文件格式(五)
- Java集合---HashSet的源码分析
- PHP 实例
- MYSQL常用内置函数详解说明
- MYSQL Service for windows安装与配置步骤
- 给公司服务器装centos7.0
- 鸟叔Linux学习笔记:第0章:计算机概论
- java字符串截取方法实现