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

Performance degradation with growing number of transaction #213

Open
eshavkun opened this issue Mar 18, 2019 · 4 comments
Open

Performance degradation with growing number of transaction #213

eshavkun opened this issue Mar 18, 2019 · 4 comments

Comments

@eshavkun
Copy link
Contributor

Case:

  • 1 user comes every second to perform 1 transfer

Result:

  1. Wait time for transaction to be included grows fast with number of users:
    • Up to 5 users: usually no delay
    • Up to 10: usually up to 1 second delay
    • Up to 20: usually up to 3 second delay
    • After 20th user even 3 seconds is not enough
  2. Only first block contains more than 1 transaction, others have only 1 although the load is constant

Expected:

  • More stable wait time (not that fast growing) for transaction to be included
  • Blocks having more than 1 transaction when there is more than 1 in the queue
@eshavkun eshavkun added this to the 🌱SpringFreeze milestone Mar 18, 2019
@johannbarbie
Copy link
Member

@pinkiebell found an upstream issue in tendermint that might fix this

@johannbarbie
Copy link
Member

johannbarbie commented Mar 18, 2019

depends on #184 ?

@johannbarbie johannbarbie added size-L effort of ~13h to do labels Mar 18, 2019
@pinkiebell
Copy link
Contributor

Almost solved by #222

@eshavkun
Copy link
Contributor Author

The issue still manifests itself on testnet. The following tests we done:

30 seconds, 10 arrivals per second (300 transactions total). Result:

  • Blocks passed: 87
  • Blocks with only 1 tx: 40
  • Max txs per block: 11
    => Many blocks (every second basically) still have only on tx
  • Number of times eth_getBlockByNumber returned null: 10
  • Wait times for receipt: up to 10 sec, median: 6, p95: 9
    => Wait times grow from 1 to 10 seconds during the test run, becoming stable 8-10 seconds towards the end of the test

10 seconds, 50 arrivals per second (500 transactions total). Result:

  • Blocks passed: unknown: more than 100 of last txs didn't receive a receipt within 10 seconds
  • Blocks with only 1 tx: at least 12 (see above)
  • Max txs per block: 63
  • Number of times eth_getBlockByNumber returned null: 3
    => This fails do not seem to correlate with load
  • Number of times user didn't receive receipt withing 10 seconds: 163 (~30%!)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants