free-简单明了解释清楚怎么看内存使用
free命令可以用来查看系统内存使用情况。我一般习惯-m参数以MB的方式查看
[root@localhost ~]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
其他参数
- -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=
vm.drop_caches =
[root@localhost ~]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
不过这个还是会慢慢涨起来的!
参考:http://blogread.cn/it/article/7195?f=wb
free-简单明了解释清楚怎么看内存使用的更多相关文章
- oracle中number类型最简单明了解释
NUMBER (p,s) p和s范围: p 1-38 s -84-127 number(p,s),s大于0,表示有效位最大为p,小数位最多为s,小数点右边s位置开始四舍五入,若s>p,小数点右侧 ...
- oracle中number数据类型简单明了解释
NUMBER (p,s) p和s范围: p 1-38 s -84-127 number(p,s),s大于0,表示有效位最大为p,小数位最多为s,小数点右边s位置开始四舍五入,若s>p,小数点右侧 ...
- 前端神器之Sublime Text2/3简单明了使用总结
为什么叫神器呢? 我总结如下: 第一:也是最重要的,它占内存很小(就如同notepad++那般迅速打开,所以那款其实也不错~).一般IDE比如WebStorm(它也是一款神器来着),Aptana(也比 ...
- Bitmap具体解释与Bitmap的内存优化
感觉这里的排版看着更舒服些 Bitmap具体解释与Bitmap的内存优化 一.Bitmap: Bitmap是Android系统中的图像处理的最重要类之中的一个.用它能够获取图像文件信息,进行图像剪切. ...
- 第一次有人把5G讲的这么简单明了
第一次有人把5G讲的这么简单明了 鲜枣课堂 纯洁的微笑 今天 关于5G通信,常见的文章都讲的晦涩难懂,不忍往下看,特转载一篇,用大白话实现5G入门. 简单说,5G就是第五代通信技术,主要特点是波长为毫 ...
- python中和生成器协程相关的yield from之最详最强解释,一看就懂(四)
如果认真读过上文的朋友,应该已经明白了yield from实现的底层generator到caller的上传数据通道是什么了.本文重点讲yield from所实现的caller到coroutine的向下 ...
- python中和生成器协程相关yield from之最详最强解释,一看就懂(二)
一. 从列表中yield 语法形式:yield from <可迭代的对象实例> python中的列表是可迭代的, 如果想构造一个生成器逐一产生list中元素,按之前的yield语法,是在 ...
- python中和生成器协程相关的yield之最详最强解释,一看就懂(一)
yield是python中一个非常重要的关键词,所有迭代器都是yield实现的,学习python,如果不把这个yield的意思和用法彻底搞清楚,学习python的生成器,协程和异步io的时候,就会彻底 ...
- 阿里云下 centos7下启动程序总是被killed ,看内存占用情况以检查哪些服务存在问题并调整参数作调优
很久不搭理自己的网站了,几天突然发现启动程序总是被killed, 于是查看了系统日志 vi /var/log/messages 发现出现 kernel: Out of memory: Kill pro ...
随机推荐
- Elixir 1.0 Release
如期而至,9.9苹果产品发布会之后,紧接着在今天(教师节)我们终于等到了Elixir 1.0,苹果范儿的说法是:Now,Elixir 1.0 is here 注意:官网上的链接说明之类还没有更新过 ...
- datatable和list的转换
在开发中,把查询结果以DataTable返回很方便,但是在检索数据时又很麻烦,没有list<T>检索方便.但是数据以ILIST形式返回,就为我们在.NET中使用传统的数据绑定造成了不便.下 ...
- VmWare平台Windows Server 2012 无响应宕机
我们生产服务器都部署在VMware ESXi 5.5平台上,最近大半年的时间,偶尔就会出现操作系统为Windows Servre 2012的服务器出现没有任何响应(unresponsive)的情况,出 ...
- xcache的使用与配置
一.安装Xcache # wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz # tar zxvf xcach ...
- SQL拼接字段数据
查询语句: SELECT STUFF ( ( SELECT ',' + --分隔符 KeyID --查询字段 FROM #tmp --查询数据表 WITH(NOLOCK) --查询条件 FOR XML ...
- tftp-nfs开发环境搭建
嵌入式开发通常使用主机-开发板的开发模式,在裸板开发中,我们通常使用串口调试工具传递文件,比如windows平台的超级终端,SecuCRT以及Linux平台的ckermit(题外话:ckermit比w ...
- XML简介与CDATA解释
简介XML 是一种受到广泛支持的 Internet 标准,用于以一种特殊的方式编码结构化数据.实际上,以 XML 编码的数据可以通过任何编程语言解码,人们甚至可以使用标准的文本编辑器来阅读或编写 XM ...
- 图像抠图算法学习 - Shared Sampling for Real-Time Alpha Matting
一.序言 陆陆续续的如果累计起来,我估计至少有二十来位左右的朋友加我QQ,向我咨询有关抠图方面的算法,可惜的是,我对这方面之前一直是没有研究过的.除了利用和Photoshop中的魔棒一样的技术或者 ...
- asp.net缓存
copy:http://www.cnblogs.com/knowledgesea/archive/2012/06/20/2536603.html 一.缓存概念,缓存的好处.类型. ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...