Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

search: cap groupsize workers by NumCPU / GOMAXPROCS #602

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

adamdecaf
Copy link
Member

@adamdecaf adamdecaf commented Feb 20, 2025

With GOMAXPROCS=2

Image: moov/watchman:dev-b49f05f

This should result in more stable (less of a long tail) in search performance.

Local Benchmarks
                               │  before.txt  │              after.txt               │
                               │    sec/op    │    sec/op     vs base                │
API_Search/normal-2              21.44m ± ∞ ¹   21.18m ± ∞ ¹       ~ (p=1.000 n=1) ²
API_Search/debug-2               130.3m ± ∞ ¹   136.9m ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/1-2     44.78m ± ∞ ¹   57.62m ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/3-2     28.13m ± ∞ ¹   33.17m ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/5-2     24.95m ± ∞ ¹   27.29m ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/10-2    24.33m ± ∞ ¹   24.17m ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/20-2    24.84m ± ∞ ¹   25.93m ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/25-2    23.99m ± ∞ ¹   24.24m ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/50-2    23.61m ± ∞ ¹   25.08m ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/100-2   25.29m ± ∞ ¹   27.26m ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/150-2   28.12m ± ∞ ¹   27.79m ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/200-2   27.21m ± ∞ ¹   25.73m ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/250-2   23.86m ± ∞ ¹   33.74m ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/dynamic_group_size-2     24.26m ± ∞ ¹   24.42m ± ∞ ¹       ~ (p=1.000 n=1) ²
_SearchParallel/individual-2     61.18m ± ∞ ¹   59.21m ± ∞ ¹       ~ (p=1.000 n=1) ²
_SearchParallel/business-2       39.36m ± ∞ ¹   37.76m ± ∞ ¹       ~ (p=1.000 n=1) ²
_SearchParallel/vessel-2         15.95m ± ∞ ¹   15.61m ± ∞ ¹       ~ (p=1.000 n=1) ²
_SearchParallel/aircraft-2       15.33m ± ∞ ¹   15.62m ± ∞ ¹       ~ (p=1.000 n=1) ²
geomean                          28.90m         30.44m        +5.32%

                               │  before.txt   │               after.txt               │
                               │     B/op      │     B/op       vs base                │
API_Search/normal-2              2.795Mi ± ∞ ¹   2.797Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
API_Search/debug-2               46.13Mi ± ∞ ¹   46.14Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/1-2     4.209Mi ± ∞ ¹   4.209Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/3-2     4.209Mi ± ∞ ¹   4.209Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/5-2     4.209Mi ± ∞ ¹   4.209Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/10-2    4.210Mi ± ∞ ¹   4.210Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/20-2    4.211Mi ± ∞ ¹   4.211Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/25-2    4.211Mi ± ∞ ¹   4.211Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/50-2    4.214Mi ± ∞ ¹   4.213Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/100-2   4.218Mi ± ∞ ¹   4.218Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/150-2   4.223Mi ± ∞ ¹   4.223Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/200-2   4.228Mi ± ∞ ¹   4.227Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/250-2   4.232Mi ± ∞ ¹   4.232Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/dynamic_group_size-2     4.211Mi ± ∞ ¹   4.212Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_SearchParallel/individual-2     12.12Mi ± ∞ ¹   12.12Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_SearchParallel/business-2       9.003Mi ± ∞ ¹   9.004Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_SearchParallel/vessel-2         2.169Mi ± ∞ ¹   2.170Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
_SearchParallel/aircraft-2       2.102Mi ± ∞ ¹   2.103Mi ± ∞ ¹       ~ (p=1.000 n=1) ²
geomean                          4.826Mi         4.827Mi        +0.01%

                               │  before.txt  │              after.txt               │
                               │  allocs/op   │  allocs/op    vs base                │
API_Search/normal-2              189.1k ± ∞ ¹   189.2k ± ∞ ¹       ~ (p=1.000 n=1) ²
API_Search/debug-2               411.0k ± ∞ ¹   411.0k ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/1-2     280.0k ± ∞ ¹   280.0k ± ∞ ¹       ~ (p=1.000 n=1) ³
_Search/fixed_group_size/3-2     280.0k ± ∞ ¹   280.0k ± ∞ ¹       ~ (p=1.000 n=1) ³
_Search/fixed_group_size/5-2     280.0k ± ∞ ¹   280.0k ± ∞ ¹       ~ (p=1.000 n=1) ³
_Search/fixed_group_size/10-2    280.1k ± ∞ ¹   280.1k ± ∞ ¹       ~ (p=1.000 n=1) ³
_Search/fixed_group_size/20-2    280.1k ± ∞ ¹   280.1k ± ∞ ¹       ~ (p=1.000 n=1) ³
_Search/fixed_group_size/25-2    280.1k ± ∞ ¹   280.1k ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/50-2    280.1k ± ∞ ¹   280.1k ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/100-2   280.2k ± ∞ ¹   280.2k ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/fixed_group_size/150-2   280.3k ± ∞ ¹   280.3k ± ∞ ¹       ~ (p=1.000 n=1) ³
_Search/fixed_group_size/200-2   280.4k ± ∞ ¹   280.4k ± ∞ ¹       ~ (p=1.000 n=1) ³
_Search/fixed_group_size/250-2   280.5k ± ∞ ¹   280.5k ± ∞ ¹       ~ (p=1.000 n=1) ²
_Search/dynamic_group_size-2     280.1k ± ∞ ¹   280.1k ± ∞ ¹       ~ (p=1.000 n=1) ²
_SearchParallel/individual-2     811.9k ± ∞ ¹   812.0k ± ∞ ¹       ~ (p=1.000 n=1) ²
_SearchParallel/business-2       456.9k ± ∞ ¹   456.9k ± ∞ ¹       ~ (p=1.000 n=1) ²
_SearchParallel/vessel-2         183.1k ± ∞ ¹   183.1k ± ∞ ¹       ~ (p=1.000 n=1) ²
_SearchParallel/aircraft-2       183.1k ± ∞ ¹   183.1k ± ∞ ¹       ~ (p=1.000 n=1) ²
geomean                          291.2k         291.2k        +0.00%

This should result in more stable (less of a long tail) in search performance.
@adamdecaf adamdecaf force-pushed the cap-workers-by-NumCPU branch from b49f05f to b583d43 Compare February 21, 2025 21:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant