service-capacity-modeling 0.3.72__tar.gz → 0.3.74__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.

Files changed (102) hide show
  1. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/PKG-INFO +1 -1
  2. service_capacity_modeling-0.3.74/service_capacity_modeling/hardware/profiles/shapes/aws/auto_i3en.json +172 -0
  3. service_capacity_modeling-0.3.74/service_capacity_modeling/hardware/profiles/shapes/aws/auto_i4i.json +220 -0
  4. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_instances.json +0 -184
  5. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/elasticsearch.py +8 -3
  6. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/tools/instance_families.py +14 -6
  7. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling.egg-info/PKG-INFO +1 -1
  8. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling.egg-info/SOURCES.txt +2 -0
  9. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/LICENSE +0 -0
  10. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/README.md +0 -0
  11. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/__init__.py +0 -0
  12. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/capacity_planner.py +0 -0
  13. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/__init__.py +0 -0
  14. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/__init__.py +0 -0
  15. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/pricing/aws/3yr-reserved_ec2.json +0 -0
  16. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/pricing/aws/3yr-reserved_zz-overrides.json +0 -0
  17. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/profiles.txt +0 -0
  18. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5.json +0 -0
  19. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5a.json +0 -0
  20. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5d.json +0 -0
  21. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c5n.json +0 -0
  22. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6a.json +0 -0
  23. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6i.json +0 -0
  24. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6id.json +0 -0
  25. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7a.json +0 -0
  26. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7i.json +0 -0
  27. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_c8i.json +0 -0
  28. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_i7i.json +0 -0
  29. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m4.json +0 -0
  30. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5.json +0 -0
  31. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5n.json +0 -0
  32. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6a.json +0 -0
  33. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6i.json +0 -0
  34. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6id.json +0 -0
  35. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6idn.json +0 -0
  36. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m6in.json +0 -0
  37. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m7a.json +0 -0
  38. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m7i.json +0 -0
  39. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_m8i.json +0 -0
  40. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r4.json +0 -0
  41. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r5.json +0 -0
  42. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r5n.json +0 -0
  43. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6a.json +0 -0
  44. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6i.json +0 -0
  45. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6id.json +0 -0
  46. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6idn.json +0 -0
  47. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r6in.json +0 -0
  48. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r7a.json +0 -0
  49. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r7i.json +0 -0
  50. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/auto_r8i.json +0 -0
  51. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_drives.json +0 -0
  52. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/hardware/profiles/shapes/aws/manual_services.json +0 -0
  53. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/interface.py +0 -0
  54. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/__init__.py +0 -0
  55. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/common.py +0 -0
  56. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/headroom_strategy.py +0 -0
  57. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/__init__.py +0 -0
  58. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/__init__.py +0 -0
  59. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/aurora.py +0 -0
  60. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/cassandra.py +0 -0
  61. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/counter.py +0 -0
  62. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/crdb.py +0 -0
  63. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/ddb.py +0 -0
  64. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/entity.py +0 -0
  65. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/evcache.py +0 -0
  66. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/graphkv.py +0 -0
  67. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/iso_date_math.py +0 -0
  68. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/kafka.py +0 -0
  69. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/key_value.py +0 -0
  70. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/postgres.py +0 -0
  71. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/rds.py +0 -0
  72. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/stateless_java.py +0 -0
  73. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/time_series.py +0 -0
  74. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/time_series_config.py +0 -0
  75. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/wal.py +0 -0
  76. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/org/netflix/zookeeper.py +0 -0
  77. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/models/utils.py +0 -0
  78. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/stats.py +0 -0
  79. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/tools/__init__.py +0 -0
  80. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/tools/auto_shape.py +0 -0
  81. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/tools/fetch_pricing.py +0 -0
  82. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling/tools/generate_missing.py +0 -0
  83. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling.egg-info/dependency_links.txt +0 -0
  84. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling.egg-info/entry_points.txt +0 -0
  85. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling.egg-info/requires.txt +0 -0
  86. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/service_capacity_modeling.egg-info/top_level.txt +0 -0
  87. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/setup.cfg +0 -0
  88. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/setup.py +0 -0
  89. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_arguments.py +0 -0
  90. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_buffers.py +0 -0
  91. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_common.py +0 -0
  92. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_desire_merge.py +0 -0
  93. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_generate_scenarios.py +0 -0
  94. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_hardware.py +0 -0
  95. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_hardware_shapes.py +0 -0
  96. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_headroom_strategy.py +0 -0
  97. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_io2.py +0 -0
  98. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_model_dump.py +0 -0
  99. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_reproducible.py +0 -0
  100. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_simulation.py +0 -0
  101. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_utils.py +0 -0
  102. {service_capacity_modeling-0.3.72 → service_capacity_modeling-0.3.74}/tests/test_working_set.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: service-capacity-modeling
