[Linux] Linux smaps接口文件结构

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

400df000-4048c000 r--s 00000000 1f:05 286        /data/dalvik-cache/[email protected]@[email protected]
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/[email protected]@[email protected]

  • 400df000-4048c000 是该虚拟内存段的开始和结束位置
  • r--s内存段的权限,最后一位p代表私有,s代表共享
  • 00000000 该虚拟内存段在对应的映射文件中的偏移量
  • 1f:05 文件的主设备和次设备号
  • 286 被映射到虚拟内存的文件的索引节点号
  • /data/dalvik-cache/[email protected]@[email protected] 被映射到虚拟内存的文件名称。后面带(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.
时间: 2024-08-26 06:12:13

[Linux] Linux smaps接口文件结构的相关文章

linux网络socket 接口转

linux网络socket 接口 1.socket函数:一个进程必须做的第一件事就是调用socket函数获得一个文件描述符. ----------------------------------------------------------------- #include<sys/socket.h> int socket(int family,int type,int protocol); 返回:非负描述字---成功 -1---失败 -----------------------------

轻松畅快玩转Windows/Linux语音服务接口

仲夏五月,讯飞在线课堂正式开课啦!首推Android SDK精品课程: 季夏六月,研发大神解读Java SDK,玩转开发根本不叫事: 初秋七月,音频处理专题深入剖析了音频处理的那些事: 仲秋八月,又将为您带来什么课程呢?您又期待什么呢? -- 针对PC端开发,科大讯飞技术支持之神大鹏哥将以Windows和LinuxSDK为切入点进行语音云服务的分享.主要精彩内容包括:语音云服务能力介绍.SDK C接口的使用.语音云使用过程中常见集成问题的解决方法和思路. 届时还有美女主播为您引导,在听课和答疑阶

探究python与linux的socket接口间的关系

1. 实验环境 Ubuntu 16.04LTS 2. 利用python的socket接口实现一个简单的聊天小程序 server端 import socket server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) server.bind(('127.0.0.1',8083)) server.listen(5) print

[Linux]Linux系统目录

下面列出了 Red Hat Linux 的主要系统目录及其简单描述.要获得额外的目录信息,请参阅<Red Hat Linux 定制指南>和<Red Hat Linux 参考指南>. /bin/ - 用来贮存用户命令.目录 /usr/bin 也被用来贮存用户命令. /sbin/ - 许多系统命令(例如 shutdown)的贮存位置.目录 /usr/sbin 中也包括了许多系统命令. /root/ - 根用户(超级用户)的主目录. /mnt/ - 该目录中通常包括系统引导后被挂载的文件

linux与linux,linux与windows之间用SSH传输文件

linux与linux,linux与windows之间用SSH传输文件linux与linux之间传送文件:scp file [email protected]:文件地址    例: scp abc.txt [email protected]:/home/endall/abc.txt windows与linux之间传送文件:笔者用putty的内置PSCP.其它如 SSH Secure File Transfer Client 先在WIN的DOS下,PUTTY目录下及PSCP文件所在目录. pscp

[Linux]Linux下redis的安装及配置.

在上一篇[Linux] linux下安装配置 zookeeper/redis/solr/tomcat/IK分词器 详细实例. 我们已经将redis所需tar包拷贝到了linux下的root 根目录下, 接着我们只需要解压就可以了. 先将Redis的tar包拷贝到Linux下的根目录 然后解压到redis文件夹下:(先使用mkdir创建redis文件夹) 接下来就是解压tar包到redis目录下: 解压后的目录结构: 编译: 使用Make命令 安装: 安装好之后的目录:  6379 下的目录结构:

2014年8月21日 &nbsp; 第一天学习linux linux的下载地址

第一天学习linux 个人实验用的linux版本为CentOS linux 下载地址: 32位版本      http://mirror.symnds.com/distributions/CentOS-vault/6.3/isos/i386/CentOS-6.3-i386-LiveDVD.iso 64位版本  http://mirror.symnds.com/distributions/CentOS-vault/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.

[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.

为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://www.cnblogs.com/wang-meng/p/5814798.html 8, 打开浏览器查看solr可视化界面 到了这里solr就配置好了, 可是我们的IK 分词器还没有配置呢, 如果不配IK分词器的话 它是怎样分词的呢? 我们就来先看一下:  每个字都分成了一个词, 这当然不是我们想要的结果

[Linux] linux文件系统学习

linux系统支持很多种文件系统. 1. 如何确认当前系统挂载了哪些文件系统? 使用mount命令可以查看当前系统上已经挂载了哪些文件系统, [email protected]:~$ mount/dev/sda1 on / type ext4 (rw,errors=remount-ro) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) none o