2016-06-14 15 views
1

Ist es möglich, die aktuelle RAM-Auslastung eines Java Process zu erhalten, das mit Runtime.getRuntime().exec(...); erstellt wird. Ich erstelle eine Minecraft-Server-Instanz und muss die Ressourcennutzung des Servers überwachen.So erhalten Sie MemoryUsage-Statistiken für ein Java-Prozessobjekt

Hier ist genau, wie ich den Prozess erstelle.

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

Ist dieser Server unter Unix? –

+0

@SamuelToh Er führt 'cmd.exe' aus, also ist er unter Windows –

+0

Nein. Zur Zeit läuft es unter Windows auf meinem Computer und in Zukunft wird es auf Centos und Windows Servern laufen. – IcyRelic

Antwort

0

http://linux.die.net/man/1/dstat

, wenn Sie unter Linux sind, können Sie dstat versuchen. Wir verwenden es, um die Kontrolle über CPU-, Festplatten-Nutzung zu übernehmen

+0

Vielen Dank für diese Information was ist mit Windows? – IcyRelic

0

Sie könnten versuchen, Systeminfo zu laufen, aber Sie sollten wirklich darüber nachdenken, es nicht von Java zu tun, aber ein anderes Werkzeug (Sie könnten Nagios verwenden) auf dem Betriebssystem - so Ihre Überwachung hängt nicht von der App ab, die Sie ausführen.

+0

Ich erstelle ein Kontrollfeld für mehrere Spiele-Server, so dass es innerhalb der Systemsteuerung zu verwalten wäre – IcyRelic

2

Bukkit bietet bereits ein benutzerdefiniertes Plugin für monitoring and managing Minecraft server performance, das perfekt zu Ihnen passen sollte.

Normalerweise verwenden Sie etwas wie Java Melody oder eine JMX-Konsole, um den Anwendungsserverprozess zu überwachen. Sie können es auch mit der built-in VisualVM instrumentieren und überwachen.

+0

Klingt wie eine gute Lösung. +1 dafür –

+0

Was ich mache ist ein Gaming Control Panel erstellen, so dass ein Plugin nützlich für mich sein kann – IcyRelic