-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Expand file tree
/
Copy pathapply-load-benchmark-sac.cfg
More file actions
82 lines (69 loc) · 3.53 KB
/
Copy pathapply-load-benchmark-sac.cfg
File metadata and controls
82 lines (69 loc) · 3.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# This is the Stellar Core configuration example for using the load generation
# (apply-load) tool for benchmarking the ledger close time with SAC transfer
# model transaction.
# The core with this configuration should run using `./stellar-core apply-load`
# Select the apply-load mode and benchmark model transaction.
APPLY_LOAD_MODE="benchmark"
APPLY_LOAD_MODEL_TX="sac"
# Which timing path to use: "apply" times only transaction application, while
# "txset-validation-and-apply" also times tx-set construction from an
# overfilled candidate backlog and validation before application.
APPLY_LOAD_TIMING_PHASES = "apply"
# Purposefully overfill the candidate backlog to simulate a busy production
# validator's queue. In "txset-validation-and-apply", these multipliers default
# to 2 and must be at least 2 (the classic multiplier is checked only when
# APPLY_LOAD_CLASSIC_TXS_PER_LEDGER > 0). Raise them, e.g. to 4, to increase
# the backlog without raising ledger limits. More candidates need more
# accounts; increase GENESIS_TEST_ACCOUNT_COUNT if needed.
# These flags scale candidate counts. The Soroban multiplier applies after
# SAC batching, i.e. to
# APPLY_LOAD_MAX_SOROBAN_TX_COUNT / APPLY_LOAD_BATCH_SAC_COUNT.
SOROBAN_TRANSACTION_QUEUE_SIZE_MULTIPLIER_FOR_TESTING = 2
TRANSACTION_QUEUE_SIZE_MULTIPLIER_FOR_TESTING = 2
# Whether to time the write part of the apply stage. This can be
# disabled to get less noisy results for non-write related changes,
# but should be enabled to get more comprehensive e2e numbers.
APPLY_LOAD_TIME_WRITES = true
# Medida metrics (histograms in particular) in apply path cause severe and
# non-deterministic performance degradation. While this has to be addressed
# eventually, it is useful to disable these when optimizing anything besides
# the metrics.
DISABLE_SOROBAN_METRICS_FOR_TESTING = true
# Disable transaction metadata collection (BUILD_TESTS forces it otherwise)
DISABLE_TX_META_FOR_TESTING = true
# Disable metadata output
METADATA_OUTPUT_STREAM = ""
# Disable metadata debug
METADATA_DEBUG_LEDGERS = 0
# In this mode, defines the number of transactions to apply in each ledger.
APPLY_LOAD_MAX_SOROBAN_TX_COUNT = 3000
# The only relevant network configuration parameter - number of transaction
# clusters that are then mapped to the transaction execution threads.
APPLY_LOAD_LEDGER_MAX_DEPENDENT_TX_CLUSTERS = 1
# Number of payments to batch in a single transaction, similarly to how
# operations are batched for 'classic' transactions.
# This is useful to reduce the impact of non-env parts of the apply path, e.g.
# when evaluating the impact of changes to env itself.
APPLY_LOAD_BATCH_SAC_COUNT = 100
# Number of ledgers to close for every iteration of search.
APPLY_LOAD_NUM_LEDGERS = 100
# Disable bucket list pre-generation as it's not necessary for this mode.
APPLY_LOAD_BL_SIMULATED_LEDGERS = 0
APPLY_LOAD_BL_WRITE_FREQUENCY = 0
APPLY_LOAD_BL_BATCH_SIZE = 0
APPLY_LOAD_BL_LAST_BATCH_SIZE = 0
APPLY_LOAD_BL_LAST_BATCH_LEDGERS = 0
# Common apply load boilerplate
ARTIFICIALLY_GENERATE_LOAD_FOR_TESTING=true
# Diagnostic events should generally be disabled, but can be enabled for debug
ENABLE_SOROBAN_DIAGNOSTIC_EVENTS = false
# Set up plenty of genesis accounts - benchmark will fail if the number is not
# sufficient. This should be at least 2x of APPLY_LOAD_MAX_SOROBAN_TX_COUNT.
GENESIS_TEST_ACCOUNT_COUNT = 21000
# Minimal core config boilerplate
UNSAFE_QUORUM=true
NETWORK_PASSPHRASE="Apply Load"
NODE_SEED="SDQVDISRYN2JXBS7ICL7QJAEKB3HWBJFP2QECXG7GZICAHBK4UNJCWK2 self"
[QUORUM_SET]
THRESHOLD_PERCENT=100
VALIDATORS=["$self"]