Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add metrics to stresstest and optimize cadence usage #1360

Merged
merged 2 commits into from
Feb 5, 2024

Conversation

Swatinem
Copy link
Member

@Swatinem Swatinem commented Feb 5, 2024

I added a local UDP sink to fully test metrics submission. It turns out the default cadence sink and the UDP submissions it does are extremely slow (at least on my machine).

Switching to the queueing and buffering sink speeds up the stresstest considerably.

Workload 0 (concurrency: 10): 176 operations, 11.733334 ops/s
Workload 1 (concurrency: 10): 137 operations, 9.133333 ops/s
Workload 2 (concurrency: 10): 190 operations, 12.666667 ops/s
Workload 3 (concurrency: 100): 169 operations, 11.266666 ops/s
Workload 4 (concurrency: 100): 388 operations, 25.866667 ops/s
Workload 5 (concurrency: 50): 563 operations, 37.533333 ops/s

Workload 0 (concurrency: 10): 2613 operations, 174.2 ops/s
Workload 1 (concurrency: 10): 1978 operations, 131.86667 ops/s
Workload 2 (concurrency: 10): 3681 operations, 245.4 ops/s
Workload 3 (concurrency: 100): 21564 operations, 1437.6 ops/s
Workload 4 (concurrency: 100): 10633 operations, 708.86664 ops/s
Workload 5 (concurrency: 50): 20848 operations, 1389.8667 ops/s

That is a 10x-100x improvement depending on the stresstest.

#skip-changelog

I added a local UDP sink to fully test metrics submission.
It turns out the default `cadence` sink and the UDP submissions it does are *extremely* slow (at least on my machine).

Switching to the queueing and buffering sink speeds up the stresstest considerably.

```
Workload 0 (concurrency: 10): 176 operations, 11.733334 ops/s
Workload 1 (concurrency: 10): 137 operations, 9.133333 ops/s
Workload 2 (concurrency: 10): 190 operations, 12.666667 ops/s
Workload 3 (concurrency: 100): 169 operations, 11.266666 ops/s
Workload 4 (concurrency: 100): 388 operations, 25.866667 ops/s
Workload 5 (concurrency: 50): 563 operations, 37.533333 ops/s

Workload 0 (concurrency: 10): 2613 operations, 174.2 ops/s
Workload 1 (concurrency: 10): 1978 operations, 131.86667 ops/s
Workload 2 (concurrency: 10): 3681 operations, 245.4 ops/s
Workload 3 (concurrency: 100): 21564 operations, 1437.6 ops/s
Workload 4 (concurrency: 100): 10633 operations, 708.86664 ops/s
Workload 5 (concurrency: 50): 20848 operations, 1389.8667 ops/s
```

That is a 10x-100x improvement depending on the stresstest.
@Swatinem Swatinem self-assigned this Feb 5, 2024
@Swatinem Swatinem enabled auto-merge (squash) February 5, 2024 15:41
@Swatinem Swatinem merged commit 821fcc6 into master Feb 5, 2024
13 checks passed
@Swatinem Swatinem deleted the swatinem/stresstest-metrics branch February 5, 2024 15:44
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