是否可以获取使用Runtime.getRuntime().exec(...);
创建的java Process的当前RAM使用率。我正在创建一个minecraft服务器实例,我需要监视服务器的资源使用情况。
以下是我正在创建流程的方法。
private void runStartCommand(){
try {
lines = new ArrayList<>();
String cmd = "cmd.exe /c cd " + service.getLocation() + "& java -jar -Xmx2G -Xms2G "+service.getLocation()+"spigot-1.9.2.jar";
process = Runtime.getRuntime().exec(cmd);
input = new BufferedReader(new InputStreamReader(process.getInputStream()),8*1024);
writer = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
running = true;
} catch (IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:2)
Bukkit已经为monitoring and managing Minecraft server performance提供了一个适合您的自定义插件。
通常,您可以使用Java Melody或JMX控制台等方法来监视应用程序服务器进程。您还可以使用built-in VisualVM来检测和监控它。
答案 1 :(得分:0)
http://linux.die.net/man/1/dstat
如果你在Linux下,你可以试试dstat。我们用它来控制cpu,磁盘的使用
答案 2 :(得分:0)
您可以尝试运行systeminfo,但是您应该考虑不使用Java,而是在操作系统上运行其他工具(您可以使用nagios) - 这样您的监控就不依赖于您正在运行的应用程序。