Skip to content

varnish: remove thread pool overrides, use built-in defaults - #1350

Closed
gquintard wants to merge 5 commits into
MDA2AV:mainfrom
gquintard:varnish-thread-tuning
Closed

varnish: remove thread pool overrides, use built-in defaults#1350
gquintard wants to merge 5 commits into
MDA2AV:mainfrom
gquintard:varnish-thread-tuning

Conversation

@gquintard

Copy link
Copy Markdown
Contributor

Summary

  • thread_pool_max=10000/thread_pool_min=5000 (x2 pools = up to ~20k threads) is wildly oversized for the 64-logical-CPU cpuset the benchmark container runs on for CPU-bound synthetic responses. This strips the override to get a clean varnishd-defaults baseline before sweeping custom pool sizes.
  • Fixes a missing line-continuation after vsl_mask=none that made -s malloc,256m dead code, never reaching varnishd.

Test plan

  • Re-run baseline/pipelined/limited-conn benchmark profiles against this branch
  • Compare RPS and varnishstat thread/queue counters (MAIN.sess_queued, MAIN.threads_limited) against current main

thread_pool_max=10000/min=5000 (x2 pools = up to ~20k threads) is
wildly oversized for a 64-logical-CPU container running CPU-bound
synthetic responses. Strip it to get a clean varnishd-defaults
baseline before sweeping custom pool sizes.

Also fixes a missing line-continuation after vsl_mask=none that made
-s malloc,256m dead code, never reaching varnishd.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

👋 Heads up! This PR modifies the following frameworks:

@gquintard

Copy link
Copy Markdown
Contributor Author

/benchmark -f varnish --save

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: varnish | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 196,839 6497.5% 200MiB -4.6% -63.0%
baseline 4096 184,587 6341.9% 182MiB -9.8% -78.5%
pipelined 512 301,028 6532.3% 161MiB -4.3% -67.9%
pipelined 4096 293,014 6514.7% 297MiB +3.3% -77.7%
limited-conn 512 176,954 6421.4% 222MiB +0.7% -61.5%
limited-conn 4096 175,270 6507.5% 406MiB -7.5% -48.3%
baseline-h2 256 209,753 6377.8% 2.4GiB -1.9% -46.7%
baseline-h2 1024 204,798 6146.1% 2.5GiB -0.7% -47.9%
static-h2 256 152,265 6443.2% 1.9GiB +0.5% -13.6%
static-h2 1024 148,173 6377.2% 2.4GiB +5.4% -48.9%
Full log
Process Request Failure:1899
Process Request Failure:1140
Process Request Failure:1577
Process Request Failure:987
Process Request Failure:1845
Process Request Failure:1284
Process Request Failure:1929
Process Request Failure:1462
Process Request Failure:1465
Process Request Failure:1448
Process Request Failure:1309
Process Request Failure:1435
Process Request Failure:1429
Process Request Failure:1810
Process Request Failure:1209
Process Request Failure:1660
Process Request Failure:2064
Process Request Failure:1327
Process Request Failure:1491
Process Request Failure:1263
Process Request Failure:1433
Process Request Failure:1508
Process Request Failure:1498
Process Request Failure:1813
Process Request Failure:1846
Process Request Failure:1050
Process Request Failure:1547
Process Request Failure:1031
Process Request Failure:1534
Process Request Failure:1404
Process Request Failure:1851
Process Request Failure:1059
Process Request Failure:1293
Process Request Failure:1084
Process Request Failure:1722
Process Request Failure:1539
Process Request Failure:1317
Process Request Failure:1546
Process Request Failure:1275
Process Request Failure:852
Process Request Failure:1398
Process Request Failure:1550
Process Request Failure:855
Process Request Failure:886
Process Request Failure:1596
Process Request Failure:878
Process Request Failure:1842
Process Request Failure:2113
Process Request Failure:1133
Process Request Failure:1542
Process Request Failure:1367
Process Request Failure:1508
Process Request Failure:1401
Process Request Failure:1356
Process Request Failure:1892
Process Request Failure:1219
Process Request Failure:1129
Process Request Failure:933
Process Request Failure:1093
Process Request Failure:1169
Process Request Failure:1561
Process Request Failure:1956
Process Request Failure:1884
Process Request Failure:1423
Process Request Failure:1350
Process Request Failure:1711
Process Request Failure:1192
Process Request Failure:1206
Process Request Failure:1177
Process Request Failure:1861
Process Request Failure:1656
Process Request Failure:1184
Process Request Failure:952
Process Request Failure:1158
Process Request Failure:1378
Process Request Failure:1348
Process Request Failure:1353
Process Request Failure:1260
Process Request Failure:1427
Process Request Failure:1047
Process Request Failure:1760
Process Request Failure:1542
Process Request Failure:1999
Process Request Failure:1434
Process Request Failure:1702
Process Request Failure:2114
Process Request Failure:1086
Process Request Failure:1741
Process Request Failure:1660
Process Request Failure:1020
Process Request Failure:1765
Process Request Failure:1281
Process Request Failure:1887
Process Request Failure:1959
Process Request Failure:1497
Process Request Failure:1126
Process Request Failure:1574
Process Request Failure:783
Process Request Failure:1809
Process Request Failure:1754
Process Request Failure:1168
Process Request Failure:1528
Process Request Failure:1607
Process Request Failure:1626
Process Request Failure:819
Process Request Failure:1323
Process Request Failure:1476
Process Request Failure:1431
Process Request Failure:1712
Process Request Failure:1812
Process Request Failure:1930
Process Request Failure:1971
Process Request Failure:1661
Process Request Failure:1570
Process Request Failure:1672
Process Request Failure:1675
Process Request Failure:1028
Process Request Failure:1154
Process Request Failure:1360
Process Request Failure:1676
Process Request Failure:1073
Process Request Failure:1506
Process Request Failure:1680
Process Request Failure:1775
Process Request Failure:1877
Process Request Failure:1853
Process Request Failure:1110
Process Request Failure:1781
Process Request Failure:1484
Process Request Failure:2113
Process Request Failure:1275
Process Request Failure:1915
Process Request Failure:1113
Process Request Failure:1603
Process Request Failure:1894
Process Request Failure:1157
Process Request Failure:1159
Process Request Failure:1674
Process Request Failure:1578
Process Request Failure:1858
Process Request Failure:1402
Process Request Failure:1678
Process Request Failure:1712
Process Request Failure:2017
Process Request Failure:1158
Process Request Failure:1442
Process Request Failure:1401
Process Request Failure:1666
Process Request Failure:1397
Process Request Failure:1642
Process Request Failure:1196
Process Request Failure:1661


