以编程方式获取容器内的Linux进程内存使用情况

时间:2020-06-05 13:56:46

标签: linux memory

我想以编程方式(从该进程内部)获取当前正在运行的进程的内存使用情况。以下SO post详细说明了如何实现。但是,该文章中建议的是从proc伪文件系统中获取这些值。由于如果进程在容器(不一定是docker容器)中运行,我希望此方法也能正常工作,所以我不确定这种方法是否会产生正确的结果。

我担心的原因是各种文章(Why top and free inside container show wrong memoryMemory inside Linux containers)解释了proc中的信息如何不了解容器上的cgroup和内存限制。我要获取的是进程使用的内存,而不是总的/可用内存,因此,由于我的容器进程实际上在主机OS上运行,因此我假设值为VmSizeVmRssVmPeak中的/proc/self/status仍会显示正确的值。

所以我的问题是:

  • 我是否认为/proc/self/status仍然可以可靠地正确使用,还是我忽略了某些内容?
  • 如果使用/proc/self/status不可靠,是否有更好的方法(也许进程的相应cgroup拥有此信息)?

0 个答案:

没有答案