对于 中的给定进程/proc/<pid>/smaps,对于给定的映射条目是:
是Shared_Clean+Shared_Dirty是与其他进程共享的存储器的量?所以它就像共享RSS?
同样是Private_Clean+仅可用于一个进程Private_Dirty的内存量?所以它就像私人RSS?
PSS 值是否 = PrivateRSS +(SharedRSS / 共享它的进程数)?
阅读此链接后还有一些问题:LWN
现在让我们从整体上讨论这个过程,我们正在查看其 smaps 条目。
我注意到,如果我为流程的每个 smaps 条目执行Shared_Clean+ Shared_Dirty+ Private_Clean+ Private_Dirty,我会得到流程的 RSS 报告ps,这非常酷。例如
ps -p $$ -o pid,rss
Run Code Online (Sandbox Code Playgroud)
将为我提供与/proc/$$/smaps中每个Shared_Clean, Shared_Dirty, Private_Clean,Private_Dirty条目的总和(大约)相同的 rss 值。
但是整个过程的PSS呢?那么,从上面的示例中,我如何获得 $$ 的 PSS?我可以为每个 smaps 映射添加 PSS 条目并以 $$ 到达 PSS 吗?
那么整个过程中的USS …
例如sed,命令是程序,程序是文件内的编码逻辑,这些文件位于硬盘上的某处。然而,当命令正在运行时,它们的文件副本从硬盘被放入RAM 中,在那里它们变得生动起来,可以做一些事情,被称为进程。
进程可以使用其他文件,读取或写入它们,如果它们这样做,这些文件称为打开文件。有一个命令可以列出所有正在运行的进程的所有打开的文件:lsof.
好的,所以我想知道一个命令的双重生命,一个在硬盘上,另一个在 RAM 中,是否也适用于其他类型的文件,例如那些没有逻辑编程的文件,但只是容器数据。
我的假设是,进程打开的文件也会加载到 RAM 中。我不知道这是不是真的,这只是一种直觉。
拜托,有人能理解吗?
一个高票数回答这里的问题是“什么是最轻的台式机”,这实际上是试图定量评估内存使用依赖于一个关于它引用2011年的数据维基百科页面。
我能找到的最新文章可以追溯到 2018 年 11 月(感谢https://LinuxLinks.com)。是否有较新的比较客观地衡量内存使用情况?