21. Stopping all clients.
9. Stopping all clients.
. Stopping all clients.
20


. Stopping all clients.
49. Stopping all clients.
5. Stopping all clients.
46. Stopping all clients.

finished in 5.05s, 143696.40 req/s, 8.55GB/s
requests: 807981 total, 838905 started, 807981 done, 718482 succeeded, 89499 failed, 89499 errored, 0 timeout
status codes: 733615 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 42.77GB (45925187992) total, 124.94MB (131006022) headers (space savings 21.18%), 42.62GB (45757902539) data
                     min         max         mean         sd        +/- sd
time for request:     1.51ms       1.07s     67.22ms     36.92ms    95.97%
time for connect:     3.07ms       1.03s    352.07ms    335.51ms    68.85%
time to 1st byte:    10.35ms       1.06s    428.22ms    336.46ms    52.36%
req/s           :       0.00      594.40      290.35      117.98    64.94%
[info] CPU 6484.5% | Mem 2.6GiB

=== Best: 148173 req/s (CPU: 6377.2%, Mem: 2.4GiB) ===
[info] saved results/static-h2/1024/varnish.json
httparena-bench-varnish
httparena-bench-varnish
[info] skip: varnish does not subscribe to baseline-h2c
[info] skip: varnish does not subscribe to json-h2c
[info] skip: varnish does not subscribe to baseline-h3
[info] skip: varnish does not subscribe to static-h3
[info] skip: varnish does not subscribe to gateway-64
[info] skip: varnish does not subscribe to gateway-h3
[info] skip: varnish does not subscribe to production-stack
[info] skip: varnish does not subscribe to unary-grpc
[info] skip: varnish does not subscribe to unary-grpc-tls
[info] skip: varnish does not subscribe to echo-ws
[info] skip: varnish does not subscribe to echo-ws-pipeline
[info] skip: varnish does not subscribe to echo-ws-limited
[info] skip: varnish does not subscribe to latency-1m
[info] skip: varnish does not subscribe to async
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/varnish.json - 10 new, 10 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
[info] restoring loopback MTU to 65536

