我怎样才能看到一个Linux进程的内存使用情况?
你可能想看看'pmap',例如
pmap -d [PROCESS ID]
在底部你会看到有多less内存是共享的,多less是私有的过程。 例如:一些应用程序看起来像是使用了大量的内存,但实际上这只是大量的共享库而已。
在Linux上: top :按[i]启用列sorting。 [<]或[>]移动sorting列。 按[z] [x] [y] [X] [Y]更改sorting突出显示/颜色样式,注意不是如此秘密的颜色模式。
free , ps auv显示交换, sar (sysstat / psacct)非常适合趋势。 slabtop ,内核的vmstat 。 一般来说,监视任意命令的快速而简单,但浪费进程watch -n0.3 'ps auv | grep top' watch -n0.3 'ps auv | grep top' watch -n5 'lsof | grep top | grep -v grep | wc -l' watch -n5 'lsof | grep top | grep -v grep | wc -l' watch -n5 'lsof | grep top | grep -v grep | wc -l' 。 一个快速,可重用的脚本通常是一个更好的方法。
从源代码编译时,要真正挖掘,从谷歌perftools tcmalloc。
对于持续的趋势,看看collectd和cacti 。
在Mac上:
htop与top
一小时后,平均每10个样本采取一次。 如果我错过了某些我想要的东西,请告诉我。
ps -o vsz,rss,%mem -p $PROCESS_ID
这将显示程序请求的内存量(虚拟集大小),当前在RAM中存储了多less(常驻集大小),以及占总内存的百分比。
有关前两个数字(包括分析真实程序行为的示例)的解释,请阅读分析内存泄漏的案例研究 。 如果这太多了,至less读“虚拟内存介绍”一节。
通过共享内存来计算程序的驻留集大小是非常复杂的。 德文有一个很好的解释,如何使用pmap来解释共享内存,以确定启动另一个进程的边际成本。
在你的命令行input“top”
ps aux # look at mem% and rss and vsz
试试htop( http://htop.sourceforge.net/ )。 恕我直言,是更好(easyer比顶部)