summaryrefslogtreecommitdiffstats
path: root/node-admin/src/main/java/com
diff options
context:
space:
mode:
authorvalerijf <valerijf@oath.com>2017-09-05 16:52:23 +0200
committervalerijf <valerijf@oath.com>2017-09-05 16:52:23 +0200
commitb792d6621f28a86858c10f87d7b47d1316dd3f78 (patch)
tree5825b5c6efd808c3c5ab103746edf98990f03851 /node-admin/src/main/java/com
parent8910a869322ef5e6864be407f66c2fbc5782bb8b (diff)
Only call removeOldFiles if diskUtil > 0.8
Diffstat (limited to 'node-admin/src/main/java/com')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
index 0d110adf5a4..cd851fab0e3 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
@@ -50,6 +50,10 @@ import static com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentImpl.Containe
* @author bakksjo
*/
public class NodeAgentImpl implements NodeAgent {
+ // This is used as a definition of 1 GB when comparing flavor specs in node-repo
+ public static final long BYTES_IN_GB = 1 << 30;
+
+
private final AtomicBoolean terminated = new AtomicBoolean(false);
private boolean isFrozen = true;
private boolean wantFrozen = false;
@@ -451,8 +455,12 @@ public class NodeAgentImpl implements NodeAgent {
break;
case active:
storageMaintainer.ifPresent(maintainer -> {
- maintainer.removeOldFilesFromNode(containerName);
maintainer.handleCoreDumpsForContainer(containerName, nodeSpec, false);
+
+ maintainer.getDiskUsageFor(containerName)
+ .map(diskUsage -> (double) diskUsage / BYTES_IN_GB / nodeSpec.minDiskAvailableGb)
+ .filter(diskUtil -> diskUtil >= 0.8)
+ .ifPresent(diskUtil -> maintainer.removeOldFilesFromNode(containerName));
});
scheduleDownLoadIfNeeded(nodeSpec);
if (isDownloadingImage()) {
@@ -481,7 +489,6 @@ public class NodeAgentImpl implements NodeAgent {
orchestrator.resume(hostname);
break;
case inactive:
- storageMaintainer.ifPresent(maintainer -> maintainer.removeOldFilesFromNode(containerName));
removeContainerIfNeededUpdateContainerState(nodeSpec, container);
updateNodeRepoWithCurrentAttributes(nodeSpec);
break;
@@ -517,14 +524,13 @@ public class NodeAgentImpl implements NodeAgent {
Docker.ContainerStats stats = containerStats.get();
final String APP = MetricReceiverWrapper.APPLICATION_NODE;
- final long bytesInGB = 1 << 30;
final int totalNumCpuCores = ((List<Number>) ((Map) stats.getCpuStats().get("cpu_usage")).get("percpu_usage")).size();
final long cpuContainerTotalTime = ((Number) ((Map) stats.getCpuStats().get("cpu_usage")).get("total_usage")).longValue();
final long cpuSystemTotalTime = ((Number) stats.getCpuStats().get("system_cpu_usage")).longValue();
final long memoryTotalBytes = ((Number) stats.getMemoryStats().get("limit")).longValue();
final long memoryTotalBytesUsage = ((Number) stats.getMemoryStats().get("usage")).longValue();
final long memoryTotalBytesCache = ((Number) ((Map) stats.getMemoryStats().get("stats")).get("cache")).longValue();
- final long diskTotalBytes = (long) (nodeSpec.minDiskAvailableGb * bytesInGB);
+ final long diskTotalBytes = (long) (nodeSpec.minDiskAvailableGb * BYTES_IN_GB);
final Optional<Long> diskTotalBytesUsed = storageMaintainer.flatMap(maintainer -> maintainer
.getDiskUsageFor(containerName));