linux free 解读
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
不过这个还是会慢慢涨起来的!
linux free 解读相关推荐
- linux fstab解读
fstab这个文件挺有用的. 从左到右: /dev/device mount-point type rules dump fsck 1. /dev/device: 不用说了吧?例如,/dev/hda1 ...
- 2022-04-26 linux文件系统解读
目录 摘要: 文件系统核心抽象概念: 一. super_block 二. inode 三. dentry 文件系统的设计思想: 一. 面向对象 二. VFS 核心操作: sys_open sys_mo ...
- Linux命令解读(一):head -n 80 /dev/urandom | tr -dc A-Za-z0-9 | head -c 22
head -n 80 /dev/urandom | tr -dc A-Za-z0-9 | head -c 22 (该命令是针对: 微信小程序登录 生成 3rd_session 的命令, 官方推荐 3r ...
- linux源代码解读,【原创】Linux MM 源代码解读 (1)
最近转载了不少文章,自己也读了ULK3 MM章节数遍,小有体会.写一些心得,以免自己忘记. 之前一些virtual address到physical address的映射的基本MM机制,可以参看博客转 ...
- linux下网口监控软件_超赞的!Aibaba技术官分享高性能Linux服务器解读笔记
一个运行缓慢的应用程序有时会让人抓狂,此时需要在问题诊断的基础上进行性能调整. 随着虚拟化.云计算时代的来临,Linux得到迅猛发展,在服务器领域已经占据半壁江山,而基于Linux的运维也面临新的挑战 ...
- linux——百度百科
https://baike.baidu.com/item/linux/27050?fr=aladdin linux 编辑 本词条由"科普中国"百科科学词条编写与应用工作项目审核. ...
- Windows如何读取Linux,Linux下读取Windows注册表
原本以为Linux下读取Windows的注册表是个异想天开.无法实现的想法,忽然发现了老外写的一段小文章 http://www.linuxidc.com/Linux/2011-04/34100p2.h ...
- 【Linux】Linux内核数据结构:IDR(redix树)
1. 引言 最近在系统里遇到了IDR结构体,后来看了一下,是内核的一个基础结构. 这个是怎么引入的,引入是为了什么呢? 最早的时候,我们的结构体是一个类似于大结构体套小结构体. struct A {i ...
- Linux shell、内核及系统编程精品资料下载汇总 topsage
shell编程.sed.awk.grep相关: UNIX shell by Example 第四版 UNIX shell范例精解 (第4版) 中文高清PDF下载 Shell脚本学习指南(Classic ...
最新文章
- 揭秘三维视觉之结构光原理
- 忠告14:神原裕司郎:成功源于积累
- 利用HAProxy实现零停机更新维护
- 【教程】Cubieboard变苹果无线airplay音响
- Tensorflow2.x.x最基础的神经网络(ANN)
- AtCoder AGC035D Add and Remove (状压DP)
- 实战Jquery(一)--username校验
- bracket 教程
- css匹配,提高css效率
- php接入腾讯云短信SDK
- 文档管理,PDF控件PDF-XChange PRO SDK
- abb机器人写字程序实例_ABB机器人编程之程序流程指令(含案例)
- 阿里巴巴程序员常用的 15 款开发者工具!你知道几个?
- 自然风景Mac高清动态壁纸分享来了
- “牌面”养成记7:宜家的成功不是靠设计?!
- Docker安装部署及使用
- 第十九讲 信息安全管理【2021年软考-高级信息系统项目管理师】
- 图解Esp32/ESP8266进行组网开发所需了解的那些小概念
- 让自己的博客可以在百度上搜索到
- 应用决策树算法进行股票财务特征分析
热门文章
- [Android初级]可自动切换、无限滑动的广告栏的实现
- speedoffice(PPT)怎么给图片添加边框
- android端的的网络访问
- 「Arm Arch」 虚拟化微架构
- 哪个软件可以免费pdf转word?可以pdf转word的软件分享给你
- windows10 21H1 访问samba 显示错误的密码 问题解决
- 北大青鸟昌平校区:高中学历可以学UI吗?
- 一、PX4环境搭建和编译(Ubuntu 16.04、ROS kinetic)
- C#中的数据字典Dictionary
- SM2259XT主控量产成功,N18 QLC 29F01TDS3AQH1 360G固态开卡