-
Notifications
You must be signed in to change notification settings - Fork 119
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
First draft performance troubleshooting page. (#1335)
* First draft performance troubleshooting page. Signed-off-by: Matt Nelson <85905982+non-fungible-nelson@users.noreply.github.com> * tweaks and linter Signed-off-by: Matt Nelson <85905982+non-fungible-nelson@users.noreply.github.com> * edit PR content Signed-off-by: Alexandra Tran <alexandra.tran@consensys.net> --------- Signed-off-by: Matt Nelson <85905982+non-fungible-nelson@users.noreply.github.com> Signed-off-by: Alexandra Tran <alexandra.tran@consensys.net> Co-authored-by: Alexandra Tran <alexandra.tran@consensys.net>
- Loading branch information
1 parent
ab0e949
commit 64d8a8a
Showing
3 changed files
with
43 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -54,6 +54,7 @@ Filestore(s)? | |
[gG]eth | ||
GitHub | ||
Gitter | ||
glibc | ||
Goerli | ||
GoQuorum | ||
[gG]olang | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
--- | ||
description: Troubleshoot poor performance and resource constraints. | ||
--- | ||
|
||
# Troubleshoot poor performance and resource constraints | ||
|
||
Your hardware, machine environment, and node configuration can affect your node's ability to serve | ||
requests and perform [validator duties](../../concepts/proof-of-stake/index.md), including | ||
[attestation performance](../../concepts/proof-of-stake/attestations.md). | ||
|
||
If you notice high resource usage when [monitoring your node](../monitor/index.md), you can | ||
try the following suggestions: | ||
|
||
* Disable swapping. | ||
Besu is an I/O intensive application, especially during sync, enabling swapping hurts Besu's performance. | ||
You can disable swap at the OS level. | ||
[This article](https://www.tecmint.com/disable-swap-partition/) provides information on how to | ||
disable swap (and caveats). | ||
* Use a high performance SSD disk with NVMe, since Besu's performance bottleneck is often slow disk I/O. | ||
* Configure memory and RAM: | ||
* If you have RAM constraints, use [OpenJ9](../../get-started/system-requirements.md) if you're | ||
running on `x86_64` Linux architecture to reduce memory usage. | ||
* Review and change your [Java heap size](../configure-jvm/manage-memory.md) if necessary. | ||
5GB is an appropriate limit. | ||
Higher values may improve sync time, but can be reduced after completing sync. | ||
* Ensure Besu is using [jemalloc](../../get-started/install/binary-distribution.md). | ||
* If you have 32GB RAM or more, set the `Xplugin-rocksdb-high-spec-enabled` configuration option | ||
to `true`. | ||
Don't use this on RAM machines with 16GB RAM or less if you're running a consensus client on the | ||
same hardware. | ||
* If you're running on ARM64, make sure the glibc version is greater than 2.29. | ||
If not, Besu uses a Java implementation instead of the native one for some precompiled contracts, | ||
which results in lower performance. | ||
* On Ubuntu, run `ldd --version`. | ||
See [the methods for other environments](https://dev.to/0xbf/how-to-get-glibc-version-c-lang-26he). | ||
* Pay attention to what processes are running on the same machine/VM as Besu. | ||
Java applications, with default settings, are designed to run alone on the machine. | ||
You can run your consensus client on the same machine, but this adds overhead on Besu, and vice | ||
versa (on CPU cache misses, CPU scheduler latency, IO, etc.). | ||
|
||
You should continue to monitor your node after following these suggestions. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters