首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么/proc/$$/smaps中Rss字段的总和与/proc/$$/stat中的第24个字段不同?

在Linux系统中,/proc/$$/smaps文件提供了有关当前进程内存映射的详细信息,而/proc/$$/stat文件提供了有关当前进程的各种统计信息。其中,Rss字段表示进程当前使用的物理内存大小。

Rss字段的总和与/proc/$$/stat中的第24个字段(rss)不同的原因是它们分别表示不同的内存统计指标。

/proc/$$/smaps中的Rss字段是指进程当前使用的物理内存大小,包括进程私有的和共享的内存。它是通过遍历进程的内存映射区域,计算每个映射区域的Rss值,并将它们累加得到的。

而/proc/$$/stat中的第24个字段(rss)表示进程当前使用的物理内存大小,仅包括进程私有的内存。它是通过统计进程使用的物理页面数得到的,每个页面的大小由操作系统决定。

因此,Rss字段的总和通常会大于/proc/$$/stat中的第24个字段的值,因为Rss字段还包括了进程共享的内存。

在云计算领域,了解这些内存统计指标对于优化和监控应用程序的性能非常重要。通过分析/proc/$$/smaps和/proc/$$/stat文件,可以了解进程的内存使用情况,帮助开发人员和系统管理员进行性能调优和资源管理。

腾讯云提供了一系列云计算相关的产品,如云服务器、云数据库、云存储等,可以帮助用户快速搭建和管理云环境。具体产品介绍和链接地址可以参考腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

值得收藏的查询进程占用内存情况方法汇总

/proc/${pid}/smaps smaps文件记录了进程中各个内存段的使用情况,按照上述测试步骤,可观察到smaps中的内存变化情况如下: 1)启动http server后,Rss占用3M左右...3)分别申请100M、200M的共享内存后,RES与smaps中的Rss类似,扩充了150M和250M左右,SHR扩充了100M和200M: ?...top命令的RES与smaps中的RSS基本一致 3. cgroup memory子系统 cgroup memory子系统中,memory.usage_in_bytes记录了cgroup组中的进程的内存使用情况...结论:cgroup中的memory.usage_in_bytes和memory.stat的rss字段,统计的是进程的私有内存 4. cgroup的内存限制与page cache 当系统读取文件时,会在系统缓存中缓存文件内容...这部分内存缓存,会统计到cgroup.stat中的cache字段。而在多个cgroup组都有读取相同文件时,这部分缓存只会统计到第一个读该文件的cgroup组中。

1.7K00

为什么ps中CPU占用率会有超出%100的现象?

前面的关于ps中的%CPU的含义一文已经介绍了CPU占用率的含义,那么为什么有时会在ps的输出中看到CPU占用率超出%100的现象呢?...在fs/proc/array.c中定义了下面两个函数 int proc_tgid_stat(struct task_struct *task, char *buffer) {     return do_task_stat...(task, buffer, 0); } 在每次读取进程状态信息时,proc文件系统就是调用这两个函数来填充数据的,它们的区别只有调用do_task_stat时传递的最后一个参数不同,看一下do_task_stat...这样就可以解释为什么%CPU字段有超过100%了,因为分子是这个进程(线程组)中所有线程运行的时间,而在同一时刻,同一线程组中的两个不同线程可能在两个不同的CPU上运行,这样总的运行时间就有可能超过物理上真正过去的时间...执行ps aux时是按进程输出的,但是如果这个进程中还有其他线程,它的stat字段有一个l, 比如firefox [root@localhost 3013]# ps aux|grep firefox-bin

