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

Perfomance Degradation: Heavy Disk Usage #50

Closed
hleb-albau opened this issue Oct 6, 2018 · 5 comments
Closed

Perfomance Degradation: Heavy Disk Usage #50

hleb-albau opened this issue Oct 6, 2018 · 5 comments
Assignees
Milestone

Comments

@hleb-albau
Copy link
Contributor

hleb-albau commented Oct 6, 2018

Starting new chain, generating about 500 tx each 40kb with overall 100k messages. After some point performance dropped to 1 tx/s. We observing heavy usage of disk - writes from 5 MiB/s to 30-40 MiB/s for periods up to 20 seconds. LevedDb size is about few mb. So, general chain workflow become :

for 30sec block generation:
1) propose,commit block few secs
2) up to 20sec disk heavy usage
3) only few seconds tendermint accepts new mempool txes
4) back to point 1

Starting new chain, gives next disk usage:
image
Here max value is 40MiB/sec. As you can see, most of time, chain spend on db staff.

Same disk usage stays even if we produce empty blocks for a long period of time. Stop sending txes, just create empty blocks.
image

ref #2131
ref #1835

@hleb-albau hleb-albau changed the title Perfomance Degradation: Heave Disk Usage Perfomance Degradation: Heavy Disk Usage Oct 6, 2018
@ebuchman
Copy link

As far as we know, this is due to a problem in the underlying goleveldb library. You should be able to solve it by compiling Tendermint to use the real C version of LevelDB. See https://tendermint.com/docs/introduction/install.html#compile-with-cleveldb-support

@hleb-albau
Copy link
Contributor Author

@ebuchman, thanks for answer.
In our case, compiling with cleveldb and adjusting multistore usage fixed problem.
For each 30sec-block we previously rewrite about 5mb, that caused a lot of compactions.
Sorry for interruption. Thanks for tendermint and cosmos.

@ebuchman
Copy link

Please, no need to apologize. We appreciate the initial report and confirmation of the fix. Let us know if you encounter any other issues! Thanks.

@hleb-albau hleb-albau added this to the Sprint 21 milestone Oct 22, 2018
@hleb-albau hleb-albau self-assigned this Oct 22, 2018
@gcohler
Copy link

gcohler commented Nov 2, 2018

@ebuchman When I follow the instructions for installing cleveldb, I get a panic that it is not supported. Has this support been eliminated?

panic: Unknown db_backend cleveldb, expected either fsdb or leveldb or goleveldb or memdb

Thanks much.

@ebuchman
Copy link

No it has not. How are you installing it? make install_c should do it. Do you have gcc installed?

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

No branches or pull requests

3 participants