Author: cwiklik Date: Mon Sep 19 13:20:28 2016 New Revision: 1761433 URL: http://svn.apache.org/viewvc?rev=1761433&view=rev Log: UIMA-5047 ,modified to return long for CPU
Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java?rev=1761433&r1=1761432&r2=1761433&view=diff ============================================================================== --- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java (original) +++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java Mon Sep 19 13:20:28 2016 @@ -490,24 +490,36 @@ public class CGroupsManager { return false; } - public String getCpuUsage(String containerId ) throws Exception { - String usage = "0"; - String file = getCGroupLocation("cpuacct")+containerId+System.getProperty("file.separator")+"cpuacct.stat"; - agentLogger.trace("getCpuUsage", null, "CPUACCT.STAT file:"+file); + public long getCpuUsage(String containerId ) throws Exception { + long usage = 0; +// String file = getCGroupLocation("cpuacct")+containerId+System.getProperty("file.separator")+"cpuacct.stat"; + String file = getCGroupLocation("cpuacct")+containerId+System.getProperty("file.separator")+"cpuacct.usage"; + agentLogger.trace("getCpuUsage", null, "CPUACCT.USAGE file:"+file); File f = new File(file); if ( f.exists() ) { InputStreamReader isr = new InputStreamReader(new FileInputStream(f)); BufferedReader br = new BufferedReader(isr); String line; try { +// String cpu; while ((line = br.readLine()) != null) { - agentLogger.trace("getCpuUsage", null, "CPUACCT.STAT Line:"+line); + agentLogger.trace("getCpuUsage", null, "CPUACCT.USAGE Line:"+line); +/* // The line read from cpuacct.stat has: NAME VALUE syntax. // Need just the VALUE part - usage = (line.trim().split(" "))[1]; // get the CPU in user mode + if ( line.trim().length() > 0 ) { + cpu = (line.trim().split(" "))[1]; // get the CPU in user mode + // convert to long and accumulate. Need cpu both in user and system mode + usage += Long.parseLong(cpu); + } + */ + usage = Long.parseLong(line.trim()); break; } - } finally { + } catch ( Exception e) { + agentLogger.error("getCpuUsage", null, e); + } + finally { if (isr != null) { isr.close(); }