Worker resource results
Suite worker-resources, generation 110. Source: Worker resources run 38149855138 attempt 1 at 99ab72b5d4f2aee4d7e86327d2388c788f08027a.
Profiles
| Profile | Memory limit MiB | CPU limit millis | Ephemeral MiB | Memory request MiB | CPU request millis | Runs |
| browser | 4864 | 4250 | 3072 | 3840 | 2250 | 9 |
| compiler | 1792 | 4750 | 3072 | 1280 | 2000 | 9 |
| general | 1792 | 5000 | 3072 | 1536 | 2250 | 9 |
| memory | 2816 | 500 | 3072 | 2304 | 250 | 9 |
Measured distributions
| Profile | Metric | n | min | p50 | p95 | max |
| browser | peak_rss_mib | 9 | 691.44 | 1358.5 | 2663.61 | 2663.61 |
| browser | peak_pss_mib | 9 | 414.43 | 669.17 | 1160.89 | 1160.89 |
| browser | peak_parent_rss_mib | 9 | 28.99 | 29.1 | 29.2 | 29.2 |
| browser | peak_children_rss_mib | 9 | 662.35 | 1329.51 | 2634.51 | 2634.51 |
| browser | peak_cores | 9 | 0.997 | 2.033 | 3.288 | 3.288 |
| browser | peak_parent_cores | 9 | 0.061 | 0.082 | 0.098 | 0.098 |
| browser | peak_children_cores | 9 | 0.917 | 1.949 | 3.199 | 3.199 |
| browser | cpu_seconds | 9 | 1.13 | 2.84 | 6.45 | 6.45 |
| browser | parent_cpu_seconds | 9 | 0.09 | 0.1 | 0.12 | 0.12 |
| browser | children_cpu_seconds | 9 | 1.03 | 2.74 | 6.35 | 6.35 |
| browser | peak_storage_mib | 9 | 0.38 | 0.45 | 0.6 | 0.6 |
| browser | peak_processes | 9 | 9 | 17 | 33 | 33 |
| browser | peak_children_processes | 9 | 8 | 16 | 32 | 32 |
| compiler | peak_rss_mib | 9 | 72.75 | 129.52 | 236.2 | 236.2 |
| compiler | peak_pss_mib | 9 | 64.31 | 100.29 | 165.99 | 165.99 |
| compiler | peak_parent_rss_mib | 9 | 14.73 | 14.83 | 15.2 | 15.2 |
| compiler | peak_children_rss_mib | 9 | 57.91 | 114.79 | 221.35 | 221.35 |
| compiler | peak_cores | 9 | 0.989 | 1.904 | 3.662 | 3.662 |
| compiler | peak_parent_cores | 9 | 0.029 | 0.036 | 0.039 | 0.039 |
| compiler | peak_children_cores | 9 | 0.985 | 1.897 | 3.646 | 3.646 |
| compiler | cpu_seconds | 9 | 14.172 | 15.09 | 24.394 | 24.394 |
| compiler | parent_cpu_seconds | 9 | 0.04 | 0.05 | 0.06 | 0.06 |
| compiler | children_cpu_seconds | 9 | 14.122 | 15.03 | 24.344 | 24.344 |
| compiler | peak_storage_mib | 9 | 2 | 2 | 2 | 2 |
| compiler | peak_processes | 9 | 3 | 5 | 9 | 9 |
| compiler | peak_children_processes | 9 | 2 | 4 | 8 | 8 |
| general | peak_rss_mib | 9 | 107.45 | 157.49 | 258.68 | 258.68 |
| general | peak_pss_mib | 9 | 81.07 | 117.69 | 191.53 | 191.53 |
| general | peak_parent_rss_mib | 9 | 13.32 | 13.37 | 13.44 | 13.44 |
| general | peak_children_rss_mib | 9 | 94.08 | 144.05 | 245.34 | 245.34 |
| general | peak_cores | 9 | 1.011 | 2.035 | 3.803 | 3.803 |
| general | peak_parent_cores | 9 | 0.009 | 0.018 | 0.029 | 0.029 |
| general | peak_children_cores | 9 | 1.011 | 2.035 | 3.803 | 3.803 |
| general | cpu_seconds | 9 | 10.542 | 13.954 | 26.031 | 26.031 |
| general | parent_cpu_seconds | 9 | 0.02 | 0.03 | 0.04 | 0.04 |
| general | children_cpu_seconds | 9 | 10.512 | 13.924 | 26.011 | 26.011 |
| general | peak_storage_mib | 9 | 110.4 | 110.41 | 110.41 | 110.41 |
| general | peak_processes | 9 | 3 | 4 | 6 | 6 |
| general | peak_children_processes | 9 | 2 | 3 | 5 | 5 |
| memory | peak_rss_mib | 9 | 282.84 | 552.21 | 1091.25 | 1091.25 |
| memory | peak_pss_mib | 9 | 271.9 | 534.78 | 1060.14 | 1060.14 |
| memory | peak_parent_rss_mib | 9 | 13.28 | 13.39 | 14.34 | 14.34 |
| memory | peak_children_rss_mib | 9 | 269.44 | 538.84 | 1077.96 | 1077.96 |
| memory | peak_cores | 9 | 0.058 | 0.116 | 0.333 | 0.333 |
| memory | peak_parent_cores | 9 | 0.01 | 0.019 | 0.019 | 0.019 |
| memory | peak_children_cores | 9 | 0.039 | 0.097 | 0.324 | 0.324 |
| memory | cpu_seconds | 9 | 0.1 | 0.177 | 0.442 | 0.442 |
| memory | parent_cpu_seconds | 9 | 0.02 | 0.02 | 0.02 | 0.02 |
| memory | children_cpu_seconds | 9 | 0.08 | 0.157 | 0.422 | 0.422 |
| memory | peak_storage_mib | 9 | 0 | 0 | 0 | 0 |
| memory | peak_processes | 9 | 2 | 3 | 5 | 5 |
| memory | peak_children_processes | 9 | 1 | 2 | 4 | 4 |
Refused
- idle: an idle sample cannot size a worker
Coexistence
| Node | Free memory MiB | Free CPU millis | Workers that fit | All profiles at once |
| anton-ec2-0396dfd54e94477e5 | 15645 | 3984 | browser 1, compiler 1, general 1, memory 5 | no |
| anton-ec2-0447e2769b1a3084a | 5405 | 1484 | browser 0, compiler 0, general 0, memory 1 | no |
| anton-ec2-0af3a8fe7769581ef | 4893 | 1234 | browser 0, compiler 0, general 0, memory 1 | no |
| anton-ec2-0c9b3493a0ef846f4 | 5405 | 1484 | browser 0, compiler 0, general 0, memory 1 | no |
| k8s-master | 6208 | 3783 | browser 1, compiler 1, general 1, memory 2 | no |
| k8s-worker-1 | 6276 | 1362 | browser 0, compiler 0, general 0, memory 2 | no |
| k8s-worker-2 | 10252 | 1417 | browser 0, compiler 0, general 0, memory 3 | no |
| worker-001 | 3073 | 4412 | browser 0, compiler 1, general 1, memory 1 | no |
Measurement context
- host cpus: 4
- host kernel: 6.17.0-1022-azure
- host load_average_1m: 0.94
- host load_average_1m_after: 2.56
- host memory_available_mib: 14326
- host memory_total_mib: 15989
- tool cc: cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0
- tool kernel: 6.17.0-1022-azure
- tool playwright: Version 1.63.0
- tool pytest: pytest 9.1.1
- tool python: Python 3.12.15
- tool workload:browser: 2
- tool workload:compiler: 2
- tool workload:general: 1
- tool workload:idle: 1
- tool workload:memory: 1
- policy margin: 0.25
- policy min_repeats: 3
- policy agent_reserve_mib: 1024
- policy base_storage_mib: 2048
- policy memory_step_mib: 256
- policy cpu_step_millis: 250
- policy storage_step_mib: 1024
- policy tolerance: 0.15
Limits of this measurement
- Measured on a GitHub hosted runner, not inside a worker Pod: CPU peaks are bounded by the runner’s cores.
- The agent CLI’s own resident memory is a declared reserve, not a measurement; it needs a live agent run.
- The idle class is a sleeping Python process standing in for an idle agent CLI.
- With nine runs per class the p95 column equals the maximum.
- Descendants that leave the workload’s session and process tree are neither counted nor killed.
- A child that starts and exits between two samples never enters a peak window; CPU seconds still count it.
- A workload change is detected through its declared version, not a fingerprint of its command.
- The sampler walks the workload folder on every sample; that cost runs outside the measured tree.
- Coexistence counts whole workers in each node’s allocatable capacity minus the requests already scheduled there.