我有一个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议阅读这个关于内存使用情况的有趣文章 。