系统交换...我该如何找出问题所在

系统交换...我该如何找出问题所在

我有一个正在运行的 ubuntu vps,它有大约 300MB 的内存,其中现在只有 20% 或更少的内存是可用的...
我的问题是,我如何找出我正在运行的哪个特定程序导致它交换这么多?

答案1

要找出每个进程使用的交换空间量,请运行top(不是htop),按“f”选择要显示的列(f 表示字段),按“p”添加要显示的交换,按“o”对表进行排序(o 表示排序依据)并再次按“p”按交换使用情况排序。

答案2

从跑步开始

top

并按下 M [ shift+m​​ ]。

您将获得按内存消耗排序的进程列表。

答案3

微电子比 top 更难用,但提供了很好的信息。你可以先使用sudo smem -s uss -r -kwhich 来输出:

  PID User     Command                         Swap      USS      PSS      RSS 
12345 spam     /usr/lib/jvm/java-6-sun/bin        0   620.9M        0   626.5M 
98765 eggs     /usr/bin/java -Xmx1500m -XX        0   544.2M        0   549.9M 

你可能还想看看这篇 lwn.net 文章,解释了RSS、PSS和USS之间的区别。

答案4

另一个选择是htop,在某些情况下它具有更好的输出。

相关内容