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

[benchmark] Make paranoid mode configurable #15900

Merged
merged 1 commit into from
Feb 10, 2025

Conversation

georgemitenkov
Copy link
Contributor

@georgemitenkov georgemitenkov commented Feb 6, 2025

Description

Adds a flag to disable paranoid mode for benchmarking. This way we can measure performance with and without on historical workloads.

How Has This Been Tested?

Key Areas to Review

Type of Change

  • New feature
  • Bug fix
  • Breaking change
  • Performance improvement
  • Refactoring
  • Dependency update
  • Documentation update
  • Tests

Which Components or Systems Does This Change Impact?

  • Validator Node
  • Full Node (API, Indexer, etc.)
  • Move/Aptos Virtual Machine
  • Aptos Framework
  • Aptos CLI/SDK
  • Developer Infrastructure
  • Move Compiler
  • Other (specify)

Checklist

  • I have read and followed the CONTRIBUTING doc
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I identified and added all stakeholders and component owners affected by this change as reviewers
  • I tested both happy and unhappy path of the functionality
  • I have made corresponding changes to the documentation

Copy link

trunk-io bot commented Feb 6, 2025

⏱️ 49m total CI duration on this PR
Slowest 15 Jobs Cumulative Duration Recent Runs
check-dynamic-deps 17m 🟩🟩🟩🟩🟩 (+2 more)
rust-cargo-deny 9m 🟩🟩🟩🟩
rust-doc-tests 6m 🟩
test-target-determinator 5m 🟩
execution-performance / test-target-determinator 5m 🟩
semgrep/ci 2m 🟩🟩🟩🟩🟩 (+2 more)
general-lints 2m 🟩🟩🟩🟩🟩
fetch-last-released-docker-image-tag 2m 🟩
file_change_determinator 57s 🟩🟩🟩🟩 (+1 more)
permission-check 18s 🟩🟩🟩🟩🟩 (+2 more)
permission-check 17s 🟩🟩🟩🟩🟩 (+2 more)
file_change_determinator 11s 🟩
execution-performance / single-node-performance 9s 🟩
permission-check 4s 🟩
determine-docker-build-metadata 2s 🟩

🚨 2 jobs on the last run were significantly faster/slower than expected

Job Duration vs 7d avg Delta
rust-cargo-deny 3m 2m +60%
execution-performance / single-node-performance 9s 20m -99%

settingsfeedbackdocs ⋅ learn more about trunk.io

Copy link
Contributor Author

georgemitenkov commented Feb 6, 2025

@georgemitenkov georgemitenkov marked this pull request as ready for review February 6, 2025 09:33
for the first `N` blocks (the blocks will still be executed as a "warm-up").

Execution can also be configured. By using `--disable-paranoid-mode`, the Move VM will not use
runtime type checks, possible making execution faster.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: "possible" should be "possibly" in "possible making execution faster"

Spotted by Graphite Reviewer

Is this helpful? React 👍 or 👎 to let us know.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in #15901

@georgemitenkov georgemitenkov force-pushed the george/replay-benchmark-package-override branch from 5e3e076 to c8171a9 Compare February 8, 2025 16:55
@georgemitenkov georgemitenkov force-pushed the george/replay-benchmark-overrides branch 2 times, most recently from efc8134 to e7c022d Compare February 10, 2025 16:44
Base automatically changed from george/replay-benchmark-package-override to main February 10, 2025 18:38
value_delimiter = ' ',
help = "List of space-separated paths to compiled / built packages with Move code"
)]
override_packages: Vec<String>,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wasn't this in a different PR?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to rebase the branch, the other PR has just landed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rebased

@georgemitenkov georgemitenkov force-pushed the george/replay-benchmark-overrides branch from e7c022d to 4957ba6 Compare February 10, 2025 20:27
@georgemitenkov georgemitenkov enabled auto-merge (squash) February 10, 2025 20:28

This comment has been minimized.

This comment has been minimized.

Copy link
Contributor

✅ Forge suite compat success on 255673e8f2757ed8634a7d65d7aca11de7016cde ==> 4957ba68468c8f55ed92bd32e50cb0eb52c9b31e

