You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2016/11/14 18:58:30 UTC
svn commit: r1769676 - in
/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws:
DuccMachinesData.java MachineInfo.java server/nodeviz/Markup.java
server/nodeviz/NodeViz.java server/nodeviz/VisualizedHost.java
Author: degenaro
Date: Mon Nov 14 18:58:30 2016
New Revision: 1769676
URL: http://svn.apache.org/viewvc?rev=1769676&view=rev
Log:
UIMA-5181 DUCC Web Server (WS) Viz should display actual and schedulable sizes in concordance with Machines page
Modified:
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/Markup.java
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/NodeViz.java
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/VisualizedHost.java
Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java?rev=1769676&r1=1769675&r2=1769676&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java Mon Nov 14 18:58:30 2016
@@ -244,11 +244,12 @@ public class DuccMachinesData {
while(iterator.hasNext()) {
String nodeName = (String) iterator.next();
String memTotal = "";
+ String memReserve = "";
String memFree = "";
String swapInuse = "";
String swapFree = "";
double cpu = 0;
- MachineInfo machineInfo = new MachineInfo(IDuccEnv.DUCC_NODES_FILE_PATH, "", nodeName, memTotal, memFree, swapInuse, swapFree, cpu, false, false, null, -1, 0);
+ MachineInfo machineInfo = new MachineInfo(IDuccEnv.DUCC_NODES_FILE_PATH, "", nodeName, memTotal, memReserve, memFree, swapInuse, swapFree, cpu, false, false, null, -1, 0);
putMachine(machineInfo);
}
updateSortedMachines();
@@ -365,6 +366,8 @@ public class DuccMachinesData {
long lvalMemTotal = (long) ((1.0*nodeMemTotal)/(1024*1024)+0.5);
msi.memTotal = lvalMemTotal;
String memTotal = ""+lvalMemTotal/*+memUnits*/;
+ // mem: reserve
+ String memReserve = memTotal;
// mem: free
long nodeMemFree = nodeMetrics.getNodeMemory().getMemFree();
logger.debug(location, jobid, "node: "+machineName+" "+"memFree: "+nodeMemFree);
@@ -395,7 +398,7 @@ public class DuccMachinesData {
double cpu = getCpuLoadAvg(node);
boolean cGroupsEnabled = nodeMetrics.getCgroups();
boolean cGroupsCpuReportingEnabled = nodeMetrics.getCgroupsCpuReportingEnabled();
- MachineInfo current = new MachineInfo("", ip.toString(), machineName, memTotal, memFree, ""+swapInuse, ""+swapFree, cpu, cGroupsEnabled, cGroupsCpuReportingEnabled, alienPids, duccEvent.getMillis(), duccEvent.getEventSize());
+ MachineInfo current = new MachineInfo("", ip.toString(), machineName, memTotal, memReserve, memFree, ""+swapInuse, ""+swapFree, cpu, cGroupsEnabled, cGroupsCpuReportingEnabled, alienPids, duccEvent.getMillis(), duccEvent.getEventSize());
NodeId key = nodeId;
MachineInfo previous = unsortedMachines.get(key);
@@ -650,9 +653,9 @@ public class DuccMachinesData {
IDbMachine dbMachine = entry.getValue();
if(mi != null) {
int quantum = dbMachine.getQuantum();
- int total = quantum*dbMachine.getShareOrder();
+ int reserve = quantum*dbMachine.getShareOrder();
int free = quantum*dbMachine.getSharesLeft();
- mi.setMemTotal(""+total);
+ mi.setMemReserve(""+reserve);
mi.setMemFree(""+free);
dbSortedMachines.put(mi, nodeId);
}
Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java?rev=1769676&r1=1769675&r2=1769676&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java Mon Nov 14 18:58:30 2016
@@ -48,6 +48,7 @@ public class MachineInfo implements Comp
private String ip;
private String name;
private String memTotal;
+ private String memReserve;
private String memFree;
private String swapInuse;
private String swapFree;
@@ -71,20 +72,21 @@ public class MachineInfo implements Comp
private NodeId nodeid;
- public MachineInfo(String fileDef, String ip, String name, String memTotal, String memFree, String swapInuse, String swapFree, double cpu, boolean cGroupsEnabled, boolean cGroupsCpuReportingEnabled, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
- init(MachineStatus.Defined, fileDef, ip, name, memTotal, memFree, swapInuse, swapFree, cpu, cGroupsEnabled, cGroupsCpuReportingEnabled, alienPids, heartbeat, pubSize);
+ public MachineInfo(String fileDef, String ip, String name, String memTotal, String memReserve, String memFree, String swapInuse, String swapFree, double cpu, boolean cGroupsEnabled, boolean cGroupsCpuReportingEnabled, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
+ init(MachineStatus.Defined, fileDef, ip, name, memTotal, memReserve, memFree, swapInuse, swapFree, cpu, cGroupsEnabled, cGroupsCpuReportingEnabled, alienPids, heartbeat, pubSize);
}
- public MachineInfo(MachineStatus machineStatus, String fileDef, String ip, String name, String memTotal, String memFree, String swapInuse, String swapFree, double cpu, boolean cGroupsEnabled, boolean cGroupsCpuReportingEnabled, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
- init(machineStatus, fileDef, ip, name, memTotal, memFree, swapInuse, swapFree, cpu, cGroupsEnabled, cGroupsCpuReportingEnabled, alienPids, heartbeat, pubSize);
+ public MachineInfo(MachineStatus machineStatus, String fileDef, String ip, String name, String memTotal, String memReserve, String memFree, String swapInuse, String swapFree, double cpu, boolean cGroupsEnabled, boolean cGroupsCpuReportingEnabled, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
+ init(machineStatus, fileDef, ip, name, memTotal, memReserve, memFree, swapInuse, swapFree, cpu, cGroupsEnabled, cGroupsCpuReportingEnabled, alienPids, heartbeat, pubSize);
}
- private void init(MachineStatus machineStatus, String fileDef, String ip, String name, String memTotal, String memFree, String swapInuse, String swapFree, double cpu, boolean cGroupsEnabled, boolean cGroupsCpuReportingEnabled, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
+ private void init(MachineStatus machineStatus, String fileDef, String ip, String name, String memTotal, String memReserve, String memFree, String swapInuse, String swapFree, double cpu, boolean cGroupsEnabled, boolean cGroupsCpuReportingEnabled, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
this.machineStatus = machineStatus;
this.fileDef = fileDef;
this.ip = ip;
this.name = name;
this.memTotal = memTotal;
+ this.memReserve = memReserve;
this.memFree = memFree;
this.swapInuse = swapInuse;
this.swapFree = swapFree;
@@ -275,6 +277,14 @@ public class MachineInfo implements Comp
return this.memTotal;
}
+ public void setMemReserve(String value) {
+ this.memReserve = value;
+ }
+
+ public String getMemReserve() {
+ return this.memReserve;
+ }
+
public void setMemFree(String value) {
this.memFree = value;
}
Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/Markup.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/Markup.java?rev=1769676&r1=1769675&r2=1769676&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/Markup.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/Markup.java Mon Nov 14 18:58:30 2016
@@ -197,7 +197,7 @@ public class Markup
out.append("GB on host ");
out.append(h.name);
out.append("(");
- out.append(h.mem);
+ out.append(h.mem_reserve);
out.append("GB)</title>");
break;
case Reservation:
@@ -220,7 +220,7 @@ public class Markup
out.append("GB) on ");
out.append(h.name);
out.append("(");
- out.append(h.mem);
+ out.append(h.mem_reserve);
out.append("GB)</title>");
break;
}
Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/NodeViz.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/NodeViz.java?rev=1769676&r1=1769675&r2=1769676&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/NodeViz.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/NodeViz.java Mon Nov 14 18:58:30 2016
@@ -377,8 +377,8 @@ public class NodeViz
{
if ( h1 == h2 ) return 0;
if ( h1.equals(h2) ) return 0;
- if ( h2.mem == h1.mem ) return h1.name.compareTo(h2.name);
- return h2.mem - h1.mem;
+ if ( h2.mem_reserve == h1.mem_reserve ) return h1.name.compareTo(h2.name);
+ return h2.mem_reserve - h1.mem_reserve;
}
}
Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/VisualizedHost.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/VisualizedHost.java?rev=1769676&r1=1769675&r2=1769676&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/VisualizedHost.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/VisualizedHost.java Mon Nov 14 18:58:30 2016
@@ -36,18 +36,15 @@ class VisualizedHost
private static DuccLogger logger = DuccLoggerComponents.getWsLogger(VisualizedHost.class.getName());
private static FragmentSorter sorter = new FragmentSorter();
- // TODO:
- // Some goodies - aliens, swap, heartbeat info, pubsize, expired, status
String name; // host name
String ip; // host ip
- int mem; // actual mem as reported by agent
- int shares; // q shares available on this host (constant)
-
- int shares_free; // shares not used by jobs
- int mem_reservable; // schedulable (reservable) memory on this hosts
-
+ int mem_total; // actual mem as reported by agent
+ int mem_reserve; // schedulable memory on this host, unused + used
+ int mem_free; // schedulable memory on this host, unused
int quantum; // RM scheduling quantum
-
+ int shares_reserve; // shares on this host, unused + used
+ int shares_free; // shares on this host, unused
+
List<JobFragment> fragments = new ArrayList<JobFragment>();
/**
@@ -60,11 +57,10 @@ class VisualizedHost
this.ip = n.getNodeIdentity().getIp();
// mem from OR pub is in KB. must convert to GB
- this.mem = (int) n.getNodeMetrics().getNodeMemory().getMemFree() / ( 1024 * 1024 );
-
- this.shares = (mem / quantum);
- this.shares_free = shares;
- this.mem_reservable = shares * quantum;
+ this.mem_total = (int) n.getNodeMetrics().getNodeMemory().getMemFree() / ( 1024 * 1024 );
+ this.shares_reserve = (mem_total / quantum);
+ this.shares_free = shares_reserve;
+ this.mem_reserve = shares_reserve * quantum;
}
/**
@@ -76,21 +72,20 @@ class VisualizedHost
this.quantum = quantum;
this.name = NodeViz.strip(info.getName());
this.ip = info.getIp();
-
- this.mem = Integer.parseInt(info.getMemFree());
- this.shares = (mem / quantum);
- this.mem_reservable = shares * quantum;
- this.shares_free = shares;
+ this.mem_total = Integer.parseInt(info.getMemTotal());
+ this.mem_reserve = Integer.parseInt(info.getMemReserve());
+ this.shares_reserve = (mem_reserve / quantum);
+ this.shares_free = shares_reserve;
}
int countShares()
{
- return shares;
+ return shares_reserve;
}
int countRam()
{
- return mem;
+ return mem_reserve;
}
void addWork(DuccType type, String user, String duccid, int jobmem, int qshares, String service_endpoint)
@@ -102,12 +97,12 @@ class VisualizedHost
// 2-3 in real life. If this should change so it's common to have more than about 10 elements in the list
// we should switch to a map.
- logger.debug(methodName, null, name, "Set", qshares, "qshares for", name, type, duccid, ": mem", mem, "free qshares", shares_free, "from OR publication.");
+ logger.debug(methodName, null, name, "Set", qshares, "qshares for", name, type, duccid, ": mem_reserve", mem_reserve, "free qshares", shares_free, "from OR publication.");
// if ( type == DuccType.Reservation ) qshares = shares_free; // Trust the RM and the Force, Luke
if ( shares_free - qshares < 0 ) {
- logger.warn(methodName, null, name, "SHARES FREE WENT NEGATIVE for", type, duccid, user, "qshares", qshares, "mem", mem, "shares_free", shares_free);
+ logger.warn(methodName, null, name, "SHARES FREE WENT NEGATIVE for", type, duccid, user, "qshares", qshares, "mem_reserve", mem_reserve, "shares_free", shares_free);
return;
} else {
shares_free -= qshares;
@@ -138,14 +133,14 @@ class VisualizedHost
{
String methodName = "toSvg "; // (extra spaces so logs line up better)
- if ( shares == 0 ) return;
+ if ( shares_reserve == 0 ) return;
if ( shares_free > 0 ) addWork(DuccType.Undefined, "", "", 0, shares_free, null);
- float size = (float) Math.sqrt(mem);
- logger.debug(methodName, null, name, "mem =", mem, "size =", size);
+ float size = (float) Math.sqrt(mem_reserve);
+ logger.debug(methodName, null, name, "mem =", mem_reserve, "size =", size);
// here set a div that is TITLE_ADJUSTMENT higher and .2 wider than the actual node
- m.divStart(name, mem);
+ m.divStart(name, mem_reserve);
m.svgStart(size + .2f, (size + TITLE_ADJUSTMENT)); // a bit taller than needed to make room for label
// a bit wider, for horizontal spacing
@@ -153,14 +148,14 @@ class VisualizedHost
m.rect(0f, TITLE_ADJUSTMENT, size, size, "black", "none", .1f, "");
// here draw the node name just above the node box, including the hover
- m.tooltipStart(name + " (" + mem + "GB)");
+ m.tooltipStart(name + " (" + mem_total + "GB)");
m.nodeLabel((size/2), TITLE_ADJUSTMENT - .3f, name);
m.tooltipEnd();
Collections.sort(fragments, sorter);
- float height_one_share = (float) Math.sqrt(shares * quantum) / shares;
- float foo = (float) Math.sqrt(mem) / shares;
- logger.debug(methodName, null, name, "avail", (shares*quantum), "height-one-share", height_one_share, "foo", foo);
+ float height_one_share = (float) Math.sqrt(shares_reserve * quantum) / shares_reserve;
+ float foo = (float) Math.sqrt(mem_reserve) / shares_reserve;
+ logger.debug(methodName, null, name, "avail", (shares_reserve*quantum), "height-one-share", height_one_share, "foo", foo);
float top = 0f + TITLE_ADJUSTMENT; // the top of the box
logger.debug(methodName, null, name, "Draw", fragments.size(), "rectangles, box size", size, "share height", height_one_share);