如何让 Linux 中的进程“使用”内存? [复制]
Posted
技术标签:
【中文标题】如何让 Linux 中的进程“使用”内存? [复制]【英文标题】:How to get memory "used" by a process in Linux? [duplicate] 【发布时间】:2013-05-19 07:57:09 【问题描述】:我的程序想要检测它正在使用多少内存并在它超过阈值时发出警告。我不关心已分配但从未访问过的内存,因为它不受 RAM 或交换的支持。如何获得我的进程使用的总 RAM + 交换? “驻留集大小”是否包括交换?
编辑:正如其他人指出的那样,获得常驻大小很容易,但不包括交换。所以这个问题实际上是关于如何获取进程使用的交换量。
【问题讨论】:
有一个 good question 关于那个 使用proc(5)文件系统,尤其是/proc/self/stat
该问题不提供交换,并且从 man 5 stat 开始,不维护 nswap 和 cnswap 字段。关于在哪里获得交换还有其他想法吗?
【参考方案1】:
已经有一个关于这个的帖子:How to get memory usage at run time in c++?
查看此页面:How to get the resident set size
RSS 是 RAM 部分,不包括交换和卸载。
【讨论】:
谢谢,那些回答了一半的问题,即从哪里获得 RSS。他们没有告诉我如何获得交换。 @Downvoter 为什么要投反对票? @MartinC.Martin 是的。我只知道如何获取 RSS :P以上是关于如何让 Linux 中的进程“使用”内存? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
linux vfork的子程序与父进程共享内存,那为啥子进程执行exec就不会覆盖父进程呢?