Compatibility test results for 255673e8f2757ed8634a7d65d7aca11de7016cde ==> 4957ba68468c8f55ed92bd32e50cb0eb52c9b31e (PR)
1. Check liveness of validators at old version: 255673e8f2757ed8634a7d65d7aca11de7016cde
compatibility::simple-validator-upgrade::liveness-check : committed: 11584.70 txn/s, latency: 2715.44 ms, (p50: 2600 ms, p70: 2800, p90: 3800 ms, p99: 5000 ms), latency samples: 387560
2. Upgrading first Validator to new version: 4957ba68468c8f55ed92bd32e50cb0eb52c9b31e
compatibility::simple-validator-upgrade::single-validator-upgrading : committed: 3436.09 txn/s, latency: 8789.85 ms, (p50: 9500 ms, p70: 10100, p90: 10600 ms, p99: 10800 ms), latency samples: 78900
compatibility::simple-validator-upgrade::single-validator-upgrade : committed: 3351.28 txn/s, latency: 10293.19 ms, (p50: 11300 ms, p70: 11500, p90: 11700 ms, p99: 11800 ms), latency samples: 127960
3. Upgrading rest of first batch to new version: 4957ba68468c8f55ed92bd32e50cb0eb52c9b31e
compatibility::simple-validator-upgrade::half-validator-upgrading : committed: 3312.62 txn/s, latency: 8928.56 ms, (p50: 9500 ms, p70: 10800, p90: 11600 ms, p99: 11800 ms), latency samples: 72520
compatibility::simple-validator-upgrade::half-validator-upgrade : committed: 3341.06 txn/s, latency: 10348.44 ms, (p50: 11300 ms, p70: 11600, p90: 11700 ms, p99: 11900 ms), latency samples: 127720
4. upgrading second batch to new version: 4957ba68468c8f55ed92bd32e50cb0eb52c9b31e
compatibility::simple-validator-upgrade::rest-validator-upgrading : committed: 5987.13 txn/s, latency: 5066.27 ms, (p50: 5800 ms, p70: 6200, p90: 6700 ms, p99: 6800 ms), latency samples: 114340
compatibility::simple-validator-upgrade::rest-validator-upgrade : committed: 5949.16 txn/s, latency: 5736.76 ms, (p50: 6000 ms, p70: 6500, p90: 6900 ms, p99: 7000 ms), latency samples: 204400
5. check swarm health
Compatibility test for 255673e8f2757ed8634a7d65d7aca11de7016cde ==> 4957ba68468c8f55ed92bd32e50cb0eb52c9b31e passed
Test Ok

Copy link
Contributor

✅ Forge suite realistic_env_max_load success on 4957ba68468c8f55ed92bd32e50cb0eb52c9b31e

two traffics test: inner traffic : committed: 12364.86 txn/s, submitted: 12366.75 txn/s, expired: 1.89 txn/s, latency: 3197.62 ms, (p50: 2700 ms, p70: 3000, p90: 3600 ms, p99: 10400 ms), latency samples: 4701420
two traffics test : committed: 99.97 txn/s, latency: 1763.33 ms, (p50: 1600 ms, p70: 1700, p90: 2300 ms, p99: 3300 ms), latency samples: 1740
Latency breakdown for phase 0: ["MempoolToBlockCreation: max: 1.783, avg: 1.544", "ConsensusProposalToOrdered: max: 0.334, avg: 0.327", "ConsensusOrderedToCommit: max: 0.725, avg: 0.557", "ConsensusProposalToCommit: max: 1.052, avg: 0.884"]
Max non-epoch-change gap was: 1 rounds at version 22987 (avg 0.00) [limit 4], 1.85s no progress at version 22987 (avg 0.22s) [limit 15].
Max epoch-change gap was: 1 rounds at version 5071088 (avg 0.50) [limit 4], 2.41s no progress at version 5071088 (avg 1.60s) [limit 16].
Test Ok

@georgemitenkov georgemitenkov merged commit 9fee3cd into main Feb 10, 2025
84 of 88 checks passed
@georgemitenkov georgemitenkov deleted the george/replay-benchmark-overrides branch February 10, 2025 21:05
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.

4 participants