@gquintard
gquintard marked this pull request as draft August 28, 2026 05:10
Explicit config replacing bare defaults: more pools to reduce
cross-CCX lock/cache-line contention on the Threadripper's multi-CCX
layout, sized well below the original 5000/10000 min/max but above
varnishd's built-in defaults.

Also fixes a missing line-continuation after vsl_mask=none that made
-s malloc,256m dead code, never reaching varnishd.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@gquintard

Copy link
Copy Markdown
Contributor Author

/benchmark -f varnish --save

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ /benchmark --save cannot start: main has diverged and cannot be auto-merged into this branch. Please merge or rebase main manually, push, and re-run /benchmark --save.

@MDA2AV

MDA2AV commented Aug 31, 2026

Copy link
Copy Markdown
Owner

/benchmark -f varnish --save

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: varnish | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 4096 182,392 6393.3% 792MiB -10.9% -6.3%
pipelined 4096 282,924 6534.3% 1.1GiB -0.3% -15.4%
limited-conn 4096 158,846 6254.2% 1.4GiB -16.2% +82.6%
baseline-h2 256 214,862 6340.3% 3.4GiB +0.5% -24.4%
baseline-h2 1024 204,833 6418.6% 3.6GiB -0.7% -25.0%
static-h2 256 155,275 6538.3% 2.4GiB +2.5% +9.1%
static-h2 1024 147,407 6595.6% 3.8GiB +4.8% -19.1%
Full log
Process Request Failure:1471
Process Request Failure:1339
Process Request Failure:1124
Process Request Failure:1589
Process Request Failure:1697
Process Request Failure:1711
Process Request Failure:1636
Process Request Failure:1099
Process Request Failure:1744
Process Request Failure:1396
Process Request Failure:1105
Process Request Failure:1647
Process Request Failure:1407
Process Request Failure:1528
Process Request Failure:1116
Process Request Failure:1741
Process Request Failure:1775
Process Request Failure:1555
Process Request Failure:1446
Process Request Failure:1131
Process Request Failure:1466
Process Request Failure:1361
Process Request Failure:1369
Process Request Failure:1363
Process Request Failure:1838
Process Request Failure:1603
Process Request Failure:1446
Process Request Failure:1437
Process Request Failure:1907
Process Request Failure:1465
Process Request Failure:1910
Process Request Failure:1417
Process Request Failure:1795
Process Request Failure:1905
Process Request Failure:1403
Process Request Failure:1495
Process Request Failure:1581
Process Request Failure:1687
Process Request Failure:1549
Process Request Failure:1188
Process Request Failure:1949
Process Request Failure:1534
Process Request Failure:1847
Process Request Failure:1727
Process Request Failure:1986
Process Request Failure:1646
Process Request Failure:1412
Process Request Failure:992
Process Request Failure:1946
Process Request Failure:1263
Process Request Failure:1491
Process Request Failure:1894
Process Request Failure:1339
Process Request Failure:1768
Process Request Failure:1494
Process Request Failure:1633
Process Request Failure:1447
Process Request Failure:1546
Process Request Failure:1567
Process Request Failure:912
Process Request Failure:1389
Process Request Failure:1610
Process Request Failure:1063
Process Request Failure:1810
Process Request Failure:1439
Process Request Failure:1453
Process Request Failure:1906
Process Request Failure:740
Process Request Failure:1513
Process Request Failure:1538
Process Request Failure:1696
Process Request Failure:1570
Process Request Failure:1598
Process Request Failure:1732
Process Request Failure:1610
Process Request Failure:1674
Process Request Failure:1663
Process Request Failure:1743
Process Request Failure:1552
Process Request Failure:2003
Process Request Failure:1523
Process Request Failure:1527
Process Request Failure:1609
Process Request Failure:1576
Process Request Failure:1724
Process Request Failure:1591
Process Request Failure:1516
Process Request Failure:685
Process Request Failure:1813
Process Request Failure:1617
Process Request Failure:675
Process Request Failure:1248
Process Request Failure:1409
Process Request Failure:2044
Process Request Failure:771
Process Request Failure:1623
Process Request Failure:830
Process Request Failure:1496
Process Request Failure:813
Process Request Failure:1866
Process Request Failure:1659
Process Request Failure:1696
Process Request Failure:1904
Process Request Failure:1695
Process Request Failure:1907
Process Request Failure:1788
Process Request Failure:1569
Process Request Failure:1708
Process Request Failure:1676
Process Request Failure:1627
Process Request Failure:1940
Process Request Failure:1663
Process Request Failure:2037
Process Request Failure:1746
Process Request Failure:1714
Process Request Failure:1803
Process Request Failure:2081
Process Request Failure:2085
Process Request Failure:1840
Process Request Failure:2027
Process Request Failure:1783
Process Request Failure:855
Process Request Failure:1900
Process Request Failure:1849
Process Request Failure:1782
Process Request Failure:1053
Process Request Failure:1572
Process Request Failure:1711
Process Request Failure:1557
Process Request Failure:1515
Process Request Failure:1700
Process Request Failure:1685
Process Request Failure:1599
Process Request Failure:2119
Process Request Failure:1767
Process Request Failure:948
Process Request Failure:1933
Process Request Failure:1597
Process Request Failure:879
Process Request Failure:1679
Process Request Failure:1681
Process Request Failure:1766
Process Request Failure:1778
Process Request Failure:2067
Process Request Failure:1012
Process Request Failure:1112
Process Request Failure:1644
Process Request Failure:923
Process Request Failure:1650
Process Request Failure:1777
Process Request Failure:1832
Process Request Failure:1594
Process Request Failure:1617
Process Request Failure:1391
63. Stopping all clients.
23
. Stopping all clients.


