service-capacity-modeling 0.3.74__tar.gz → 0.3.76__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of service-capacity-modeling might be problematic. Click here for more details.
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/PKG-INFO +9 -5
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/README.md +3 -3
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/interface.py +29 -5
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/common.py +257 -180
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/cassandra.py +14 -9
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/evcache.py +10 -18
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling.egg-info/PKG-INFO +9 -5
- service_capacity_modeling-0.3.76/service_capacity_modeling.egg-info/requires.txt +7 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/setup.py +4 -1
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_buffers.py +119 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_common.py +230 -18
- service_capacity_modeling-0.3.74/service_capacity_modeling.egg-info/requires.txt +0 -10
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/LICENSE +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/__init__.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/capacity_planner.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/__init__.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/__init__.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/pricing/aws/3yr-reserved_ec2.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/pricing/aws/3yr-reserved_zz-overrides.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/profiles.txt +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5a.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5d.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5n.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6a.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6i.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6id.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7a.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7i.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c8i.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_i3en.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_i4i.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_i7i.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m4.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5n.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6a.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6i.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6id.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6idn.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6in.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m7a.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m7i.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m8i.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r4.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r5.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r5n.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6a.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6i.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6id.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6idn.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6in.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r7a.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r7i.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r8i.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_drives.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_instances.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_services.json +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/__init__.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/headroom_strategy.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/__init__.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/__init__.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/aurora.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/counter.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/crdb.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/ddb.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/elasticsearch.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/entity.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/graphkv.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/iso_date_math.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/kafka.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/key_value.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/postgres.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/rds.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/stateless_java.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/time_series.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/time_series_config.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/wal.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/org/netflix/zookeeper.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/models/utils.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/stats.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/tools/__init__.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/tools/auto_shape.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/tools/fetch_pricing.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/tools/generate_missing.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling/tools/instance_families.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling.egg-info/SOURCES.txt +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling.egg-info/dependency_links.txt +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling.egg-info/entry_points.txt +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/service_capacity_modeling.egg-info/top_level.txt +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/setup.cfg +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_arguments.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_desire_merge.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_generate_scenarios.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_hardware.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_hardware_shapes.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_headroom_strategy.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_io2.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_model_dump.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_reproducible.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_simulation.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_utils.py +0 -0
- {service_capacity_modeling-0.3.74 → service_capacity_modeling-0.3.76}/tests/test_working_set.py +0 -0
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: service-capacity-modeling
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.76
|
|
4
4
|
Summary: Contains utilities for modeling capacity for pluggable workloads
|
|
5
5
|
Author: Joseph Lynch
|
|
6
6
|
Author-email: josephl@netflix.com
|
|
7
7
|
License: Apache 2.0
|
|
8
8
|
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
9
12
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
10
13
|
Classifier: Operating System :: OS Independent
|
|
14
|
+
Requires-Python: >=3.9,<3.12
|
|
11
15
|
Description-Content-Type: text/markdown
|
|
12
16
|
License-File: LICENSE
|
|
13
17
|
Requires-Dist: pydantic>2.0
|
|
14
18
|
Requires-Dist: scipy
|
|
15
19
|
Requires-Dist: numpy
|
|
16
|
-
Requires-Dist: importlib_resources; python_version < "3.7"
|
|
17
20
|
Requires-Dist: isodate
|
|
18
21
|
Provides-Extra: aws
|
|
19
22
|
Requires-Dist: boto3; extra == "aws"
|
|
@@ -26,6 +29,7 @@ Dynamic: license
|
|
|
26
29
|
Dynamic: license-file
|
|
27
30
|
Dynamic: provides-extra
|
|
28
31
|
Dynamic: requires-dist
|
|
32
|
+
Dynamic: requires-python
|
|
29
33
|
Dynamic: summary
|
|
30
34
|
|
|
31
35
|
# Service Capacity Modeling
|
|
@@ -43,10 +47,10 @@ remember this repository is public when making changes to it.
|
|
|
43
47
|
Run the tests:
|
|
44
48
|
```bash
|
|
45
49
|
# Test the capacity planner on included netflix models
|
|
46
|
-
$ tox -e
|
|
50
|
+
$ tox -e py39
|
|
47
51
|
|
|
48
52
|
# Run a single test with a debugger attached if the test fails
|
|
49
|
-
$ .tox/
|
|
53
|
+
$ .tox/py39/bin/pytest -n0 -k test_java_heap_heavy --pdb --pdbcls=IPython.terminal.debugger:Pdb
|
|
50
54
|
|
|
51
55
|
# Verify all type contracts
|
|
52
56
|
$ tox -e mypy
|
|
@@ -247,7 +251,7 @@ To contribute to this project:
|
|
|
247
251
|
2. Write a unit test using `pytest` in the `tests` folder.
|
|
248
252
|
3. Ensure your tests pass via `tox` or debug them with:
|
|
249
253
|
```
|
|
250
|
-
tox -e
|
|
254
|
+
tox -e py39 -- -k test_<your_functionality> --pdb --pdbcls=IPython.terminal.debugger:Pdb
|
|
251
255
|
```
|
|
252
256
|
|
|
253
257
|
### Pre-commit / Linting
|
|
@@ -13,10 +13,10 @@ remember this repository is public when making changes to it.
|
|
|
13
13
|
Run the tests:
|
|
14
14
|
```bash
|
|
15
15
|
# Test the capacity planner on included netflix models
|
|
16
|
-
$ tox -e
|
|
16
|
+
$ tox -e py39
|
|
17
17
|
|
|
18
18
|
# Run a single test with a debugger attached if the test fails
|
|
19
|
-
$ .tox/
|
|
19
|
+
$ .tox/py39/bin/pytest -n0 -k test_java_heap_heavy --pdb --pdbcls=IPython.terminal.debugger:Pdb
|
|
20
20
|
|
|
21
21
|
# Verify all type contracts
|
|
22
22
|
$ tox -e mypy
|
|
@@ -217,7 +217,7 @@ To contribute to this project:
|
|
|
217
217
|
2. Write a unit test using `pytest` in the `tests` folder.
|
|
218
218
|
3. Ensure your tests pass via `tox` or debug them with:
|
|
219
219
|
```
|
|
220
|
-
tox -e
|
|
220
|
+
tox -e py39 -- -k test_<your_functionality> --pdb --pdbcls=IPython.terminal.debugger:Pdb
|
|
221
221
|
```
|
|
222
222
|
|
|
223
223
|
### Pre-commit / Linting
|
|
@@ -264,14 +264,14 @@ class Drive(ExcludeUnsetModel):
|
|
|
264
264
|
return max(self.block_size_kib, self.group_size_kib)
|
|
265
265
|
|
|
266
266
|
@property
|
|
267
|
-
def max_size_gib(self):
|
|
267
|
+
def max_size_gib(self) -> int:
|
|
268
268
|
if self.max_scale_size_gib != 0:
|
|
269
269
|
return self.max_scale_size_gib
|
|
270
270
|
else:
|
|
271
271
|
return self.size_gib
|
|
272
272
|
|
|
273
273
|
@property
|
|
274
|
-
def max_io_per_s(self):
|
|
274
|
+
def max_io_per_s(self) -> int:
|
|
275
275
|
if self.max_scale_io_per_s != 0:
|
|
276
276
|
return self.max_scale_io_per_s
|
|
277
277
|
else:
|
|
@@ -779,23 +779,48 @@ class BufferComponent(str, Enum):
|
|
|
779
779
|
compute = "compute"
|
|
780
780
|
# [Data Shape] a.k.a. "Dataset" related buffers, e.g. Disk and Memory
|
|
781
781
|
storage = "storage"
|
|
782
|
-
|
|
783
782
|
# Resource specific component
|
|
784
783
|
cpu = "cpu"
|
|
785
784
|
network = "network"
|
|
786
785
|
disk = "disk"
|
|
787
786
|
memory = "memory"
|
|
788
787
|
|
|
788
|
+
@staticmethod
|
|
789
|
+
def is_generic(component: str) -> bool:
|
|
790
|
+
return component in {BufferComponent.compute, BufferComponent.storage}
|
|
791
|
+
|
|
792
|
+
@staticmethod
|
|
793
|
+
def is_specific(component: str) -> bool:
|
|
794
|
+
return not BufferComponent.is_generic(component)
|
|
795
|
+
|
|
789
796
|
|
|
790
797
|
class BufferIntent(str, Enum):
|
|
791
798
|
# Most buffers show "desired" buffer, this is the default
|
|
792
799
|
desired = "desired"
|
|
793
800
|
# ratio on top of existing buffers to ensure exists. Generally combined
|
|
794
801
|
# with a different desired buffer to ensure we don't just scale needlessly
|
|
802
|
+
# This means we can scale up or down as as long as we meet the desired buffer.
|
|
795
803
|
scale = "scale"
|
|
796
|
-
|
|
804
|
+
|
|
805
|
+
# DEPRECATED: Use scale_up/scale_down instead
|
|
806
|
+
# Ignores model preferences, just preserve existing buffers
|
|
807
|
+
# We rarely actually want to do this since it can cause severe over provisioning
|
|
797
808
|
preserve = "preserve"
|
|
798
809
|
|
|
810
|
+
# Scale up if necessary to meet the desired buffer.
|
|
811
|
+
# If the existing resource is over-provisioned, do not reduce the requirement.
|
|
812
|
+
# If under-provisioned, the requirement can be increased to meet the desired buffer.
|
|
813
|
+
# Example: need 20 cores but have 10 → scale up to 20 cores.
|
|
814
|
+
# Example 2: need 20 cores but have 40 → do not scale down and require at
|
|
815
|
+
# least 40 cores
|
|
816
|
+
scale_up = "scale_up"
|
|
817
|
+
# Scale down if necessary to meet the desired buffer.
|
|
818
|
+
# If the existing resource is under-provisioned, do not increase the requirement.
|
|
819
|
+
# If over-provisioned, the requirement can be decreased to meet the desired buffer.
|
|
820
|
+
# Example: need 20 cores but have 10 → maintain buffer and do not scale up.
|
|
821
|
+
# Example 2: need 20 cores but have 40 → scale down to 20 cores.
|
|
822
|
+
scale_down = "scale_down"
|
|
823
|
+
|
|
799
824
|
|
|
800
825
|
class Buffer(ExcludeUnsetModel):
|
|
801
826
|
# The value of the buffer expressed as a ratio over "normal" load e.g. 1.5x
|
|
@@ -819,7 +844,6 @@ class Buffers(ExcludeUnsetModel):
|
|
|
819
844
|
"compute": Buffer(ratio: 1.5),
|
|
820
845
|
}
|
|
821
846
|
)
|
|
822
|
-
|
|
823
847
|
And then models layer in their buffers, for example if a workload
|
|
824
848
|
requires 10 CPU cores, but the operator of that workload likes to build in
|
|
825
849
|
2x buffer for background work (20 cores provisioned), they would express that
|