/proc/meminfo memory状态解读

命令:adb shell cat /proc/meminfo

用途:可以整体的了解memory使用情况
我们说的可用memory一般以MemAvailable的数据为准。所以了解MemAvailable的组成可以帮助理解如何提升可用内存:
MemAvailable= free+filepage +slab_reclaimable -(lowmem_reserve +high_wmark_pages) -min(filepage/2,wmark_low) - min(slab_reclaimable/2,wmark_low)
其中:
lowmem_reserve为cat /proc/zoneinfo中的protection数据; 一般获取到的数据为0: protection: (0, 0, 0)
high_wmark_pages 和 wmark_low 也是从zoneinfo中获取的high/low 水位
所以上述公式可以理解为: free, filepage, slab_reclaimable越大,且high_wmark_pages, wmark_low越小 ,则MemAvailable越多

name 释义
MemTotal 系统可用的总内存 (MemTotal = real_Dram_size - hw_reserved - kernel_reserved )
MemFree 当前剩余的物理内存总量 free跟process数据有关,就算有被压缩,但其还是会mapping相关的memory,造成free比较少
MemAvailable 系统可用内存 , 包含已使用但可回收的 ,如available = free+filepage +slab_reclaimable -(lowmem_reserve +high_wmark_pages) -min(filepage/2,wmark_low) - min(slab_reclaimable/2,wmark_low)
Buffers Buffer是为了cpu和块设备(block device)之间读写速度不对等而设计的,Buffers统计的就是这部分缓冲区的内存总大小。这部分内存drop cache可以被回收
Cached 用于文件高速缓存,不包括swapcache和buffers,即Cached = file pages-swapcache-buffers,约等于 Active(file) + Inactive(file)
SwapCached 缓存的会swap出去的内容
Active 活跃的file page和匿名page,Active = Active(anon) + Active(file),记录最近使用过的内存,通常不回收用于其它目的

内存分布log查看方式

kernel log

<4>[366310.867958] DMA free:68160kB min:5140kB low:44156kB high:45996kB active_anon:126592kB inactive_anon:126772kB active_file:211508kB inactive_file:185592kB unevictable:5380kB writepending:1896kB present:1988536kB managed:1841596kB mlocked:5380kB slab_reclaimable:40648kB slab_unreclaimable:187980kB kernel_stack:49760kB pagetables:78368kB bounce:0kB free_pcp:2844kB local_pcp:696kB free_cma:0kB

  • DMA free:68160kB
    总剩余内存
  • min:5140kB low:44156kB high:45996kB
    min/low/high 三个水位值,其释义可以参考Linux内存调节之zone watermark
  • active_anon:126592kB inactive_anon:126772kB
    userspace process memory
  • active_file:211508kB inactive_file:185592kB
    userspace file cache memory
  • managed:1841596kB
    DRAM total减掉 reserved memory ,系统总共可运用的内存大小
  • slab_reclaimable:40648kB slab_unreclaimable:187980kB
    slab 占用内存
  • kernel_stack:49760kB
    kernel stack 占用内存, 可用来计算process数量 (32bit 8k per process , 64bit 16k per porcess)
    注意ion 和 gpu 无法由此看出, 可以通过dumpsys meminfo分解 部分进一步确认