3
- Version: 0.3.72
3
+ Version: 0.3.74
4
4
  Summary: Contains utilities for modeling capacity for pluggable workloads
5
5
  Author: Joseph Lynch
6
6
  Author-email: josephl@netflix.com
@@ -0,0 +1,172 @@
1
+ {
2
+ "instances": {
3
+ "i3en.large": {
4
+ "name": "i3en.large",
5
+ "cpu": 2,
6
+ "cpu_cores": 1,
7
+ "cpu_ghz": 3.1,
8
+ "cpu_ipc_scale": 1.0,
9
+ "ram_gib": 15.26,
10
+ "net_mbps": 2100.0,
11
+ "drive": {
12
+ "name": "ephem",
13
+ "size_gib": 1164,
14
+ "read_io_per_s": 42500,
15
+ "write_io_per_s": 32500,
16
+ "single_tenant": false,
17
+ "read_io_latency_ms": {
18
+ "low": 0.08,
19
+ "mid": 0.125,
20
+ "high": 0.2,
21
+ "confidence": 0.9,
22
+ "minimum_value": 0.07,
23
+ "maximum_value": 2.0
24
+ }
25
+ }
26
+ },
27
+ "i3en.xlarge": {
28
+ "name": "i3en.xlarge",
29
+ "cpu": 4,
30
+ "cpu_cores": 2,
31
+ "cpu_ghz": 3.1,
32
+ "cpu_ipc_scale": 1.0,
33
+ "ram_gib": 30.52,
34
+ "net_mbps": 4200.0,
35
+ "drive": {
36
+ "name": "ephem",
37
+ "size_gib": 2328,
38
+ "read_io_per_s": 85000,
39
+ "write_io_per_s": 65000,
40
+ "single_tenant": false,
41
+ "read_io_latency_ms": {
42
+ "low": 0.08,
43
+ "mid": 0.125,
44
+ "high": 0.2,
45
+ "confidence": 0.9,
46
+ "minimum_value": 0.07,
47
+ "maximum_value": 2.0
48
+ }
49
+ }
50
+ },
51
+ "i3en.2xlarge": {
52
+ "name": "i3en.2xlarge",
53
+ "cpu": 8,
54
+ "cpu_cores": 4,
55
+ "cpu_ghz": 3.1,
56
+ "cpu_ipc_scale": 1.0,
57
+ "ram_gib": 61.04,
58
+ "net_mbps": 8400.0,
59
+ "drive": {
60
+ "name": "ephem",
61
+ "size_gib": 4657,
62
+ "read_io_per_s": 170000,
63
+ "write_io_per_s": 130000,
64
+ "single_tenant": false,
65
+ "read_io_latency_ms": {
66
+ "low": 0.08,
67
+ "mid": 0.125,
68
+ "high": 0.2,
69
+ "confidence": 0.9,
70
+ "minimum_value": 0.07,
71
+ "maximum_value": 2.0
72
+ }
73
+ }
74
+ },
75
+ "i3en.3xlarge": {
76
+ "name": "i3en.3xlarge",
77
+ "cpu": 12,
78
+ "cpu_cores": 6,
79
+ "cpu_ghz": 3.1,
80
+ "cpu_ipc_scale": 1.0,
81
+ "ram_gib": 91.55,
82
+ "net_mbps": 12500.0,
83
+ "drive": {
84
+ "name": "ephem",
85
+ "size_gib": 6985,
86
+ "read_io_per_s": 255000,
87
+ "write_io_per_s": 195000,
88
+ "single_tenant": true,
89
+ "read_io_latency_ms": {
90
+ "low": 0.08,
91
+ "mid": 0.125,
92
+ "high": 0.2,
93
+ "confidence": 0.9,
94
+ "minimum_value": 0.07,
95
+ "maximum_value": 2.0
96
+ }
97
+ }
98
+ },
99
+ "i3en.6xlarge": {
100
+ "name": "i3en.6xlarge",
101
+ "cpu": 24,
102
+ "cpu_cores": 12,
103
+ "cpu_ghz": 3.1,
104
+ "cpu_ipc_scale": 1.0,
105
+ "ram_gib": 183.11,
106
+ "net_mbps": 25000.0,
107
+ "drive": {
108
+ "name": "ephem",
109
+ "size_gib": 13970,
110
+ "read_io_per_s": 510000,
111
+ "write_io_per_s": 390000,
112
+ "single_tenant": true,
113
+ "read_io_latency_ms": {
114
+ "low": 0.08,
115
+ "mid": 0.125,
116
+ "high": 0.2,
117
+ "confidence": 0.9,
118
+ "minimum_value": 0.07,
119
+ "maximum_value": 2.0
120
+ }
121
+ }
122
+ },
123
+ "i3en.12xlarge": {
124
+ "name": "i3en.12xlarge",
125
+ "cpu": 48,
126
+ "cpu_cores": 24,
127
+ "cpu_ghz": 3.1,
128
+ "cpu_ipc_scale": 1.0,
129
+ "ram_gib": 366.21,
130
+ "net_mbps": 50000.0,
131
+ "drive": {
132
+ "name": "ephem",
133
+ "size_gib": 27940,
134
+ "read_io_per_s": 1020000,
135
+ "write_io_per_s": 780000,
136
+ "single_tenant": true,
137
+ "read_io_latency_ms": {
138
+ "low": 0.08,
139
+ "mid": 0.125,
140
+ "high": 0.2,
141
+ "confidence": 0.9,
142
+ "minimum_value": 0.07,
143
+ "maximum_value": 2.0
144
+ }
145
+ }
146
+ },
147
+ "i3en.24xlarge": {
148
+ "name": "i3en.24xlarge",
149
+ "cpu": 96,
150
+ "cpu_cores": 48,
151
+ "cpu_ghz": 3.1,
152
+ "cpu_ipc_scale": 1.0,
153
+ "ram_gib": 732.42,
154
+ "net_mbps": 100000.0,
155
+ "drive": {
156
+ "name": "ephem",
157
+ "size_gib": 55879,
158
+ "read_io_per_s": 2040000,
159
+ "write_io_per_s": 1560000,
160
+ "single_tenant": true,
161
+ "read_io_latency_ms": {
162
+ "low": 0.08,
163
+ "mid": 0.125,
164
+ "high": 0.2,
165
+ "confidence": 0.9,
166
+ "minimum_value": 0.07,
167
+ "maximum_value": 2.0
168
+ }
169
+ }
170
+ }
171
+ }
172
+ }
@@ -0,0 +1,220 @@
1
+ {
2
+ "instances": {
3
+ "i4i.large": {
4
+ "name": "i4i.large",
5
+ "cpu": 2,
6
+ "cpu_cores": 1,
7
+ "cpu_ghz": 3.5,
8
+ "cpu_ipc_scale": 1.15,
9
+ "ram_gib": 15.26,
10
+ "net_mbps": 781.0,
11
+ "drive": {
12
+ "name": "ephem",
13
+ "size_gib": 436,
14
+ "read_io_per_s": 50000,
15
+ "write_io_per_s": 27500,
16
+ "single_tenant": false,
17
+ "read_io_latency_ms": {
18
+ "low": 0.1,
19
+ "mid": 0.125,
20
+ "high": 0.17,
21
+ "confidence": 0.9,
22
+ "minimum_value": 0.05,
23
+ "maximum_value": 2.0
24
+ }
25
+ }
26
+ },
27
+ "i4i.xlarge": {
28
+ "name": "i4i.xlarge",
29
+ "cpu": 4,
30
+ "cpu_cores": 2,
31
+ "cpu_ghz": 3.5,
32
+ "cpu_ipc_scale": 1.15,
33
+ "ram_gib": 30.52,
34
+ "net_mbps": 1875.0,
35
+ "drive": {
36
+ "name": "ephem",
37
+ "size_gib": 873,
38
+ "read_io_per_s": 100000,
39
+ "write_io_per_s": 55000,
40
+ "single_tenant": false,
41
+ "read_io_latency_ms": {
42
+ "low": 0.1,
43
+ "mid": 0.125,
44
+ "high": 0.17,
45
+ "confidence": 0.9,
46
+ "minimum_value": 0.05,
47
+ "maximum_value": 2.0
48
+ }
49
+ }
50
+ },
51
+ "i4i.2xlarge": {
52
+ "name": "i4i.2xlarge",
53
+ "cpu": 8,
54
+ "cpu_cores": 4,
55
+ "cpu_ghz": 3.5,
56
+ "cpu_ipc_scale": 1.15,
57
+ "ram_gib": 61.04,
58
+ "net_mbps": 4687.0,
59
+ "drive": {
60
+ "name": "ephem",
61
+ "size_gib": 1746,
62
+ "read_io_per_s": 200000,
63
+ "write_io_per_s": 110000,
64
+ "single_tenant": false,
65
+ "read_io_latency_ms": {
66
+ "low": 0.1,
67
+ "mid": 0.125,
68
+ "high": 0.17,
69
+ "confidence": 0.9,
70
+ "minimum_value": 0.05,
71
+ "maximum_value": 2.0
72
+ }
73
+ }
74
+ },
75
+ "i4i.4xlarge": {
76
+ "name": "i4i.4xlarge",
77
+ "cpu": 16,
78
+ "cpu_cores": 8,
79
+ "cpu_ghz": 3.5,
80
+ "cpu_ipc_scale": 1.15,
81
+ "ram_gib": 122.07,
82
+ "net_mbps": 9375.0,
83
+ "drive": {
84
+ "name": "ephem",
85
+ "size_gib": 3492,
86
+ "read_io_per_s": 400000,
87
+ "write_io_per_s": 220000,
88
+ "single_tenant": true,
89
+ "read_io_latency_ms": {
90
+ "low": 0.1,
91
+ "mid": 0.125,
92
+ "high": 0.17,
93
+ "confidence": 0.9,
94
+ "minimum_value": 0.05,
95
+ "maximum_value": 2.0
96
+ }
97
+ }
98
+ },
99
+ "i4i.8xlarge": {
100
+ "name": "i4i.8xlarge",
101
+ "cpu": 32,
102
+ "cpu_cores": 16,
103
+ "cpu_ghz": 3.5,
104
+ "cpu_ipc_scale": 1.15,
105
+ "ram_gib": 244.14,
106
+ "net_mbps": 18750.0,
107
+ "drive": {
108
+ "name": "ephem",
109
+ "size_gib": 6985,
110
+ "read_io_per_s": 800000,
111
+ "write_io_per_s": 440000,
112
+ "single_tenant": true,
113
+ "read_io_latency_ms": {
114
+ "low": 0.1,
115
+ "mid": 0.125,
116
+ "high": 0.17,
117
+ "confidence": 0.9,
118
+ "minimum_value": 0.05,
119
+ "maximum_value": 2.0
120
+ }
121
+ }
122
+ },
123
+ "i4i.12xlarge": {
124
+ "name": "i4i.12xlarge",
125
+ "cpu": 48,
126
+ "cpu_cores": 24,
127
+ "cpu_ghz": 3.5,
128
+ "cpu_ipc_scale": 1.15,
129
+ "ram_gib": 366.21,
130
+ "net_mbps": 28125.0,
131
+ "drive": {
132
+ "name": "ephem",
133
+ "size_gib": 10477,
134
+ "read_io_per_s": 1200000,
135
+ "write_io_per_s": 660000,
136
+ "single_tenant": true,
137
+ "read_io_latency_ms": {
138
+ "low": 0.1,
139
+ "mid": 0.125,
140
+ "high": 0.17,
141
+ "confidence": 0.9,
142
+ "minimum_value": 0.05,
143
+ "maximum_value": 2.0
144
+ }
145
+ }
146
+ },
147
+ "i4i.16xlarge": {
148
+ "name": "i4i.16xlarge",
149
+ "cpu": 64,
150
+ "cpu_cores": 32,
151
+ "cpu_ghz": 3.5,
152
+ "cpu_ipc_scale": 1.15,
153
+ "ram_gib": 488.28,
154
+ "net_mbps": 37500.0,
155
+ "drive": {
156
+ "name": "ephem",
157
+ "size_gib": 13970,
158
+ "read_io_per_s": 1600000,
159
+ "write_io_per_s": 880000,
160
+ "single_tenant": true,
161
+ "read_io_latency_ms": {
162
+ "low": 0.1,
163
+ "mid": 0.125,
164
+ "high": 0.17,
165
+ "confidence": 0.9,
166
+ "minimum_value": 0.05,
167
+ "maximum_value": 2.0
168
+ }
169
+ }
170
+ },
171
+ "i4i.24xlarge": {
172
+ "name": "i4i.24xlarge",
173
+ "cpu": 96,
174
+ "cpu_cores": 48,
175
+ "cpu_ghz": 3.5,
176
+ "cpu_ipc_scale": 1.15,
177
+ "ram_gib": 732.42,
178
+ "net_mbps": 56250.0,
179
+ "drive": {
180
+ "name": "ephem",
181
+ "size_gib": 20955,
182
+ "read_io_per_s": 2400000,
183
+ "write_io_per_s": 1320000,
184
+ "single_tenant": true,
185
+ "read_io_latency_ms": {
186
+ "low": 0.1,
187
+ "mid": 0.125,
188
+ "high": 0.17,
189
+ "confidence": 0.9,
190
+ "minimum_value": 0.05,
191
+ "maximum_value": 2.0
192
+ }
193
+ }
194
+ },
195
+ "i4i.32xlarge": {
196
+ "name": "i4i.32xlarge",
197
+ "cpu": 128,
198
+ "cpu_cores": 64,
199
+ "cpu_ghz": 3.5,
200
+ "cpu_ipc_scale": 1.15,
201
+ "ram_gib": 976.56,
202
+ "net_mbps": 75000.0,
203
+ "drive": {
204
+ "name": "ephem",
205
+ "size_gib": 27940,
206
+ "read_io_per_s": 3200000,
207
+ "write_io_per_s": 1760000,
208
+ "single_tenant": true,
209
+ "read_io_latency_ms": {
210
+ "low": 0.1,
211
+ "mid": 0.125,
212
+ "high": 0.17,
213
+ "confidence": 0.9,
214
+ "minimum_value": 0.05,
215
+ "maximum_value": 2.0
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
@@ -55,190 +55,6 @@
55
55
  "block_size_kib": 4, "single_tenant": true
56
56
  }
57
57
  },
58
- "i4i.large": {
59
- "name": "i4i.large",
60
- "cpu": 2,
61
- "cpu_ghz": 3.5,
62
- "cpu_ipc_scale": 1.15,
63
- "ram_gib": 15.48,
64
- "net_mbps": 781,
65
- "drive": {
66
- "name": "ephem", "size_gib": 436,
67
- "read_io_latency_ms": {
68
- "minimum_value":0.05,
69
- "low":0.10, "mid":0.125, "high":0.17,
70
- "maximum_value":2.05, "confidence":0.9
71
- },
72
- "read_io_per_s": 50000, "write_io_per_s": 27500,
73
- "block_size_kib": 4, "single_tenant": false
74
- }
75
- },
76
- "i4i.xlarge": {
77
- "name": "i4i.xlarge",
78
- "cpu": 4,
79
- "cpu_ghz": 3.5,
80
- "cpu_ipc_scale": 1.15,
81
- "ram_gib": 30.955,
82
- "net_mbps": 1875,
83
- "drive": {
84
- "name": "ephem", "size_gib": 873,
85
- "read_io_latency_ms": {
86
- "minimum_value": 0.05,
87
- "low": 0.10, "mid": 0.125, "high": 0.17,
88
- "maximum_value": 2.05, "confidence": 0.9
89
- },
90
- "read_io_per_s": 100000, "write_io_per_s": 55000,
91
- "block_size_kib": 4, "single_tenant": false
92
- }
93
- },
94
- "i4i.2xlarge": {
95
- "name": "i4i.2xlarge",
96
- "cpu": 8,
97
- "cpu_ghz": 3.5,
98
- "cpu_ipc_scale": 1.15,
99
- "ram_gib": 61.91,
100
- "net_mbps": 4687.5 ,
101
- "drive": {
102
- "name": "ephem", "size_gib": 1746,
103
- "read_io_latency_ms": {
104
- "minimum_value": 0.05,
105
- "low": 0.10, "mid": 0.125, "high": 0.17,
106
- "maximum_value": 2.05, "confidence": 0.9
107
- },
108
- "read_io_per_s": 200000, "write_io_per_s": 110000,
109
- "block_size_kib": 4, "single_tenant": true
110
- }
111
- },
112
- "i4i.4xlarge": {
113
- "name": "i4i.4xlarge",
114
- "cpu": 16,
115
- "cpu_ghz": 3.5,
116
- "cpu_ipc_scale": 1.15,
117
- "ram_gib": 123.82,
118
- "net_mbps": 9375,
119
- "drive": {
120
- "name": "ephem", "size_gib": 3492,
121
- "read_io_latency_ms": {
122
- "minimum_value":0.05,
123
- "low":0.10, "mid":0.125, "high":0.17,
124
- "maximum_value":2.05, "confidence":0.9
125
- },
126
- "read_io_per_s": 400000, "write_io_per_s": 220000,
127
- "block_size_kib": 4, "single_tenant": true
128
- }
129
- },
130
- "i4i.8xlarge": {
131
- "name": "i4i.8xlarge",
132
- "cpu": 32,
133
- "cpu_ghz": 3.5,
134
- "cpu_ipc_scale": 1.15,
135
- "ram_gib": 247.76,
136
- "net_mbps": 18750,
137
- "drive": {
138
- "name": "ephem", "size_gib": 6984,
139
- "read_io_latency_ms": {
140
- "minimum_value":0.05,
141
- "low":0.10, "mid":0.125, "high":0.17,
142
- "maximum_value":2.05, "confidence":0.9
143
- },
144
- "read_io_per_s": 800000, "write_io_per_s": 440000,
145
- "block_size_kib": 4, "single_tenant": true
146
- }
147
- },
148
- "i4i.16xlarge": {
149
- "name": "i4i.16xlarge",
150
- "cpu": 64,
151
- "cpu_ghz": 3.5,
152
- "cpu_ipc_scale": 1.15,
153
- "ram_gib": 495.82,
154
- "net_mbps": 35000,
155
- "drive": {
156
- "name": "ephem", "size_gib": 13968,
157
- "read_io_latency_ms": {
158
- "minimum_value":0.05,
159
- "low":0.10, "mid":0.125, "high":0.17,
160
- "maximum_value":2.05, "confidence":0.9
161
- },
162
- "read_io_per_s": 16000000, "write_io_per_s": 880000,
163
- "block_size_kib": 4, "single_tenant": true
164
- }
165
- },
166
-
167
- "i3en.large": {
168
- "name": "i3en.large",
169
- "cpu": 2,
170
- "cpu_ghz": 3.1,
171
- "ram_gib": 15.8,
172
- "net_mbps": 4000,
173
- "drive": {
174
- "name": "ephem", "size_gib": 1150,
175
- "read_io_latency_ms": {
176
- "minimum_value":0.07,
177
- "low":0.08, "mid":0.12, "high":0.20,
178
- "maximum_value":2, "confidence":0.9
179
- },
180
- "read_io_per_s": 42500, "write_io_per_s": 32500,
181
- "block_size_kib": 4, "single_tenant": false
182
- }
183
- },
184
- "i3en.xlarge": {
185
- "name": "i3en.xlarge",
186
- "cpu": 4,
187
- "cpu_ghz": 3.1,
188
- "ram_gib": 31.7,
189
- "net_mbps": 4000,
190
- "drive": {
191
- "name": "ephem", "size_gib": 2300,
192
- "read_io_latency_ms": {
193
- "minimum_value":0.07,
194
- "low":0.08, "mid":0.12, "high":0.20,
195
- "maximum_value":2, "confidence":0.9
196
- },
197
- "read_io_per_s": 85000, "write_io_per_s": 65000,
198
- "block_size_kib": 4, "single_tenant": false
199
- }
200
- },
201
- "i3en.2xlarge": {
202
- "name": "i3en.2xlarge",
203
- "cpu": 8,
204
- "cpu_ghz": 3.1,
205
- "ram_gib": 63.62,
206
- "net_mbps": 8000,
207
- "drive": {
208
- "name": "ephem", "size_gib": 4600,
209
- "read_io_latency_ms": {
210
- "minimum_value": 0.07,
211
- "low":0.08, "mid":0.12, "high": 0.20,
212
- "maximum_value":2, "confidence":0.9
213
- },
214
- "read_io_per_s": 170000, "write_io_per_s": 130000,
215
- "block_size_kib": 4, "single_tenant": false
216
- }
217
- },
218
- "i3en.3xlarge": {
219
- "name": "i3en.3xlarge",
220
- "cpu": 12,
221
- "cpu_ghz": 3.1,
222
- "ram_gib": 95.54,
223
- "net_mbps": 12000,
224
- "drive": {"name": "ephem", "size_gib": 6819,
225
- "read_io_latency_ms": {"minimum_value":0.07, "low":0.08, "mid":0.12, "high":0.16, "maximum_value":2, "confidence":0.9},
226
- "read_io_per_s": 250000, "write_io_per_s": 200000,
227
- "block_size_kib": 4, "single_tenant": true
228
- }
229
- },
230
- "i3en.6xlarge": {
231
- "name": "i3en.6xlarge",
232
- "cpu": 24,
233
- "cpu_ghz": 3.1,
234
- "ram_gib": 186.62,
235
- "net_mbps": 24000,
236
- "drive": {"name": "ephem", "size_gib": 14000,
237
- "read_io_latency_ms": {"minimum_value":0.07, "low":0.08, "mid":0.12, "high":0.16, "maximum_value":2, "confidence":0.9},
238
- "read_io_per_s": 500000, "write_io_per_s": 400000,
239
- "block_size_kib": 4, "single_tenant": true
240
- }
241
- },
242
58
  "m5d.large": {
243
59
  "name": "m5d.large",
244
60
  "cpu": 2,
@@ -82,6 +82,11 @@ def _estimate_elasticsearch_requirement( # noqa: E501 pylint: disable=too-many-
82
82
  The input desires should be the **regional** desire, and this function will
83
83
  return the zonal capacity requirement
84
84
  """
85
+ # NOTE: ElasticSearch is only using buffers for disk but CPU and disk
86
+ # have hard coded values. In a follow-up change these values (1.5 and 2)
87
+ # should be converted to buffers as well to be idiomatic with the other
88
+ # stateful models (e.g. cassandra / EVCache, kafka)
89
+
85
90
  # Keep half of the cores free for background work (merging mostly)
86
91
  needed_cores = normalize_cores(
87
92
  core_count=math.ceil(sqrt_staffed_cores(desires) * 1.5),
@@ -191,9 +196,9 @@ class NflxElasticsearchDataCapacityModel(CapacityModel):
191
196
  def default_desires(
192
197
  user_desires, extra_model_arguments: Dict[str, Any]
193
198
  ) -> CapacityDesires:
194
- return CapacityDesires(
195
- buffers=NflxElasticsearchDataCapacityModel.default_buffers()
196
- )
199
+ desires = CapacityModel.default_desires(user_desires, extra_model_arguments)
200
+ desires.buffers = NflxElasticsearchDataCapacityModel.default_buffers()
201
+ return desires
197
202
 
198
203
  @staticmethod
199
204
  def capacity_plan(
@@ -95,12 +95,6 @@ INSTANCE_TYPES = {
95
95
  # 'cpu_ipc_scale': None
96
96
  # },
97
97
  # "i3": {'xl_iops': None, 'io_latency_curve': 'ssd', 'cpu_ipc_scale': None},
98
- # "i3en": {'xl_iops': None, 'io_latency_curve': 'ssd', 'cpu_ipc_scale': None},
99
- # "i4i": {
100
- # 'xl_iops': None,
101
- # 'io_latency_curve': '5th-gen-ssd',
102
- # 'cpu_ipc_scale': None
103
- # },
104
98
  "i7i": {
105
99
  "xl_iops": "150,000/82,500",
106
100
  "io_latency_curve": "7th-gen-ephemeral",
@@ -108,6 +102,20 @@ INSTANCE_TYPES = {
108
102
  "cpu_turbo_single_ghz": 4.0,
109
103
  "cpu_turbo_all_ghz": 3.2,
110
104
  },
105
+ "i3en": {
106
+ "xl_iops": None,
107
+ "io_latency_curve": "ssd",
108
+ "cpu_ipc_scale": SKYLAKE_IPC,
109
+ "cpu_turbo_single_ghz": 3.1,
110
+ "cpu_turbo_all_ghz": 3.1,
111
+ },
112
+ "i4i": {
113
+ "xl_iops": None,
114
+ "io_latency_curve": "ssd",
115
+ "cpu_ipc_scale": ICELAKE_IPC,
116
+ "cpu_turbo_single_ghz": 3.5,
117
+ "cpu_turbo_all_ghz": 3.5,
118
+ },
111
119
  "m4": {
112
120
  "xl_iops": None,
113
121
  "io_latency_curve": None,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: service-capacity-modeling
3
- Version: 0.3.72
3
+ Version: 0.3.74
4
4
  Summary: Contains utilities for modeling capacity for pluggable workloads
5
5
  Author: Joseph Lynch
6
6
  Author-email: josephl@netflix.com
@@ -26,6 +26,8 @@ service_capacity_modeling/hardware/profiles/shapes/aws/auto_c6id.json
26
26
  service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7a.json
27
27
  service_capacity_modeling/hardware/profiles/shapes/aws/auto_c7i.json
28
28
  service_capacity_modeling/hardware/profiles/shapes/aws/auto_c8i.json
29
+ service_capacity_modeling/hardware/profiles/shapes/aws/auto_i3en.json
30
+ service_capacity_modeling/hardware/profiles/shapes/aws/auto_i4i.json
29
31
  service_capacity_modeling/hardware/profiles/shapes/aws/auto_i7i.json
30
32
  service_capacity_modeling/hardware/profiles/shapes/aws/auto_m4.json
31
33
  service_capacity_modeling/hardware/profiles/shapes/aws/auto_m5.json