确定哪些程序正在使用交换/

分享于 

3分钟阅读

电脑

  繁體 雙語

问题:

我发现我可能做了错误,所以我在这里发现了问题,如果我有错误的话,请告诉我。

我想知道我机器上哪些程序正在使用交换,以及每个程序使用的是多少。 我意识到这可以能是在顶部完成的,但是我想知道如何在。

我尝试过的是:

  • 开始顶部
  • 按f ( 添加列)
  • 按p ( 交换列)
  • 这将添加交换列,但数据似乎不正确。 Top列出 Firefox 使用 582m 交换,但头同时报告正在使用 0k 交换。

    我是不是在做什么? 是否有更好的方法来监视交换使用情况?


回答 1:

要注意以下两个列: 虚拟and告诉你进程已经保留了多少内存。 这并不意味着它被分配或者使用,但只要进程请求它就可以使用。 另一个要看的是,它告诉你驻留内存中的空间量。 这就是它实际使用的。 交换柱只是虚的。

从我搜索的很少,看起来在使用交换是不可能的。


回答 2:

不幸的是,并不是那么简单。

""被认为是"非常驻匿名网页"。 即,不受任何光盘文件( 不是mmap有文件备份页) 支持的页。

当内核获得内存少时,它往往会丢弃最近没有使用过的页面。 它可能选择放弃备份文件页或者匿名页面。 如果它执行后者,则使用"交换"。

但是,没有一个过程可以触发它,它只是一般的内存压力。

而且,你甚至不能精确地测量页面使用情况。 每个进程有两个计数,( 模糊的) 有用。 these是一个进程已经分配的页面总数,但这往往会高估"使用"的数量,因为它可以计算页面数量,并计算页面的数量,并不在所有( 已经映射但未使用) 中使用。

另一个是 RSS,即"驻留集大小",它是当前驻留的页面中的内存量。 然而,这并不是真正的true 图片:

  • 同一个页面不一定被一个进程使用- 它们可以共享。
  • 有些页面由内核内部使用,因此不向任何一个进程收费

我不知道任何尝试进行更好估计的工具,但理论上可以能在最近的/proc 中使用新的诊断。



SWAP  muc  
相关文章