如何通过java清除linux中的交换使用区

如何通过java清除linux中的交换使用区,java,swap,cache-control,Java,Swap,Cache Control,我在java中尝试了swapoff和swapon,但我没有看到top有任何变化 这是我的密码: String[] commands= {"/bin/sh","-c","/sbin/swapoff -a && /sbin/swapon -a"}; Process pr = Runtime.getRuntime().exec(commands); pr.waitFor(); 弦有问题吗? 在top中成功执行命令后,我不会看到更改吗 谢谢。您应该在swapoff之前删除缓存: /b

我在java中尝试了swapoff和swapon,但我没有看到top有任何变化

这是我的密码:

String[] commands= {"/bin/sh","-c","/sbin/swapoff -a && /sbin/swapon -a"};

Process pr = Runtime.getRuntime().exec(commands);
pr.waitFor();
弦有问题吗? 在top中成功执行命令后,我不会看到更改吗


谢谢。

您应该在swapoff之前删除缓存:

/bin/echo 1 > /proc/sys/vm/drop_caches 
/bin/echo 2 > /proc/sys/vm/drop_caches 
/bin/echo 3 > /proc/sys/vm/drop_caches

OT,但您为什么要这样做呢?
swapoff-a和&swapon-a
在shell中运行时是否有效?出于自动化脚本的基准测试原因。我无法停止脚本以清除shell中的交换,然后继续…pr.waitFor()的结果是什么?另外,您是否确定运行此功能的用户具有足够的权限(
/sbin
对于“普通”用户甚至不在
路径中)?@Alex:您是否逐字检查过它(
/bin/sh-c)/sbin/swapoff-a&/sbin/swapon-a“echo$?
)?