我如何知道导致kswapd被使用的过程?


Answers:


18

kswapd正在管理交换空间,以响应对内存的需求大于对所有进程的物理可用。

它与过程无关,它只对访问哪些页面以及何时访问感兴趣(当然比这要复杂得多,但是为了简单起见,我们最好还是这样查看)。

因此,真正的问题是“哪些进程对内存的负担最大,导致kswapd一直需要分页”。

使用“ top”并切换到内存使用率排序模式最容易回答。


谢谢!。skswapd是否仅在实际触摸的页面超出物理阈值时才踢入,或者即使某个进程已分配内存或映射了SHM区域但未使用它,它也不会踢入吗?就是说,是仅当问题发生时,还是即使有可用的物理内存,而是仅仅因为某些进程处于空闲状态,它还是进行记账并换入和换出东西吗?
Deshawn

据我了解,kswapd在正常情况下会从主内存中删除不需要的任何页面,因为释放的任何页面都是可用于缓存或其他进程的页面。即,最好在磁盘上已经有一个未使用的旧页面,而不是招致响应另一个进程对内存的请求而移动它的缓慢成本。
保罗

即使机器需要使用大量交换空间,也不应占用100%的CPU。有点奇怪。
Zaz 2015年

@Zaz并不是说它在使用CPU处理能力来进行交换,而是因为IOWAIT使CPU 100%被使用。每次需要从磁盘交换内存时,CPU都必须坐在那里等待-IOWAIT,并且不执行其他任何操作(平均而言)。
保罗

@Paul:确定吗?top告诉我,没有时间在IO等待上,几乎100%的时间在系统上。更多信息:交换时,kswapd经常使用100%CPU
Zaz

9

您可以编写脚本..但也可以通过顶部完成

运行顶部,然后按O,然后按p,然后输入

现在,所有进程均按交换使用情况进行排序,您可以查看正在使用哪些进程


2
O为我显示了过滤器选项,按p然后输入,将给我“缺少'include'过滤器分隔符”
Shadow

@Shadow同样的问题,这里的替代命令unix.stackexchange.com/questions/128953/...
比约恩

8

如果您使用的是Ubuntu 15.10或更高版本,则实际上可能是错误的结果,尤其是当您的系统是缺少交换分区的虚拟机(例如AWS EC2)时。该问题在其他发行版中也存在,但截至撰写本文时,尚不清楚同一修补程序是否可以普遍使用。

临时解决方法:

sudo ln -s /dev/null /etc/udev/rules.d/40-vm-hotadd.rules
sudo reboot

请注意,这将禁用Xen和Hyper-V虚拟机的热添加RAM / CPU。


如果这在我的Kubuntu 16.10上的系统上突然出现,并且已经启用了变通方法。
jeteon

@jeteon可能会导致此行为的多个问题;这恰好是一种特别常见的情况。
Zenexer '16

是的 我发现echo 3 > /proc/sys/vm/drop_caches一旦开始发生,它可以缓解这种情况。我现在先发制人地执行了一项cron作业命令,这似乎有所帮助,或者至少在我离开计算机时限制了OOM大屠杀的持续时间。
jeteon

6

似乎在kswapd某个地方也有bug ,希望只能在较旧的内核上。

现在,kswapd几乎每天都在更大群集中的某些计算机上随机发疯(尽管使用非当前内核)。两个kswapd进程的CPU均为100%。没有其他正在运行的进程(ssh shell除外),大量的可用RAM(超过700 MB)以及根本没有使用SWAP。没有交换,也没有交换。

尚无任何解释,为什么一台特定的机器被命中,而另一台却没有。这似乎不是完全随机的,因为它通常会在很短的时间内击中多台机器。看起来像是闲置的机器以及处于高压下的机器受此影响的可能性较小。因此,它必须承担一些工作量,并且只有在机器既不闲置也不很忙时才会命中。

如果问题解决了,那就没有帮助了。杀死所有进程(这些进程不会变得不可杀),卸载所有文件系统,什么也没有。kswapd仍保持100%CPU。我怀疑在SMP内核中发生了自旋锁竞赛,但是我也很可能错了。

也许看到我的答案serverfault.com/questions/316995/#493257

笔记:

  • 重新启动受影响的计算机通常会失败,因为关闭过程开始挂在某个地方。
  • 没有直接连接到Internet。外部原因不太可能。
  • 从负载的角度来看,这似乎取决于计算机处理的工作负载类型,因为我们拥有尚未受到影响的计算机(至今)。
  • 抱歉,我不能更具体地说明我们的工作及其原因。
  • 是的,我在推测。因为这是一个非常令人困惑的效果,所以今天。

这是历史性的。RedHat确认:这是与NFS客户端结合使用的内核2.6.18-194.el5的问题。它已在2012年修复。有关更多信息,请参见我的文字中的链接答案。如果您今天遇到这个问题,则可能是其他原因。
蒂诺

1
在某些地方这仍然是一个问题。我已经看到了无数的弹出窗口。在这里,和这里有一些例子。
trueCamelType
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.