You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: tools/nomad-raft-load/README.md
+27-16Lines changed: 27 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,19 @@
1
1
# nomad-raft-load
2
2
3
-
A utility for load testing Nomad's Raft consensus layer by performing operations on Nomad Namespaces, Variables, ACL tokens, and ACL policies.
3
+
A utility for load testing Nomad's Raft consensus layer by performing operations
4
+
on Nomad Namespaces, Variables, ACL tokens, and ACL policies.
4
5
5
6
## Overview
6
7
7
-
`nomad-raft-load` tests Raft performance by creating and deleting Nomad resources (Namespaces, Variables, ACL tokens, and ACL policies), which are pure Raft operations that don't require client nodes. This allows you to isolate and measure the performance characteristics of Nomad's consensus layer.
8
+
`nomad-raft-load` tests Raft performance by creating and deleting Nomad
9
+
resources (Namespaces, Variables, ACL tokens, and ACL policies), which are pure
10
+
Raft operations that don't require client nodes. This allows you to isolate and
11
+
measure the performance characteristics of Nomad's consensus layer.
8
12
9
13
## Features
10
14
11
15
-**Multiple Operation Types**: Test with Nomad Namespaces, Variables, ACL tokens, or ACL policies
12
-
-**Flexible Patterns**:
16
+
-**Flexible Patterns**:
13
17
-`create-only`: Continuously create resources
14
18
-`create-delete`: Create and immediately delete (tests both write paths)
15
19
-`accumulate-purge`: Create many resources, then purge them in bulk
@@ -134,20 +138,25 @@ Key metrics:
134
138
135
139
### Namespace Operations (Recommended)
136
140
137
-
When running with `-type=namespace` (the default), the utility creates and deletes Nomad Namespaces with names like `raft-load-ns-{worker}-{iteration}-{timestamp}`.
141
+
When running with `-type=namespace` (the default), the utility creates and
142
+
deletes Nomad Namespaces with names like
143
+
`raft-load-ns-{worker}-{iteration}-{timestamp}`.
138
144
139
145
**Advantages:**
140
-
-✅ Works with or without ACLs enabled
141
-
-✅ Pure Raft operations with no encryption overhead
142
-
-✅ Fastest and cleanest Raft testing
143
-
-✅ No special setup required
144
-
-✅ Tests Raft in isolation
146
+
- Works with or without ACLs enabled
147
+
- Pure Raft operations with no encryption overhead
148
+
- Fastest and cleanest Raft testing
149
+
- No special setup required
150
+
- Tests Raft in isolation
145
151
146
152
### Variable Operations
147
153
148
-
When running with `-type=variable`, the utility creates and deletes Nomad Variables at paths like `raft-load/test-{worker}-{iteration}-{timestamp}`. Each variable contains a few test key-value pairs.
154
+
When running with `-type=variable`, the utility creates and deletes Nomad
155
+
Variables at paths like `raft-load/test-{worker}-{iteration}-{timestamp}`. Each
156
+
variable contains a few test key-value pairs.
149
157
150
-
**Note:** Variables use encryption, so they test Raft plus encryption overhead. Use namespaces for pure Raft testing.
158
+
**Note:** Variables use encryption, so they test Raft plus encryption overhead.
159
+
*Use namespaces for pure Raft testing.
151
160
152
161
### Token Operations
153
162
@@ -158,26 +167,28 @@ When running with `-type=token`, the utility automatically:
158
167
159
168
### Policy Operations
160
169
161
-
When running with `-type=policy`, the utility directly creates and deletes ACL policies with simple read permissions for the default namespace.
170
+
When running with `-type=policy`, the utility directly creates and deletes ACL
171
+
policies with simple read permissions for the default namespace.
162
172
163
173
**Note:** Both token and policy operations require ACLs to be enabled on the Nomad cluster.
164
174
165
175
## Operation Patterns
166
176
167
177
### create-only
168
-
Creates resources continuously without deleting them. Useful for testing sustained write throughput and observing Raft log growth.
178
+
Creates resources continuously without deleting them. Useful for testing
179
+
sustained write throughput and observing Raft log growth.
169
180
170
-
⚠️ **Warning**: This will accumulate resources. Clean up manually or use with finite `-count`.
181
+
️**Warning**: This will accumulate resources. Clean up manually or use with finite `-count`.
171
182
172
183
### create-delete
173
184
Creates a resource and immediately deletes it. Tests both write paths and measures round-trip Raft performance.
174
185
175
-
✅ **Recommended** for most testing scenarios as it's self-cleaning.
186
+
**Recommended** for most testing scenarios as it's self-cleaning.
176
187
177
188
### accumulate-purge
178
189
Creates resources until a threshold, then deletes them in bulk. Useful for testing:
179
190
- Burst creation performance
180
-
- Bulk deletion performance
191
+
- Bulk deletion performance
181
192
- Raft log compaction behavior
182
193
183
194
Use `-purge-interval` for periodic purging during the test.
0 commit comments