lotus/cmd
Fridrik Asmundsson 78d7ccd391 Add new RPC stress testing tool (lotus-bench rpc) with rich reporting
This benchmark is designed to stress test the rpc methods of a lotus node so that we can simulate real world usage and measure the performance of rpc methods on the node.

This benchmark has the following features:
* Can query each method both sequentially and concurrently
* Supports rate limiting
* Can query multiple different endpoints at once (supporting different concurrency level and rate limiting for each method)
* Gives a nice reporting summary of the stress testing of each method (including latency distribution, histogram and more)
* Easy to use

To use this benchmark you must specify the rpc methods you want to test using the --method options, the format of it is:

  --method=NAME[:CONCURRENCY][:QPS][:PARAMS] where only METHOD is required.

Here are some real examples:
  lotus-bench rpc --method='eth_chainId' // run eth_chainId with default concurrency and qps
  lotus-bench rpc --method='eth_chainId:3'  // override concurrency to 3
  lotus-bench rpc --method='eth_chainId::100' // override to 100 qps while using default concurrency
  lotus-bench rpc --method='eth_chainId:3:100' // run using 3 workers but limit to 100 qps
  lotus-bench rpc --method='eth_getTransactionCount:::["0xd4c70007F3F502f212c7e6794b94C06F36173B36", "latest"]' // run using optional params while using default concurrency and qps
  lotus-bench rpc --method='eth_chainId' --method='eth_getTransactionCount:10:0:["0xd4c70007F3F502f212c7e6794b94C06F36173B36", "latest"]' // run multiple methods at once`,

Fixes: https://github.com/filecoin-project/lotus/issues/10752
2023-05-27 10:55:10 +00:00
..
chain-noise chore: fix imports 2022-06-14 17:00:51 +02:00
lotus feat: daemon: Auto-resume interrupted snapshot imports 2023-04-25 09:31:19 +02:00
lotus-bench Add new RPC stress testing tool (lotus-bench rpc) with rich reporting 2023-05-27 10:55:10 +00:00
lotus-fountain set default data-cap same as MinVerifiedDealSize 2023-05-24 22:09:29 -07:00
lotus-gateway gateway: eth_subscribe support 2023-01-31 10:28:12 +01:00
lotus-health fix make gen 2022-08-29 16:25:30 +02:00
lotus-keygen NV18: Filecoin EVM runtime + Actor Events + EthAccount + EAM + f4 addressing (#9998) 2023-01-13 19:11:13 +00:00
lotus-miner Set drop-missing to true 2023-05-15 11:51:43 +02:00
lotus-pcr refactor: stop using deprecated io/ioutil 2023-03-29 15:40:49 -04:00
lotus-seed refactor: stop using deprecated io/ioutil 2023-03-29 15:40:49 -04:00
lotus-shed make ledger sign work 2023-05-17 22:01:04 -04:00
lotus-sim feat: chainstore: batch writes of tipsets 2023-05-02 17:26:07 -04:00
lotus-stats Bump http-server-timeout default to 30s 2022-11-29 14:38:44 +00:00
lotus-wallet Merge remote-tracking branch 'upstream/master' into adlrocha/cns-iface-master 2022-12-05 18:16:14 +01:00
lotus-worker Update redeclare cmd on Lotus-Workers 2023-05-18 18:04:10 +02:00
tvx fix: tvx: correctly lookup actor codes in extract-many 2023-04-20 13:27:44 -07:00