每个进程使用的内存量

每个进程使用的内存量

我有一台运行 Debian 的 mysql 服务器,内存为 2G。我想知道每个进程使用的内存量。

我以为 ps -aux 是它的命令和选项。但我只看到几个进程使用了​​ 90 MO,而 free -m 告诉我使用了 1400 MO。

有没有办法可以更好地查看进程及其使用的内存?

srv-datax:~# free -m
             total       used       free     shared    buffers     cached
Mem:          2015       1476        539          0          0         70
-/+ buffers/cache:       1405        609
Swap:          486          0        486

答案1

你应该发布你的 free 输出,这样我们才知道你读得对。Linux 上进程的内存使用情况很难具体确定,如果你真的想要了解详细信息并获取最新内核,请查看cat /proc/<pid>/smaps

答案2

#top

是一个不错的选择

#top -H

让你监控所有线程

#top -U root

这种使用“-U”开关可以让你监视用户特定的列表

答案3

Top 做得很好,请查找以下标题:

VIRT  RES  SHR S %MEM

答案4

除了 Kyle Brandt 的建议外,您还可以使用工具pmap,该工具可以很好地总结 /proc/<pid>/smap 中找到的信息。如果您使用该-d选项,它将显示映射、共享和设置为私有的内存量。在我看来,这提供了一个很好的视图。

我也可以建议阅读这篇有趣的文章关于内存使用情况。

相关内容