【问题标题】:How do I know the page cache size of a linux process我如何知道linux进程的页面缓存大小
【发布时间】:2015-11-25 03:05:14
【问题描述】:

现在我可以通过 /proc/meminfo 知道系统的整体缓存页面,我是否可以进一步知道对于特定进程它消耗了多少页面缓存?我的第一个想法是在一个进程的 smaps 中添加所有 RSSes。还有什么建议吗?谢谢。

【问题讨论】:

    标签: memory-management linux-kernel kernel file-mapping


    【解决方案1】:

    @Bill Randerson,也许你可以试试下面的命令,会得到一些关于 Vm、信号等的信息……关于一个特定的进程。

    cat /proc/<process_pid>/status
    

    【讨论】:

    • /proc//status 确实包含了相当多的进程信息,它包含以下内存信息: VmPeak: 1079428 kB VmSize: 1063812 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 84572 kB VmRSS: 57320 kB VmData: 150312 kB VmStk: 8196 kB VmExe: 12 kB VmLib: 68332 kB VmPTE: 312 kB VmSwap: 14896 kB 但我不认为他们中的任何一个都表示页面缓存,对吧?
    • 是的,它们都没有表示页面缓存。我想,目前,可以检索系统范围的页面缓存信息,而不是按进程检索。我在将 10MB 数据写入文件之前尝试了命令 1)free -m 2)dd if=/dev/zero of=testfile.txt bs=1M count=10000,同时执行 3)free -m。然后我可以清楚地看到缓存值增加了 10(以 MB 为单位)。但是这个练习提供了系统范围的页面缓存信息,而不是每个进程。
    【解决方案2】:

    https://github.com/silenceshell/hcache

    用法:

    ./hcache --pid <pid>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      相关资源
      最近更新 更多