检查 Linux 上哪些进程正在占用交换空间?

检查 Linux 上哪些进程正在占用交换空间?

top要查看一些内存信息,我可以通过查看cat /proc/meminfo
在 /proc/meminfo 中,我可以看到整个系统的交换使用情况,如下所示:

SwapCached:            4 kB
SwapTotal:      33460220 kB
SwapFree:       33460216 kB

但可能会出现几乎所有交换空间都被使用的情况(即交换空间太小SwapFree)。我如何才能确定哪些进程正在占用这些交换空间?

UPD:内存太小SwapFree基本上意味着有某个进程占用了大量内存,并且很长时间没有使用。我需要找到这样的进程。

答案1

  1. 跑步top
  2. 按下f以选择显示的字段
  3. 使用箭头键向下导航至 SWAP
  4. 命中Space- SWAP 前面会显示星号*
  5. 按右箭头键 - 这将允许您将 SWAP 移动到列表中的方便位置,例如 %MEM 和 TIME+ 之间
  6. 按 q 返回顶视图

第 5 步不是必需的,只是为了方便 - 如果没有它,SWAP 将显示为列表的最后一项,在之后COMMAND

答案2

您可以使用smem命令行工具。

smem 手册页:

Memory can be reported by process, by user, by mapping,
or systemwide. Both text mode and graphical output are available.

smem内存报告工具

答案3

监视内存和交换使用情况的工具是 smemstat,它可以显示类似 top 的输出

smemstat -mT
(“交换报告换出到磁盘的内存。”)曼斯泰

在终端中,按内存使用率最高的顺序排列在最上面。

相关内容