From 778ffb45a927d47c93850e387d7bfcc5cc480c74 Mon Sep 17 00:00:00 2001 From: steve-chavez Date: Thu, 21 Aug 2025 20:25:22 -0500 Subject: [PATCH] test: loadtest with varying reqs and batch_size --- .github/workflows/main.yml | 6 +++++- nix/loadtest.nix | 13 ++++++++++++- nix/xpg.nix | 4 ++-- test/utils/loadtest.sql | 2 +- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 00736df..3f70a0e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -55,6 +55,9 @@ jobs: loadtest: runs-on: ubuntu-latest + strategy: + matrix: + params: [ {reqs: 10000, batch: 200}, {reqs: 20000, batch: 400}, {reqs: 40000, batch: 800} ] steps: - uses: actions/checkout@v4 @@ -72,7 +75,8 @@ jobs: - name: Run load test run: | - nix-shell --run "net-loadtest" + echo "${{ matrix.params.reqs }} requests with a batch size of ${{ matrix.params.batch }}" >> "$GITHUB_STEP_SUMMARY" + nix-shell --run "net-loadtest ${{ matrix.params.reqs }} ${{ matrix.params.batch }}" cat psrecord.md >> "$GITHUB_STEP_SUMMARY" coverage: diff --git a/nix/loadtest.nix b/nix/loadtest.nix index ce97a3f..424d3bb 100644 --- a/nix/loadtest.nix +++ b/nix/loadtest.nix @@ -40,7 +40,18 @@ in writeShellScriptBin "net-loadtest" '' set -euo pipefail - net-with-nginx xpg psql -c "call wait_for_many_gets()" > /dev/null & + reqs="" + batch_size="200" + + if [ -n "''${1:-}" ]; then + reqs="$1" + fi + + if [ -n "''${2:-}" ]; then + batch_size="$2" + fi + + net-with-nginx xpg --options "-c log_min_messages=WARNING -c pg_net.batch_size=$batch_size" psql -c "call wait_for_many_gets($reqs)" > /dev/null & # wait for process to start so we can capture it with psrecord sleep 2 diff --git a/nix/xpg.nix b/nix/xpg.nix index 853c3b0..acfa7ea 100644 --- a/nix/xpg.nix +++ b/nix/xpg.nix @@ -3,8 +3,8 @@ let dep = fetchFromGitHub { owner = "steve-chavez"; repo = "xpg"; - rev = "v1.4.1"; - sha256 = "sha256-OI9g78KbguLh+ynOnRmnMM4lVOgNRAWkiI/YMmcMs+k="; + rev = "v1.6.0"; + sha256 = "sha256-NsdAmsYIRH/DWIZp93AHGYdPiJOztUIUSYcPikeebvw="; }; xpg = import dep; in diff --git a/test/utils/loadtest.sql b/test/utils/loadtest.sql index d473171..9c8f3cf 100644 --- a/test/utils/loadtest.sql +++ b/test/utils/loadtest.sql @@ -24,7 +24,7 @@ begin commit; - raise notice 'Waiting until % requests complete', number_of_requests; + raise notice 'Waiting until % requests complete, using a pg_net.batch_size of %', number_of_requests, current_setting('pg_net.batch_size')::text; perform net._await_response(last_id);