2.2K20
  • 【Android 逆向】Android 系统文件分析 ( procpid 进程号对应进程目录 | oom_adj | maps | smaps | mem | task | environ )

    查看 /proc/1/cmdline 文件内容 , 1 进程号对应的进程的 cmdline 文件中 , 显示的是 /init 可执行文件 , 这是个应用程序 , 这是 Android 系统启动时 ,.../1/maps 文件内容 : init 进程对应的内存使用情况 ; 6、smaps 进程内存使用详情 查看 /proc/1/smaps 文件内容 : 这是进程使用内存的详细说明 , 比 maps...信息更详细 ; 内存的实际大小 Size: 2008 kB , 真正使用的大小 Rss: 428 kB ; 这是声明了 2008kB 内存 , 只使用了 428 kB 内存 , 一旦使用了更多的内存 ,...会触发缺页中断 , 由系统补上空缺的内存 , 然后结束中断 , 继续执行 ; 7、mem 进程内存映射 mem 是进程的内存映射文件 , 通过 smaps 可以获取各个模块的地址 , 如下面的 7fcf430000..., 可以读取对应地址内存中的数据 ; Android 逆向时 , 该文件很重要 ; 8、task 子线程 查看 /proc/31359/task 目录内容 : task 目录是该进程的子线程 , 下面是腾讯

    1.7K10

    procpidssmaps

    Linux内存管理 -- /proc/{pid}/smaps讲解 基本介绍 /proc/PID/smaps 文件是基于 /proc/PID/maps 的扩展,他展示了一个进程的内存消耗,比同一目录下的maps...匿名映射就是用户空间需要分配一定的物理内存来存储数据,这部分内存不属于任何文件,内核就使用匿名映射将内存中的某段物理地址与用户空间一一映射,这样用户就可用直接操作虚拟地址来范围这段物理内存。...[stack]表示在进程中作为栈使用,[heap]表示堆。其余情况则无显示。 第一行的信息完全同于在maps文件中输出的信息。对于不熟悉maps文件的读者可以先了解maps的字段的含义与实现机制。...Shared/Private_Hugetlb:由hugetlbfs页面支持的内存使用量,由于历史原因,该页面未计入“ RSS”或“ PSS”字段中。...并且这些没有包含在Shared/Private_Clean/Dirty 字段中。

    63520

    值得一读的linux内存学习总结

    进程使用的物理内存: find /proc/ -maxdepth 1 -iname "[0-9]*" | xargs -I{} cat {}/smaps | grep Pss: | awk '{s+...其他原因导致的内存gap, 在下面的示例中,上述所述的6种内存的总和大于实际的总内存,这是因为 shmem 是被application使用的,所以在计算进程使用的物理内存的时候,已经包含了shmem,而...|buff|total|available|shmem" /proc/meminfo cat: /proc/23234/smaps: No such file or directory 745019 MemTotal...,也就是可以以内存地址方式访问的范围 Rss: 16 kB #表示在物理内存中的地址空间的大小 Pss: 3 kB...如果要计算进程所用的私有RSS, 需要自己利用 cat /proc/PID/smaps的结果,通过属性来判断,然后计算其私有的内存占用值,当然也可以通过第三方工具获得该值. 4.swappiness值的理解

    53330

    聊聊 Linux 的内存统计

    HugePages_Free — 内存大页中 free 的大小 HugePages_Rsvd — 内存大页中能分配出来的大小 HugePages_Surp — 内存大页中超过 /proc/sys/vm.../proc/{pid}/smaps 文件 在/proc/{pid}/smaps文件对应每个进程的详细内存分段统计。...,不同的进程会共享这个映射的,如果想通过累加这个值来计算所有进程用到的内存的话就不准确了,而Pss把共享库的大小均摊给了所有用到映射了这个库的进程,所以累加起来就不会重复计算共享库大小了。...我们可以累加一下这个值看看某进程用到的内存总和: ? 注意单位是KB,所以这里进程用到的内存是 1.17 GB 左右。 这是个使用共享内存作为存储的服务,所以这是符合预期的。...如果想要看排除共享内存的部分,那要看Anonymous部分的总和: ? 所以实际匿名内存使用是 63 MB 左右。 top 命令 top命令中关于内存使用的统计: ?

    6.5K40

    如何通过Smem命令行检查Ubuntu上的内存使用情况

    与现有工具不同,smem可以报告比例集合大小(PSS),这是对虚拟内存系统中库和应用程序使用的内存量的更有意义的表示。...中读取数据快照 轻量级嵌入式系统的捕获工具 内置图表生成 smem要求: 在/proc//smaps中提供“Pss”度量的Linux内核(一般为2.6.27或更新版本)。...(注意:如果您以非root用户身份运行,并且没有使用-source选项,则只能看到您有权访问的/proc/信息的进程的数据。) 示例1:显示每个库使用的memeory。...示例2:显示根据特定应用程序使用的内存。下面给出的命令将显示Firefox的内存使用情况。 -p选项以百分比显示内存使用情况。 示例3:显示饼图介质中使用的内存(RSS由名称标记)。...与显示条形图内存使用情况(标记为pid)类似,在终端中运行命令smem –bar pid -c “pss uss” 以下是可以使用smem命令的各种选项。

    1.9K80

    【数据库差异研究】别名与表字段冲突,不同数据库在where中的处理行为

    嵌套查询 查询类型 子查询 内层 where 冲突处理 外层 where 冲突处理 SQLITE 有别名 使用表字段 使用子查询中的表字段 SQLITE 无别名 使用表字段 使用子查询中的表字段 ORACLE...有别名 使用表字段 使用子查询中的表字段 ORACLE 无别名 使用表字段 使用子查询中的表字段 PG 有别名 使用表字段 使用子查询中的表字段 PG 无别名 PG报错 PG报错 ☪️1 问题描述...一、当单层查询发生别名与表字段重名冲突时,不同数据库在where中的处理行为是怎样的呢?...说明:对于表字段与别名重名冲突, where 有时处理的是表字段而非别名,有时处理的是别名而非表字段。显然这种数据库设计是存在问题的,本文不予考虑。...二、当嵌套查询发生别名与表字段重名冲突时,不同数据库在where中的处理行为是怎样的呢? 详见后文。

    9910

    docker cgroup 技术之memory(首篇)

    使用pmap可以查看进程内存段的简要信息,借此可以初步判定是否存在内存泄漏或内存占用过大的地方。pmap命令主要从/proc/$pid/smaps中获取数值。...: 使用kswapd 进行周期性检查,由上面图可以看到,linux的内存被分为不同的zone,每个zone中都有3个字段:page_min,page_low,page_high(参见/proc/zoneinfo...是不同的,可以在/proc/zoneinfo中查看zone的具体信息;注:numa场景下每个内存被划分到不同的node,每个node含独立的zone,关系如下: ?...cat memory.usage_in_bytes 0 memory.stat中的字段解析如下: # per-memory cgroup local status cache -...ps -aux显示的进程的RSS与/proc/$pid/status中的RSS值相同,等于/proc/$pid/smap的所有RSS的和,RSS包含进程memory-mapped(使用lsof查看)文件

    1.6K30

    JDK核心JAVA源码解析(5) - JAVA File MMAP原理解析

    想写这个系列很久了,对自己也是个总结与提高。原来在学JAVA时,那些JAVA入门书籍会告诉你一些规律还有法则,但是用的时候我们一般很难想起来,因为我们用的少并且不知道为什么。...Fstat()与stat()作用完全相同, 不同处在于传入的参数为已打开的文件描述词. 详细内容请参考stat(). 返回值: 执行成功则返回0, 失败返回-1, 错误代码存于errno....我们来看下这个进程的smaps文件,这里进程号是25485,我们映射的文件是FileMmapTest.txt: $ grep -A 11 FileMmapTest.txt /proc/25458/smaps...同时,top命令看到的内存并不准,top,命令统计的是RSS字段,其实对于MMAP来说,更准确的应该是统计PSS字段 3.2.2.4. pdflush如何配置 在linux操作系统中,写操作是异步的,即写操作返回的时候数据并没有真正写到磁盘上...用于加载文件的内存在Java的堆内存之外,存在于共享内存中,允许两个不同进程访问文件。

    1.2K20

    【转】记一次 Redis 延时毛刺问题定位

    ,即 seq_file 关联的 proc     void *private; // 私有数据字段,存储特定于文件的数据 }; struct seq_operations {     // 开始读数据项...使用全局函数 seq_open 把进程与 seq_operations 关联起来 用户态: open(“/proc/pid/smaps”) –> 内核态: proc_pid_smaps_operations.open...() 用户态: read(fd) –> 内核态: proc_pid_smaps_operations.read() smaps 具体到 smaps,也是一样的实现 file 相关的方法,在内核中是定义在...smaps 即是 pid_smaps_open() 函数的 file_operations 参数 &proc_pid_smaps_op,专门为读取进程虚拟内存区(vma)信息的方法。...然而,加锁解锁耗时跟持锁耗时是两个完全不同的概念,因此并不能直接定位到持锁耗时较长的进程,所以仍需额外的工作进一步排查。

    45810

    【Redis30】Redis进阶:一些简单运维技巧

    这样,我们就可以根据不同的 Key 占据的字节长度来确定哪些是大 Key 。怎么删除大 Key ?不记得的小伙伴赶紧来复习一下哦。 再问一个:怎么遍历所有的 Key ?忘了 SCAN 命令了?...查询数量,llen、hlen、scard、zcard 的性能没问题,链表有记录数量字段,返回很快。 记住,范围操作都很惨!全是我们之前学习过的内容,这个 bigkey 问题也是非常常见的面试题。...监控系统信息 通过 redis-cli --stat 命令,可以实时地监控当前 Redis 的使用情况。同样,它也是一个 redis-cli 的参数工具。...cat /proc/4476/smaps | grep Swap Swap: 0 kB ……………… 如果交换量都是 0kB 或者个别的是 4kB ,则是正常现象,说明Redis进程内存没有被交换...used_memory 使用的内存 used_memory_rss 从系统角度,显示Redis进程占用的物理内存总量,与top及ps命令看到的值是一致的 mem_fragmentation_ratio

    19950

    Linux性能调优之内存负载调优的一些笔记

    通常,在CPU执行指令或处理数据前,它会消耗相当多的空闲时间来等待从内存中取出指令和数据。处理器用不同层次的高速缓存(cache)来弥补这种缓慢的内存性能。...user.slice 看一个docker 进程的相关信息 memory.stat: :这个cgroup中内存和交换分区的使用情况以及内存总量的详细统计。.../memory.stat cache 3657728 rss 144375808 rss_huge 113246208 mapped_file 0 swap 0 pgpgin 25693 pgpgout...提交的内存是进程分配的所有内存的总和,即使它还没有被它们“使用”)行,但没有使用实际的物理内存。常驻大小(顶部的RSS)保持(几乎)不变。...这些不同的状态是: Free: 页面可以立即分配,空闲的内存; inactive Clean: 该页处于非活动使用状态,其内容与磁盘上的内容相对应,因为它已经被回写或自读取以来没有更改。

    2.6K20

    研发日记|一次 Java 乌龙“内存泄露”排查之旅

    ,NMT中 committed 的数值可能会大于等于操作系统计算的 RSS。...这个文件不会出现在文件系统中,只能通过 /proc//fd 查看,映射的内容会在进程退出时被释放 从 pmap 的结果中,我们可以看到 java 堆被映射到了三个虚拟内存地址上:40000000000...通过进一步学习与研究,我们了解到 Linux 中一个进程占用的内存有多种统计方式,可以分为 VSS、RSS、PSS、USS:VSS: Virtual Set Size,进程申请的虚拟内存大小RSS: Resident...Unique Set Size,进程独占的内存大小,RSS 中的共享内存不计入 USS我们可以通过 PSS 来观测真实的内存占用情况,这里使用了 /proc/pid/smaps_rollup 来查看...如果多个进程共享相同的内存区域,那么每个进程的 Rss_Shmem 都会完整地计入这部分内存,导致对物理内存使用的总和被过量计算。

    25900

    作为高级Java,你应该了解的Linux知识(非广告)

    -m 命令,了解free、used、cached、swap各项的含义 cat /proc/meminfo 查看更详细的内存信息 细心的同学可能注意到,CPU和内存的信息,通过top等不同的命令显示的数值是一样的...的信息么 cat /proc/devices 已经加载对设备们 cat /proc/loadavg load avg原来就躺在这里啊 cat /proc/stat 所有的CPU活动信息 ls /proc...怎么查看哪个进程在用swap 首先要了解/proc/$pid/smaps里有我们所需要的各种信息,其中Swap字段即是我们所需要的。只要循环遍历一下即可。...M"}' /proc/$i/smaps ;done |sort -k2nr 最后,附上http://www.brendangregg.com/ 的大图一张 End 软件领域有两种人才,一种是工程型的,...十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流 ?

    55710

    【Perfetto】Perfetto 零基础入门

    不同的数据源可以多路复用到用户定义的缓冲区的不同子集上,从而还允许将任意长的跟踪流式传输到文件系统中。...使用与 Android 运行时紧密集成的进程外分析器捕获 Java 堆转储,该分析器允许获取托管堆保留图的完整快照(类型、字段名称、保留大小和对其他对象的引用),但无需转储完整的堆内容(字符串和位图),...这与 /proc/pid/status 中可用的计数器与VmRSS 相同。...与 RSS-stat 计数器更新不同,mm 事件的数量非常大,单独跟踪它们是不可行的。 mm_event 只报告跟踪中的周期性直方图,从而显着减少开销。.../stat /proc/vmstat /proc/meminfo ui 可以在跟踪配置中设置跟踪中包含的轮询周期和特定计数器。

    1.6K10
    领券