如何找出程序占用了多少内存


8

我使用htop监视我的进程,但是大多数运行的服务都是多线程的,因此它们显示在几行中,并且使用的内存百分比在某些情况下对于所有内存都是相同的,有时它们之间会有所不同。

假设使用Firefox,它可以列出15个进程,每个进程占用13%的内存。

我能知道Firefox,MySQL,某些fcgi脚本或其他消耗多少内存吗?因为htop输出似乎具有误导性。

Answers:


6

大多数顶级实现都有打开或关闭线程显示的方法。

  • htop:在“设置/显示选项”菜单中的“隐藏用户登陆线程”。
  • Linux top:按H切换线程显示(但默认情况下处于关闭状态)。
  • OpenBSD顶部:按下T可切换线程显示(但默认情况下处于关闭状态)。

请注意,内存映射以及因此的内存占用是进程的属性,因此您将始终为进程中的每个线程看到相同的数字。如果看到不同的数字,则意味着有多个过程。

没有一个简单的方法来找出一组进程的总内存消耗,因为该概念的定义不明确。一些内存可能是共享的。共享库一直在发生这种情况,此外,相关的进程(例如服务器的多个实例)更可能使用共享内存来交换数据。如果仅添加数字,通常会得到一个比实际使用的内存大得多的数字。


1
我没有意识到流程的内存概念定义不明确,我认为这才使它更具意义。谢谢
Jjdelc 2011年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.