如何查看Linux进程的内存使用情况?
发布于 2011-04-29 19:51:53
你可能想看看“pmap”。
pmap -d [PROCESS ID]在底部,您将看到有多少内存是共享的,其中有多少是进程的私有内存。例如:一些应用程序看起来使用了大量的内存,但实际上,计算中需要的只是大量的共享库。
发布于 2011-04-29 21:22:55
在Linux上:top:按[i]以启用列排序。[<]或[>]移动排序列。通过按[z] [x] [y] [X] [Y]更改排序高亮/颜色样式来注意非保密的颜色模式。
free,ps auv也显示了交换,sar (sysstat/psacct)对趋势很有帮助。slabtop,内核的vmstat。一般来说,watch可以快速方便地监视任意命令,但却浪费了watch -n0.3 'ps auv | grep top' watch -n5 'lsof | grep top | grep -v grep | wc -l'进程。快速、可重用的脚本通常是更好的方法。
在从源代码编译时,要真正深入挖掘tcmalloc,就需要使用的tcmalloc。
对于正在进行的趋势,请查看collectd和cacti。
对Mac:
htop对top
平均一小时后连续采集10份样品。如果我漏掉了什么,那就告诉我。
发布于 2011-04-30 00:36:24
ps -o vsz,rss,%mem -p $PROCESS_ID
这将显示程序请求的内存量(虚拟集大小),当前存储在RAM中的内存(驻留集大小),以及占内存总数的百分比。
有关前两个数字的解释,包括分析实际程序行为的示例,请阅读此顶层分析内存泄漏的案例研究。如果这太多了,至少读一读“虚拟内存简介”一节。
共享内存使计算程序的驻留集大小变得复杂。德文有一个很好的解释共享内存可以使用pmap进行计算.如何确定边际成本启动另一个过程。
https://serverfault.com/questions/264843
复制相似问题