在Linux内核 2.6.16中引入了一个系统内存接口特性,这个接口位于/proc/$pid/目录下的smaps文件中 ,一看内容发现是进程内存映像信息,比同一目录下的maps文件更详细些。

400df000-4048c000 r--s 00000000 1f:05 286        /data/dalvik-cache/system@framework@core.jar@classes.dex
Size:               3764 kB
Rss:                1804 kB
Pss:                1804 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:      1804 kB
Private_Dirty:         0 kB
Referenced:         1804 kB
Anonymous:             0 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB

以上述输出结果为例:400df000-4048c000 r--s 00000000 1f:05 286 /data/dalvik-cache/system@framework@core.jar@classes.dex

  • 400df000-4048c000 是该虚拟内存段的开始和结束位置
  • r--s内存段的权限,最后一位p代表私有,s代表共享
  • 00000000 该虚拟内存段在对应的映射文件中的偏移量
  • 1f:05 文件的主设备和次设备号
  • 286 被映射到虚拟内存的文件的索引节点号
  • /data/dalvik-cache/system@framework@core.jar@classes.dex 被映射到虚拟内存的文件名称。后面带(deleted)的是内存数据,可以被销毁。
  • size 是进程使用内存空间,并不一定实际分配了内存(VSS)
  • Rss是实际分配的内存(不需要缺页中断就可以使用的)
  • Pss是平摊计算后的使用内存(有些内存会和其他进程共享,例如mmap进来的)
  • Shared_Clean 和其他进程共享的未改写页面
  • Shared_Dirty 和其他进程共享的已改写页面
  • Private_Clean 未改写的私有页面页面
  • Private_Dirty 已改写的私有页面页面
  • Referenced 标记为访问和使用的内存大小
  • Anonymous 不来自于文件的内存大小
  • Swap 存在于交换分区的数据大小(如果物理内存有限,可能存在一部分在主存一部分在交换分区)
  • KernelPageSize 内核页大小
  • MMUPageSize    MMU页大小,基本和Kernel页大小相同

其中Dirty页面如果没有交换机制的情况下,应该是不能回收的。
精确分析内存占用可以用Private内存信息来衡量。

详细解释见 http://www.kernel.org/doc/Documentation/filesystems/proc.txt

The first of these lines shows the same information as is displayed for the
mapping in /proc/PID/maps.  The remaining lines show the size of the mapping
(size), the amount of the mapping that is currently resident in RAM (RSS), the
process' proportional share of this mapping (PSS), the number of clean and
dirty private pages in the mapping.  Note that even a page which is part of a
MAP_SHARED mapping, but has only a single pte mapped, i.e.  is currently used
by only one process, is accounted as private and not as shared.  "Referenced"
indicates the amount of memory currently marked as referenced or accessed.
"Anonymous" shows the amount of memory that does not belong to any file.  Even
a mapping associated with a file may contain anonymous pages: when MAP_PRIVATE
and a page is modified, the file page is replaced by a private anonymous copy.
"Swap" shows how much would-be-anonymous memory is also used, but out on
swap.

[Linux] Linux smaps接口文件结构相关推荐

  1. shell的建立与执行实验报告_实验指导书--实验02 Linux Shell用户接口

    实验二:Linux Shell用户接口 实验学时:2 实验类型:验证 实验要求:必修 一.实验目的 通过本实验的学习,使学生掌握Linux Shell的使用方法. 二.实验内容 实验内容:实践Linu ...

  2. linux网络系统调用,Linux网络系统调用接口--待续

    [内核版本:linux-2.6.30] Linux网络系统调用接口其定义在:linux/net/socket.c 其中主要的接口,如下所示. 1. socket Function: Definitio ...

  3. Linux内核编程接口函数

    Linux内核编程接口函数 转载请注明出处: http://blog.csdn.net/drivelinux/article/details/8656280 字符设备相关函数 1.alloc_chrd ...

  4. Linux部署python接口自动化教程,基于centos7 python3

    Linux部署python接口自动化教程 1.安装jenkins 2.安装插件和依赖 **安装allure插件(测试报告)** **配置allure依赖** 安装python3.x依赖环境 **安装p ...

  5. linux 获取网卡接口信息

    linux 获取网卡接口信息 获取本机所有网卡名称 struct ifreq ioctl 头文件 获取网卡信息 获取本机所有网卡名称 // /usr/include/net/if.h, 头文件 < ...

  6. linux pcm接口调试,Linux的alsa接口播放pcm音频数据

    ALSA框架,是Linux的音频接口,包括alsa驱动程序和用户API(asound库). alsa驱动程序,是Linux内核给声卡驱动程序提供的标准. 用户API,是Linux给需要声音的播放和采集 ...

  7. linux时钟操作接口

    linux获取时钟接口 概述 linux系统开发环境中,需要获取各种类型时钟,针对这些情况做了一个简单整理. 首先对时钟接口的需求大概包括有: 1:获取当前时钟,这个在内核中一般表现为UTC时钟(从1 ...

  8. linux无线驱动接口简介

    http://blog.csdn.net/dickjtk/article/details/11862815 在分析wpa_supplicant软件linux版本下无线驱动事件和无线驱动配置代码之前,先 ...

  9. tpm linux,Linux内核再次升级 支持TPM芯片

    [IT168 软件资讯]Linux内核更新是越来越快了,自Linux 2.6.11今年4月推出后,昨天李纳斯·托沃兹(Linus Torvalds)发布了Linux 2.6.12核心. Linux K ...

最新文章

  1. 【Xamarin笔记】Events, Protocols and Delegates
  2. 亚马逊高级应用科学家熊元骏:人类行为理解研究进展 | PhD Talk #19
  3. 让Lua支持Linq吧
  4. @angular/platform-browser-dynamic
  5. 电脑技巧:键盘上最长的按键空格键使用技巧!
  6. 【转】WPF中关于样式和模板的区别
  7. soap协议_当SOAP遇上REST!一文解读Web服务Web API方法
  8. 151. 反转字符串里的单词
  9. 循证医学 计算机辅助决策系统,循证医学重点整理
  10. Windows 11企业版虚拟机镜像官方版下载及安装
  11. 转录组测序day 1 基础知识
  12. 接入支付宝电脑网站支付实现JAVA版
  13. 邮箱个性签名html模板,邮件个性签名大全_邮件的经典个性签名模板
  14. 虚拟主机好还是云服务器,虚拟主机好还是云服务器
  15. 如何查看网页上已经保存的密码
  16. 黑马在线教育数仓实战2
  17. 防作弊-页面失焦与禁键
  18. Robot Framework自动化测试解决selenium2library加载失败
  19. [js点滴]JavaScript之鼠标事件04
  20. Qt for Android开发环境搭建(QtCreator6.0.1+Qt5.15.2/Qt6.2.2+win10)

热门文章

  1. spring boot: 构建项目时报错Not a managed type
  2. DHCP中继代理;DHCP突破vlan限制
  3. 新加坡计划通过区块链促进东盟金融包容性
  4. Java开发者需要了解的移动开发编程语言
  5. MarkDown写blog(测试)
  6. 一个简单的Spring的AOP例子(JAVA面向切面编程)
  7. Linux系统管理的基本入手点
  8. AJAX是否能够取代桌面应用程序
  9. springcloud 并发_SpringCloud-Zuul高并发请求下的限流处理
  10. 数据增删改查之三层架构(理解三层续)