X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6f15deea24d3544e08ba6c5681d2a2a11de40971..eb5b8638a308f7954f83a6a6659ae97d4f4e082d:/services/workbench2/src/views/instance-types-panel/instance-types-panel.tsx
diff --git a/services/workbench2/src/views/instance-types-panel/instance-types-panel.tsx b/services/workbench2/src/views/instance-types-panel/instance-types-panel.tsx
index 22617d8c86..2f240c8228 100644
--- a/services/workbench2/src/views/instance-types-panel/instance-types-panel.tsx
+++ b/services/workbench2/src/views/instance-types-panel/instance-types-panel.tsx
@@ -77,8 +77,9 @@ export const InstanceTypesPanel = withStyles(styles)(connect(mapStateToProps)(
}
}).map((instanceKey) => {
const instanceType = instances[instanceKey];
- const diskRequest = instanceType.IncludedScratch;
- const ramRequest = instanceType.RAM - config.Containers.ReserveExtraRAM;
+ const maxDiskRequest = instanceType.IncludedScratch;
+ const keepBufferOverhead = calculateKeepBufferOverhead(instanceType.VCPUs);
+ const maxRamRequest = discountRamByPercent(instanceType.RAM - config.Containers.ReserveExtraRAM - keepBufferOverhead);
return
@@ -90,16 +91,16 @@ export const InstanceTypesPanel = withStyles(styles)(connect(mapStateToProps)(
-
+
-
+
-
+
@@ -129,3 +130,19 @@ export const InstanceTypesPanel = withStyles(styles)(connect(mapStateToProps)(
;
}
));
+
+export const calculateKeepBufferOverhead = (coreCount: number): number => {
+ // TODO replace with exported server config
+ const buffersPerVCPU = 1;
+
+ // Returns 220 MiB + 64MiB+10% per buffer
+ return (220 << 20) + (buffersPerVCPU * coreCount * (1 << 26) * (11/10))
+};
+
+export const discountRamByPercent = (requestedRamBytes: number): number => {
+ // TODO replace this with exported server config or remove when no longer
+ // used by server in ram calculation
+ const discountPercent = 5;
+
+ return requestedRamBytes * 100 / (100-discountPercent);
+};