Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 65 additions & 8 deletions .github/workflows/bencher.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
push:
branches:
- main
- perf_experiments
workflow_dispatch:

permissions: read-all
Expand Down Expand Up @@ -52,11 +53,11 @@ jobs:
mkdir build
cd build
cmake -GNinja -DWORKER_THREADS=2 ..
ninja
ninja basic submit
# Microbenchmarks
./tests.sh -VV -L benchmark
# ./tests.sh -VV -L benchmark
# End to end performance tests
./tests.sh -VV -L perf -C perf
./tests.sh -VV -L perf -C perf -R pi_basic_mt
# Convert microbenchmark output to bencher json
source env/bin/activate
PYTHONPATH=../tests python convert_pico_to_bencher.py
Expand All @@ -70,7 +71,6 @@ jobs:
build/workspace/*/*.config.json
build/workspace/*/out
build/workspace/*/err
build/workspace/*/*.ledger/*
build/workspace/*/stack_trace
if-no-files-found: ignore
if: success() || failure()
Expand Down Expand Up @@ -112,11 +112,11 @@ jobs:
mkdir build
cd build
cmake -GNinja -DWORKER_THREADS=2 ..
ninja
ninja basic submit
# Microbenchmarks
./tests.sh -VV -L benchmark -E task_bench
# ./tests.sh -VV -L benchmark -E task_bench
# End to end performance tests
./tests.sh -VV -L perf -C perf
./tests.sh -VV -L perf -C perf -R pi_basic_mt
# Convert microbenchmark output to bencher json
source env/bin/activate
PYTHONPATH=../tests python convert_pico_to_bencher.py
Expand All @@ -131,8 +131,8 @@ jobs:
build/workspace/*/*.config.json
build/workspace/*/out
build/workspace/*/err
build/workspace/*/*.ledger/*
build/workspace/*/stack_trace
build/bencher.json
if-no-files-found: ignore
if: success() || failure()

Expand All @@ -147,3 +147,60 @@ jobs:
--adapter json \
--err \
--file build/bencher.json
if: github.ref == 'refs/heads/main'

benchmark_aci:
name: Benchmark ACI
runs-on:
[
self-hosted,
1ES.Pool=gha-aci-ci,
"JobId=bench_aci-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}",
]
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Build and run ACI perf tests
run: |
git config --global --add safe.directory /__w/CCF/CCF
mkdir build
cd build
cmake -GNinja -DWORKER_THREADS=2 ..
ninja basic submit
# Microbenchmarks
# ./tests.sh -VV -L benchmark -E task_bench
# End to end performance tests
./tests.sh -VV -L perf -C perf -R pi_basic_mt
# Convert microbenchmark output to bencher json
source env/bin/activate
PYTHONPATH=../tests python convert_pico_to_bencher.py
shell: bash

- name: "Upload logs"
uses: actions/upload-artifact@v7
with:
name: logs-bench-aci
path: |
dmesg.log
build/workspace/*/*.config.json
build/workspace/*/out
build/workspace/*/err
build/workspace/*/stack_trace
build/bencher.json
if-no-files-found: ignore
if: success() || failure()

- uses: bencherdev/bencher@main
- name: Track base branch benchmarks with Bencher
run: |
bencher run \
--project ccf \
--token '${{ secrets.BENCHER_API_TOKEN }}' \
--branch main \
--testbed gha-c-aci-ci \
--adapter json \
--err \
--file build/bencher.json
if: github.ref == 'refs/heads/main'
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1345,7 +1345,7 @@ if(BUILD_TESTS)
--package
"samples/apps/basic/basic"
--client-def
"${WORKER_THREADS},write,2000000,primary"
"${WORKER_THREADS},write,4000000,primary"
)
endif()

Expand Down
4 changes: 2 additions & 2 deletions tests/infra/basicperf.py
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ def replace_primary(network, host, old_primary, snapshots_dir, statistics):


def run(args):
hosts = args.nodes or infra.e2e_args.nodes(args, 1)
hosts = args.nodes or infra.e2e_args.nodes(args, 3)

if args.stop_primary_after_s:
assert (
Expand Down Expand Up @@ -822,7 +822,7 @@ def cli_args():
parser.add_argument(
"--client-timeout-s",
help="Number of seconds after which unresponsive clients are shut down",
default=300,
default=600,
type=float,
)
parser.add_argument(
Expand Down
Loading