free命令记

本文详细解析了Linux下free命令的内存使用情况,包括物理内存、缓存、交换分区等关键概念,并阐述了如何评估系统中真正可用的内存。
free命令:

oracle[~]$free -s 5 -c 4
                       total           used        free     shared    buffers     cached
1. Mem:       1013156       943940      69216          0      48472     699168
2. -/+ buffers/cache:       196300       816856
3. Swap:      2097144           0       2097144


说明:默认上面的数值单位都是k

      第一行(Mem)的total(1013156) 表示总的物理内存大小,buffers表示将要写入硬盘的缓冲数据占用的内存空间,cached表示将要被cpu处理的的缓存数据占用的内存空间。buffers和cached对于操作系统而言,是已经分配的空间了,所以这里的used=(内核使用+应用程序使用)+buffers+cached。于是,(内核使用+应用程序使用)=used-buffers-cached= 943940-48472-699168=196300。也就是说,内核和进程实际使用的内存量是196300。

     很巧,第二行( -/+ buffers/cache: )中的used(196300)等于第一行中的“内核使用+应用程序使用“。难道他们相等仅仅是巧合?当然不是了,第二行名字虽然叫做” -/+ buffers/cache“,但是他这个used表示的也是”内核使用+应用程序使用“,进程在申请内存时候,实际看的就是第二行。因为,对于进程而言,第一行的buffers与cache都是可用的,也就是对于进程而言,free(可用空间)=total(Mem中的)-used(-/+ buffers/cache中的)=1013156-196300=free(第一行中的)+buffers+cached= 69216+48472+699168= 816856

     第三行,交换分区,暂时不做记录了。

### Linux `free` 命令功能与用法 #### 功能概述 `free` 是 Linux 系统中的一个重要命令工具,主要用于显示系统内存的使用情况。通过该命令可以获取关于物理内存(RAM)、交换空间(swap)以及缓冲区缓存的相关数据[^1]。 #### 参数说明 以下是 `free` 命令的一些常用选项及其含义: - `-b`: 显示单位为字节 (bytes)[^2]。 - `-k`: 显示单位为千字节 (KB),这是默认设置。 - `-m`: 显示单位为兆字节 (MB)。 - `-g`: 显示单位为吉字节 (GB)[^2]。 - `--tera`, `--mega`, etc.: 支持更大的单位表示方式。 - `-h`: 自动选择最合适的单位并以人类可读的形式展示结果。 - `-t`: 在输出底部增加一行总计信息,汇总内存和交换分区的数据。 - `-s <间隔秒数>`: 按指定的时间间隔重复显示内存状态。 - `-c <次数>`: 结合 `-s` 选项一起使用时定义循环显示的最大次数。 #### 示例代码 下面是一些实际使用的例子来帮助理解如何操作此命令: ```bash # 查看当前系统的内存使用概况,默认单位 KB free # 输出更易于阅读的结果,自动调整到合适大小 free -h # 同时提供总览统计行 free -th ``` 如果想要监控一段时间内的变化趋势,则可以用如下方法实现持续观察每两秒钟刷新一次共十次录的过程: ```bash free -ths 2 c 10 ``` 另外值得注意的是虽然可以通过上述手段掌握即时动态但当涉及到深入分析或者长期跟踪的话可能还需要借助其他专门软件比如 atop 或者 sar 这样的性能监测工具。 #### 测量执行效率 为了评估某个特定查询语句运行所需耗费的实际耗时时长,我们可以联合运用另一个名为time的小型实用程序来进行辅助检测工作流程表现状况。例如要计算上面提到那个定时采样过程所花费的确切时间长度就可以这样写脚本调用形式: ```bash time free -ths 2 c 10 ``` 这将会返回三个主要指标——real(wall clock), user(CPU seconds spent running code as a normal process) 和 sys(system calls made by the kernel on behalf of your program)^{3}.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值