Sui.

Post

Share your knowledge.

theking.
Jul 25, 2025
Expert Q&A

What’s the best way to benchmark Sui’s transaction throughput?

I’m researching Sui’s performance claims and want to benchmark transaction throughput on Testnet. What tools and methodologies should I use?

  • Sui
  • SDKs and Developer Tools
3
4
Share
Comments
.

Answers

4
shamueely.
Jul 25 2025, 01:37

To benchmark Sui’s transaction throughput effectively, you should use the official sui-benchmark tool or write a custom load-testing script using the Sui SDK (e.g., TypeScript or Rust), targeting either a localnet or testnet environment. If you're using sui-benchmark, start by spinning up a local network with sui-test-validator, then run the benchmark tool with multiple concurrent transactions—this helps simulate realistic load and observe how many transactions per second (TPS) the network handles under stress. You’ll want to measure throughput during both peak and idle loads, monitor gas usage, and check latency per transaction. If you prefer more control, build a script that submits simple transaction blocks (e.g., object transfers or Move calls) using the Sui TypeScript SDK with high concurrency and timed batches.

Here’s a CLI example to run localnet:

sui-test-validator

Then use the Rust tool:

cargo run --release --bin sui-benchmark -- --target-qps 1000 --duration 60

You can also benchmark from a Node.js app by using Promise.all() to submit many transactions in parallel via the SuiClient. Just remember to monitor CPU/memory if you're testing locally, as your hardware limits can affect results.

To learn more or get the benchmarking tool: https://github.com/MystenLabs/sui/tree/main/crates/sui-benchmark

Let me know if you want a sample benchmarking script in Node or a guide for profiling on devnet.

4
Best Answer
Comments
.
Owen.
Owen4622
Jul 30 2025, 17:14

To benchmark Sui’s transaction throughput, use the Sui TypeScript SDK to generate a high volume of transactions with minimal shared state. Focus on operations involving owned objects to maximize parallel execution. Batch commands using Programmable Transaction Blocks (PTBs) and measure transactions per second (TPS) over a fixed duration. Use sui_getTransactionBlocks to analyze results. Run tests against a stable RPC endpoint and ensure your workload avoids bottlenecks like shared object contention. For accuracy, repeat tests across multiple epochs and use Sui Testnet or a localnet environment.

8
Comments
.
Paul.
Paul4200
Jul 31 2025, 15:48

To benchmark Sui’s transaction throughput on Testnet, here’s what you can do:

  1. Set Up Testnet: Connect to Sui's Testnet (use the public RPC URL like https://fullnode.devnet.sui.io:5001).

  2. Use Benchmarking Tools: Leverage Sui’s built-in benchmarking tools or create your own scripts using the Sui SDK to submit multiple transactions in parallel.

  3. Measure TPS and Latency: Track transactions per second (TPS) and how long transactions take to confirm. You can use tools like wrk or Apache JMeter for this.

  4. Monitor Network Performance: Keep an eye on network stats using tools like Prometheus or Grafana, or check Sui’s Testnet dashboard if available.

  5. Stress Test: Push the system by submitting a large number of transactions to see how it handles under load.

This will give you a good sense of Sui’s transaction throughput and how it performs under stress.

6
Comments
.
SuiLover.
Jul 27 2025, 07:56

To benchmark Sui’s transaction throughput on Testnet, use the official Sui Benchmarker tool or custom scripts with the Sui CLI. Generate a large number of owned-object-based transactions to maximize parallel execution and simulate realistic workloads. Avoid shared objects unless testing bottlenecks, as they serialize execution and lower throughput. Deploy a local fullnode or validator set if deeper metrics or tuning is needed. Use metrics endpoints or logs to monitor TPS, latency, and failed transactions during stress tests. Run benchmarks in controlled environments with consistent network and machine conditions to ensure reproducibility. Batch transactions in blocks or sequences and track execution times using timestamps and response logs. Analyze system resource usage to detect limits in CPU, memory, or I/O that may affect throughput. Test under varying transaction types—pure, owned, and shared—to understand performance trade-offs. Use Prometheus and Grafana with node telemetry for deeper real-time insights during testing.

3
Comments
.

Do you know the answer?

Please log in and share it.