20Stopped all clients for thread #14
25. Stopping all clients.
20
. Stopping all clients.

finished in 5.05s, 145803.00 req/s, 8.67GB/s
requests: 815608 total, 845758 started, 815608 done, 729015 succeeded, 86593 failed, 86593 errored, 0 timeout
status codes: 743535 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 43.37GB (46568705380) total, 126.29MB (132428389) headers (space savings 21.23%), 43.21GB (46399557127) data
                     min         max         mean         sd        +/- sd
time for request:     2.87ms       1.27s    100.88ms     41.10ms    84.78%
time for connect:     3.60ms       1.28s    429.76ms    381.54ms    51.86%
time to 1st byte:    13.78ms       1.33s    490.24ms    388.27ms    52.72%
req/s           :       0.00      624.82      229.72      112.11    70.90%
[info] CPU 6490.0% | Mem 4.0GiB

=== Best: 147407 req/s (CPU: 6595.6%, Mem: 3.8GiB) ===
[info] saved results/static-h2/1024/varnish.json
httparena-bench-varnish
httparena-bench-varnish
[info] skip: varnish does not subscribe to baseline-h2c
[info] skip: varnish does not subscribe to json-h2c
[info] skip: varnish does not subscribe to baseline-h3
[info] skip: varnish does not subscribe to static-h3
[info] skip: varnish does not subscribe to gateway-64
[info] skip: varnish does not subscribe to gateway-h3
[info] skip: varnish does not subscribe to production-stack
[info] skip: varnish does not subscribe to unary-grpc
[info] skip: varnish does not subscribe to unary-grpc-tls
[info] skip: varnish does not subscribe to echo-ws
[info] skip: varnish does not subscribe to echo-ws-pipeline
[info] skip: varnish does not subscribe to echo-ws-limited
[info] skip: varnish does not subscribe to latency-1m
[info] skip: varnish does not subscribe to latency-10k
[info] skip: varnish does not subscribe to async
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/varnish.json - 7 new, 7 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
[info] restoring loopback MTU to 65536

@gquintard

Copy link
Copy Markdown
Contributor Author

this confirms that tweaking the thread pools doesn't do much, and is even harmful. Closing

@gquintard gquintard closed this Sep 1, 2026
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.

2 participants