如何在没有root权限的情况下获得linux进程的内存使用情况

我正在使用PHP托pipe服务器上的网站,所以我没有root权限。 我必须得到一个由GCC编译的进程的最大内存使用量。 我search了所有可能的解决scheme:

top, vmstat, ps, proc/$pid$/status, valgrind – 权限被拒绝

pmap – 它没有做任何事情

如何在没有root权限的情况下获得进程的内存使用情况? 请给我一些想法。 谢谢。 🙂

我不确定你到底在找什么 – 你想知道一个进程当前正在使用的内存量吗? 如果是这样,那么查看/proc/<pid>/status并检查VmRSS行。 这是你想要的数字(在这种情况下,如果你好奇,RSS的意思是“驻留集合大小”)。 该行应该可以像PHP这样的高级语言进行解析。 但是,对于像C这样的低级语言,解析/proc/<pid>/stat应该更容易,它们具有相同的值,但是每个都由空格分隔,并且没有标签。

如果您没有读取文件的权限,则意味着服务器进程正在以不同于您登录的用户身份运行。 您将需要与主机提供商合作解决问题,或者弄清楚如何让服务器进程查询自己的进程(PHP脚本?)。

这是否回答你的问题? 或者你是否有兴趣知道“最大内存使用率”,如“在被内核杀死之前进程可能使用的最大内存量”? 这实际上是Linux的一个棘手的哲学问题。 由于没有硬性限制,你不会找到有关这个最大值的可靠信息。 阅读“Linux内存过量使用”了解更多详情。