玩转Linux之内存管理-free
玩转Linux之内存管理-free
free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。下面给出一个free命令的栗子:
[root@compute ~]# free
total used free shared buffers cached
Mem: 8062392 2092832 5969560 0 187132 1498832
-/+ buffers/cache: 406868 7655524
Swap: 2097148 0 2097148
下面介绍一下这个命令的输出结果信息:
第一行:显示了内存的详细信息,比如说总内存、已用的内存、空闲的内存、多个进程共享的内存、用于缓冲区的内存以及用于缓存的内存。
第二行:显示了总的缓冲区内存/缓存的内存使用以及空闲的情况。使用的是第二行used总内存(2092832)-used缓冲区内存(187132)-used缓存区内存(1498832)=406868.空闲的是total的(8062392)-used的缓存/缓冲区内存(406868)=7655524.
第三行:显示了总的交换区总内存、已用的以及空闲的内存。交换区的就是在HDD上创建的用来增加虚拟的增加内存大小的虚拟内存。那么问题来了:
缓冲区和缓存有什么区别呢?
缓冲区是针对特定的应用临时存储数据的地方,而且这些数据不能被其它应用使用。这和带宽的概念比较相似。当你尝试通过网络来传输突发性的数据时,如果你的网卡只能发送少量的数据时,它能把这些大量的数据存在缓冲区中,以便它能以较低的网卡能接受的速度来发送这些数据。在另一方面,缓存是为了更快的访问而存储一些被频繁使用的数据的东西。其它的不同就是缓存能被多次使用而缓冲区只能被用一次。但是它们都为你的数据处理提供一个临时存储。下面举些栗子来说下使用方法。
free命令使用的栗子
1.以兆字节为单位显示内存(常用)
这个是很好记的,就是-m:
[root@compute ~]# free -m
total used free shared buffers cached
Mem: 7873 2043 5829 0 182 1463
-/+ buffers/cache: 397 7476
Swap: 2047 0 2047
2.还有以字节、千字节、千兆为单位显示内存(不常用)
使用-b、-k、-g参数,即可以字节、千字节、千兆字节为单位显示内存的大小:
[root@compute ~]# free -b
total used free shared buffers cached
Mem: 8255889408 2142736384 6113153024 0 191623168 1534803968
-/+ buffers/cache: 416309248 7839580160
Swap: 2147479552 0 2147479552
3.显示总计使用情况
使用-t参数,将会多一行total用于显示总的使用量:
[root@compute ~]# free -t
total used free shared buffers cached
Mem: 8062392 2092516 5969876 0 187132 1498832
-/+ buffers/cache: 406552 7655840
Swap: 2097148 0 2097148
Total: 10159540 2092516 8067024
4.关闭显示缓冲区那一行
使用-o参数,即可关闭第二行的显示:
[root@compute ~]# free -o
total used free shared buffers cached
Mem: 8062392 2092764 5969628 0 187132 1498832
Swap: 2097148 0 2097148
5.以一个固定的时间间隔更新当前内存使用情况
加上-s参数,然后在-s参数后加上一个整数便会在定期的时间间隔中更新内存的使用情况,下面我将举个栗子,凑个整数吧,在1024s内更新一次:
[root@compute ~]# free -o
total used free shared buffers cached
Mem: 8062392 2092764 5969628 0 187132 1498832
Swap: 2097148 0 2097148
6.额外显示低以及高的内存的统计数据
使用-l参数额外显示低以及高的内存大小统计数据:
[root@compute ~]# free -l
total used free shared buffers cached
Mem: 8062392 2092516 5969876 0 187132 1498832
Low: 8062392 2092516 5969876
High: 0 0 0
-/+ buffers/cache: 406552 7655840
Swap: 2097148 0 2097148
7.查看free命令的版本
使用-V参数显示版本信息:
[root@compute ~]# free -V
procps version 3.2.8
以上。
参考:http://www.linuxnix.com/2013/05/find-ram-size-in-linuxunix.html
http://www.tecmint.com/check-memory-usage-in-linux/
PS:本博客欢迎转发,但请注明博客地址及作者,因本人水平有限,若有不对之处,欢迎指出,谢谢~
博客地址:http://www.cnblogs.com/voidy/
博客新址:http://voidy.net
<。)#)))≦
玩转Linux之内存管理-free的更多相关文章
- Linux堆内存管理深入分析(下)
Linux堆内存管理深入分析 (下半部) 作者@走位,阿里聚安全 0 前言回顾 在上一篇文章中(链接见文章底部),详细介绍了堆内存管理中涉及到的基本概念以及相互关系,同时也着重介绍了堆中chunk分 ...
- Linux堆内存管理深入分析(上)
Linux堆内存管理深入分析(上半部) 作者:走位@阿里聚安全 0 前言 近年来,漏洞挖掘越来越火,各种漏洞挖掘.利用的分析文章层出不穷.从大方向来看,主要有基于栈溢出的漏洞利用和基于堆溢出的漏洞 ...
- 深入理解Linux中内存管理
前一段时间看了<深入理解Linux内核>对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看 ...
- Linux堆内存管理深入分析
(上半部) 作者:走位@阿里聚安全 前言 近年来,漏洞挖掘越来越火,各种漏洞挖掘.利用的分析文章层出不穷.从大方向来看,主要有基于栈溢出的漏洞利用和基于堆溢出的漏洞利用两种.国内关于栈溢出的资料相对较 ...
- 浅谈Linux的内存管理机制
转至:http://ixdba.blog.51cto.com/2895551/541355 一 物理内存和虚拟内存 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此, ...
- Linux内核内存管理算法Buddy和Slab: /proc/meminfo、/proc/buddyinfo、/proc/slabinfo
slabtop cat /proc/slabinfo # name <active_objs> <num_objs> <objsize> <objpersla ...
- Linux的内存管理
Linux的内存管理,实际上跟windows的内存管理有很相像的地方,都是用虚拟内存这个的概念,说到这里不得不骂MS,为什么在很多时候还有很大的物理内存的时候,却还是用到了pagefile. 所以才经 ...
- Linux堆内存管理深入分析 (上半部)【转】
转自:http://www.cnblogs.com/alisecurity/p/5486458.html Linux堆内存管理深入分析(上半部) 作者:走位@阿里聚安全 0 前言 近年来,漏洞挖掘越来 ...
- Linux的内存管理机制
原文作者:技术成就梦想 链接:http://ixdba.blog.51cto.com/2895551/541355 一 物理内存和虚拟内存 我们知道,直接从物理内存读写数据要比从硬盘 ...
随机推荐
- C#调用C++的dll存在的问题
C#调用C++写的DLL时,在C#程序中,使用DllImport定义C++导出函数的定义信息,之前在C++中定义导出函数时,使用了long作为参数类型,使用C#调用时,开始在64位版本是哪个测试,一切 ...
- SAP CRM WebClient UI和Fiori UI混搭并存
SAP CRM里有个功能可以创建HANA live report,消费HANA Studio里创建的模型. 最后创建好的report长这个样子: 具体创建步骤可以参考我的博客Step by Step ...
- POJ - 3109 Inner Vertices
不存在-1的情况,而且最多一轮就结束了.如果新增加的黑点v0会产生新的黑点v1,那么v0和v1肯定是在一条轴上的,而原来这条轴上已经有黑点了. 离散以后扫描线统计,往线段上插点,然后查询区间上点数. ...
- jade简介
模板引擎:将动静部分糅合的一种实现机制或者技术 var items = [ {title:'..',photo:'http://',id:1,desc:'a'}, {title:'..',photo: ...
- 2017.10.25 Java List /ArrayList 三种遍历方法
java list三种遍历方法性能比较 学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入记录,然后遍历ArrayList,测试代码如下: pac ...
- 20145238-荆玉茗《Java程序设计》课程总结
每周读书笔记链接汇总 第一周读书笔记: 第二周读书笔记: 第三周读书笔记: 第四周读书笔记: 第五周读书笔记: 第六周读书笔记: 第七周读书笔记: 第八周读书笔记: 第九周读书笔记: 实验报告链接汇总 ...
- P3740 贴海报
P3740 贴海报 很显然,这个题是让我们维护一个区间的信息 可以考虑线段树.可是这个题,正向思维可能并不可做. 所以我们考虑逆向思维. 打个比方,你是一名保洁人员.面对已经粘在墙上的,大大小小的广告 ...
- leanote开源云笔记
下载链接 http://yunpan.cn/cZ42hEEQcYMMz (提取码:16a1)
- HttpContext.RewritePath
定义:使用给定路径重写 URL.就是可以跳转到指定的URL. 也可以做为伪静态的跳转.具体如下. 他的重载 ①新建一个页面,放两个链接到另一个页面,注意给的链接 ②在 global.asax 文件中 ...
- java mysql多次事务 模拟依据汇率转账,并存储转账信息 分层完成 dao层 service 层 client层 连接池使用C3p0 写入库使用DBUtils
Jar包使用,及层的划分 c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3 ...