Memory基本debug指令与基础知识(一)相关推荐

  1. linux io重定向指令,Linux基础知识之 IO重定向

    通常在 Shell 中执行命令的时候,我们会在输入命令的下方看到执行结果,操作系统默认将命令的执行结果输出到显示器上.当然,我们也可以手动的指定输出路径,或者输入路径,这就是 I/O 重定向. 1.标 ...

  2. 汇编8086复习——基础知识、指令汇总、上机实验踩坑

    8086处理器基础知识 汇编语言是大小写不敏感的低级语言,意思就是mov和MOV是汇编语言来说是一样的,当然大小写混用也是可以的,如Mov 在8086汇编语言里,数字默认是十进制的,如果是其他进制数字 ...

  3. 嵌入式cmp指令的判断标志位_嵌入式开发的基础知识

    搜索了一些有关于对嵌入式开发的一些基础知识,分享给大家! 1.ARM中一些常见英文缩写解释 MSB:最高有效位: LSB:最低有效位: AHB:先进的高性能总线: VPB:连接片内外设功能的VLSI外 ...

  4. 操作系统之内存管理:1、内存管理基础知识(指令工作原理、地址转化、程序运行过程)

    1.内存管理基础知识(指令工作原理.地址转化.程序运行过程) 思维导图 什么是内存? 指令的工作原理 装入模块的三种实现 绝对装入 可重定位装入 动态重定位 程序的运行过程 链接的三种方式 思维导图 ...

  5. 计算机的指令合成为,第二章计算机操作基础知识doc

    第二章计算机操作基础知识doc (29页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 23.9 积分 第二章  计算机操作基础知识第一节  计算机基础知识 ...

  6. mysql 访问寄存器_汇编寄存器(内存访问)基础知识之三---mov指令

    1 内存中字的存储 一个字型数据占2个内存单元,内存里面一个内存单元一个字节(8位),高地址单位放高8位,低地址单元放低8位. 注意:0号是地址单元,1是高地址单元(上是低地址,下面是高地址) (1) ...

  7. Linux常用基础知识必备三之常用指令及操作

    Linux常用基础知识必备三之常用指令及操作 1.vi和vim vi如何使用 vi几种模式下的操作指令 命令模式进入编辑模式 命令模式下的快捷键 底行模式(指按了esc键之后输入按键:后出现) 字符串 ...

  8. poll和死锁_计算机基础知识

    转自: http://blog.csdn.net/qq_15437629/article/details/52388685 在这里只做备份 计算机网络 TCP/IP 模型 TCP/IP协议集的分层实施 ...

  9. 《Java并发编程实战》【第一部分 基础知识】

    文章目录 第1章 简介 1.1 并发简史 1.2 线程的优势 1.2.1 发挥多处理器的强大能力 1.2.2 建模的简单性 1.2.3 异步事件的简化处理 1.2.4 响应更灵敏的用户界面 1.3 线 ...

最新文章

  1. 数据分析 从零开始到实战,Pandas读写CSV数据
  2. python语言入门e_python 语言学入门第一课必看:编码规范
  3. TFS 解除独占锁定
  4. mysql的骚操作:自增长的字段同时插入到另一个字段
  5. Interview and paper based test
  6. redis复制_Redis复制
  7. HLSL Tips 1:如何把输入映射到输出像素
  8. 开源知识管理系统_Zboot权限后台管理系统开源啦
  9. 原生安卓10怎么打开面部识别_《原创》安卓系统手机只需一步立即提速翻倍,越久的手机越见效...
  10. matlab曲线拟合的应用,MATLAB软件在曲线拟合中的应用
  11. Open3d之点云平面分割
  12. 交互式电子杂志_电子杂志形式与交互问题分析
  13. 获取cookie_XSS获取COOKIE
  14. mpp格式文件怎么打开,mpp进度计划
  15. HTML期末学生作业~HTML+CSS+JavaScript仿猫眼电影在线网站
  16. IOS 开发第一个HelloWorld
  17. python应用题应用背景及实际意义_课题研究的现实背景及意义
  18. 怎么给android工程改名字,Android Studio项目改名操作
  19. 腾讯云技术认证考试综述 腾讯云技术认证题库
  20. SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)

热门文章

  1. ADC 获取数据(stm32)
  2. 【uoj#311】[UNR #2]积劳成疾 dp
  3. css实现流星划过动画
  4. 2019年—BAT大型互联网企业刚出炉的一套面试题(Java岗)
  5. c1语言水平要多久,对普通人来说,一般需要多长时间才能学会一门外语?
  6. Krpano 热点箭头动画
  7. 【Vue 问题】文件流导出为excel无法打开
  8. 激光投影仪哪款好?坚果N1 Pro和海信Vidda C1和当贝X3测评
  9. 深度:阿里云分布式关系型数据库DRDS解析
  10. 安卓巴士自测试题——第七期