判断哪个应用程序/进程正在使用交换的最佳方法?

hey*_*ema 3 swap

我有 16G RAM 和 8G 交换分区。我正在运行 Unity 17.04。我有一个问题,我的buff/cache内存达到 11M,然后swap used达到 3500 左右。以前我几乎从未使用过任何交换空间,也从未监控过 buff/缓存。

我相信这是一个内存泄漏的应用程序,但我可能是错的。

简单的问题。是否有任何简单的方法可以确定应用程序/进程是否或已经使用交换?

在此处输入图片说明

Ali*_*deh 6

可以通过这个命令查到特殊进程使用了​​多少交换分区:

cat /proc/"PID"/status | grep "^VmSwap"
Run Code Online (Sandbox Code Playgroud)

你可以PID通过这个命令找到:

ps -A | grep "Application_name"
Run Code Online (Sandbox Code Playgroud)

但是如果你想找到哪些进程正在使用交换分区,你可以使用这个脚本:

cat /proc/"PID"/status | grep "^VmSwap"
Run Code Online (Sandbox Code Playgroud)

然后,您可以从脚本返回的 PID 中找到应用程序名称。

更新:我更改了此脚本以每 10 秒创建一次日志文件(您可以更改时间),在该文件中,您可以看到从运行此脚本到现在的许多进程:

ps -A | grep "Application_name"
Run Code Online (Sandbox Code Playgroud)

您可以将此脚本设置为在启动时运行,以便每次都创建日志。