每个进程使用的内存量

我有一个MySQL服务器运行Debian与2GO的RAM。 我想知道每个进程使用的内存量。

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

有没有办法让他们使用的进程和内存有一个更好的观点?

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 

 #top 

是一个不错的select

 #top -H 

让你监视所有线程

 #top -U root 

这种使用'-U'开关让你监视用户特定的列表

你应该发布你的免费输出,所以我们知道你正在阅读是正确的。 在一个进程的Linux上,内存使用情况很难明确,如果你真的想深入细节,并有一个最新的内核,请检查cat /proc/<pid>/smaps

顶部做得不错,寻找这些标题:

 VIRT RES SHR S %MEM 

另一个选项与AbhishekKrbuild议的一样: ps aux会给你一个系统上每个进程使用的内存的细分。

VSZ =>虚拟大小(使用物理RAM +交换), RSS =>常驻大小(仅限物理RAM)。
%MEM列反映了如果内存服务使用的物理内存的百分比,我敢肯定有人会纠正我,如果我错了:)

加上Kyle Brandt的build议,你可以使用工具pmap来很好地总结/ proc / <pid> / smap中的信息。 如果使用-d选项,它将显示多less内存映射,共享和设置为私有。 这,恕我直言,提供了一个很好的看法。

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