首页
学习
活动
专区
工具
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共享内存后,RESsmapsRss类似,扩充了150M和250M左右,SHR扩充了100M和200M: ?...top命令RESsmapsRSS基本一致 3. cgroup memory子系统 cgroup memory子系统,memory.usage_in_bytes记录了cgroup组进程内存使用情况...结论:cgroupmemory.usage_in_bytes和memory.statrss字段,统计是进程私有内存 4. cgroup内存限制page cache 当系统读取文件时,会在系统缓存缓存文件内容...这部分内存缓存,会统计到cgroup.statcache字段。而在多个cgroup组都有读取相同文件时,这部分缓存只会统计到第一个读该文件cgroup组

1.7K00

为什么psCPU占用率会有超出%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 字段

    53620

    值得一读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值理解

    50930

    聊聊 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.4K40

    如何通过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处理行为是怎样呢? 详见后文。

    8810

    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/statusRSS值相同,等于/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)信息方法。...然而,加锁解锁耗时跟持锁耗时是两个完全不同概念,因此并不能直接定位到持锁耗时较长进程,所以仍需额外工作进一步排查。

    40610

    【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

    17950

    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.5K20

    作为高级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,欢迎添加好友,进一步交流 ?

    55610

    研发日记|一次 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 都会完整地计入这部分内存,导致对物理内存使用总和被过量计算。

    22400

    【Perfetto】Perfetto 零基础入门

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

    1.4K10
    领券