Skip to content

reth node consumes much swapfile #1082

@dandavid3000

Description

@dandavid3000

Hello,
I'm switching from geth to reth node on base but it seems I observe an issue with RAM and swapfile (110GB) on my PC have been consumed noticeably. geth node was much pretty light and doesn't cause me any issue.

Do you have any suggestion for the configuration on how to prevent/avoid such situation ?

My node is up-to-date and synced from pruned full snapshot from official base.
I try to turn off flashblock but the issue is still persistent

Ubuntu 22.04.5 LTS
MemTotal: 65518220 kB
CPU Model name: 12th Gen Intel(R) Core(TM) i9-12900
Swapfile : 136GB

Below is my configuration for the node. Nothing much different from default except I modified it to use local RPC and different ports

$ cat docker-compose.yml 
services:
  execution:
    build:
      context: .
      dockerfile: ${CLIENT:-reth}/Dockerfile
    restart: unless-stopped
    ports:
      - "18545:8545" # RPC
      - "18546:8546" # websocket
      - "17301:6060" # metrics
      - "30323:30303" # P2P TCP
      - "30323:30303/udp" # P2P UDP
    command: ["bash", "./execution-entrypoint"]
    volumes:
      - ${HOST_DATA_DIR}:/data
    environment:
      - USE_BASE_CONSENSUS=${USE_BASE_CONSENSUS:-false}
    env_file:
      - ${NETWORK_ENV:-.env.mainnet} # Use .env.mainnet by default, override with .env.sepolia for testnet
    extra_hosts:
      - "host.docker.internal:host-gateway"
  node:
    build:
      context: .
      dockerfile: ${CLIENT:-reth}/Dockerfile
    restart: unless-stopped
    depends_on:
      - execution
    ports:
      - "17545:8545" # RPC
      - "19222:9222" # P2P TCP
      - "19222:9222/udp" # P2P UDP
      - "17300:7300" # metrics
      - "16060:6060" # pprof
    command: ["bash", "./consensus-entrypoint"]
    environment:
      - USE_BASE_CONSENSUS=${USE_BASE_CONSENSUS:-false}
    env_file:
      - ${NETWORK_ENV:-.env.mainnet} # Use .env.mainnet by default, override with .env.sepolia for testnet
    extra_hosts:
      - "host.docker.internal:host-gateway"

$ cat .env.mainnet 
# BASE MAINNET NODE CONFIGURATION
# ===========================

# NETWORK CONFIGURATION
# --------------------
RETH_CHAIN=base
BASE_NODE_NETWORK=base
OP_NODE_NETWORK=base-mainnet
OP_GETH_OP_NETWORK=base-mainnet

# BASE SEQUENCER ENDPOINTS
# -----------------------
RETH_SEQUENCER_HTTP=https://mainnet-sequencer.base.org
OP_SEQUENCER_HTTP=https://mainnet-sequencer.base.org
OP_GETH_SEQUENCER_HTTP=https://mainnet-sequencer.base.org
OP_RETH_SEQUENCER_HTTP=https://mainnet-sequencer.base.org

# SYNC CONFIGURATION (deprecated)
# -----------------
OP_NODE_SYNCMODE=execution-layer
OP_NODE_VERIFIER_L1_CONFS=4
OP_NODE_ROLLUP_LOAD_PROTOCOL_VERSIONS=true

# [REQUIRED] L1 CONFIGURATION
# --------------------------
# Replace these values with your L1 (Ethereum) node endpoints
OP_NODE_L1_ETH_RPC=http://host.docker.internal:8975
OP_NODE_L1_BEACON=http://192.168.1.86:8940
OP_NODE_L1_BEACON_ARCHIVER=http://192.168.1.86:8940
OP_NODE_L1_BEACON_FETCH_ALL_SIDECARS="true"
OP_NODE_L1_RPC_KIND="debug_geth"
OP_NODE_L1_TRUST_RPC="false"

BASE_NODE_L1_ETH_RPC=http://host.docker.internal:8975
BASE_NODE_L1_BEACON=http://192.168.1.86:8940
BASE_NODE_L1_TRUST_RPC="false"

# ENGINE CONFIGURATION
# -------------------
OP_NODE_L2_ENGINE_KIND=reth
OP_NODE_L2_ENGINE_RPC=http://execution:8551

BASE_NODE_L2_ENGINE_RPC=ws://execution:8551
BASE_NODE_L2_ENGINE_AUTH=/tmp/engine-auth-jwt
BASE_NODE_L2_ENGINE_AUTH_RAW=688f5d737bad920bdfb2fc2f488d6b6209eebda1dae949a8de91398d932c517a

# P2P CONFIGURATION
# ---------------
OP_NODE_P2P_AGENT=base
OP_NODE_P2P_LISTEN_IP=0.0.0.0
OP_NODE_P2P_LISTEN_TCP_PORT=9222
OP_NODE_P2P_LISTEN_UDP_PORT=9222
OP_NODE_INTERNAL_IP="true"
OP_NODE_P2P_BOOTNODES=enr:-J24QNz9lbrKbN4iSmmjtnr7SjUMk4zB7f1krHZcTZx-JRKZd0kA2gjufUROD6T3sOWDVDnFJRvqBBo62zuF-hYCohOGAYiOoEyEgmlkgnY0gmlwhAPniryHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQKNVFlCxh_B-716tTs-h1vMzZkSs1FTu_OYTNjgufplG4N0Y3CCJAaDdWRwgiQG,enr:-J24QH-f1wt99sfpHy4c0QJM-NfmsIfmlLAMMcgZCUEgKG_BBYFc6FwYgaMJMQN5dsRBJApIok0jFn-9CS842lGpLmqGAYiOoDRAgmlkgnY0gmlwhLhIgb2Hb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJ9FTIv8B9myn1MWaC_2lJ-sMoeCDkusCsk4BYHjjCq04N0Y3CCJAaDdWRwgiQG,enr:-J24QDXyyxvQYsd0yfsN0cRr1lZ1N11zGTplMNlW4xNEc7LkPXh0NAJ9iSOVdRO95GPYAIc6xmyoCCG6_0JxdL3a0zaGAYiOoAjFgmlkgnY0gmlwhAPckbGHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJwoS7tzwxqXSyFL7g0JM-KWVbgvjfB8JA__T7yY_cYboN0Y3CCJAaDdWRwgiQG,enr:-J24QHmGyBwUZXIcsGYMaUqGGSl4CFdx9Tozu-vQCn5bHIQbR7On7dZbU61vYvfrJr30t0iahSqhc64J46MnUO2JvQaGAYiOoCKKgmlkgnY0gmlwhAPnCzSHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQINc4fSijfbNIiGhcgvwjsjxVFJHUstK9L1T8OTKUjgloN0Y3CCJAaDdWRwgiQG,enr:-J24QG3ypT4xSu0gjb5PABCmVxZqBjVw9ca7pvsI8jl4KATYAnxBmfkaIuEqy9sKvDHKuNCsy57WwK9wTt2aQgcaDDyGAYiOoGAXgmlkgnY0gmlwhDbGmZaHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQIeAK_--tcLEiu7HvoUlbV52MspE0uCocsx1f_rYvRenIN0Y3CCJAaDdWRwgiQG

BASE_NODE_P2P_LISTEN_IP=0.0.0.0
BASE_NODE_P2P_ADVERTISE_TCP_PORT=9222
BASE_NODE_P2P_ADVERTISE_UDP_PORT=9222
BASE_NODE_P2P_BOOTNODES=enr:-J24QNz9lbrKbN4iSmmjtnr7SjUMk4zB7f1krHZcTZx-JRKZd0kA2gjufUROD6T3sOWDVDnFJRvqBBo62zuF-hYCohOGAYiOoEyEgmlkgnY0gmlwhAPniryHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQKNVFlCxh_B-716tTs-h1vMzZkSs1FTu_OYTNjgufplG4N0Y3CCJAaDdWRwgiQG,enr:-J24QH-f1wt99sfpHy4c0QJM-NfmsIfmlLAMMcgZCUEgKG_BBYFc6FwYgaMJMQN5dsRBJApIok0jFn-9CS842lGpLmqGAYiOoDRAgmlkgnY0gmlwhLhIgb2Hb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJ9FTIv8B9myn1MWaC_2lJ-sMoeCDkusCsk4BYHjjCq04N0Y3CCJAaDdWRwgiQG,enr:-J24QDXyyxvQYsd0yfsN0cRr1lZ1N11zGTplMNlW4xNEc7LkPXh0NAJ9iSOVdRO95GPYAIc6xmyoCCG6_0JxdL3a0zaGAYiOoAjFgmlkgnY0gmlwhAPckbGHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJwoS7tzwxqXSyFL7g0JM-KWVbgvjfB8JA__T7yY_cYboN0Y3CCJAaDdWRwgiQG,enr:-J24QHmGyBwUZXIcsGYMaUqGGSl4CFdx9Tozu-vQCn5bHIQbR7On7dZbU61vYvfrJr30t0iahSqhc64J46MnUO2JvQaGAYiOoCKKgmlkgnY0gmlwhAPnCzSHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQINc4fSijfbNIiGhcgvwjsjxVFJHUstK9L1T8OTKUjgloN0Y3CCJAaDdWRwgiQG,enr:-J24QG3ypT4xSu0gjb5PABCmVxZqBjVw9ca7pvsI8jl4KATYAnxBmfkaIuEqy9sKvDHKuNCsy57WwK9wTt2aQgcaDDyGAYiOoGAXgmlkgnY0gmlwhDbGmZaHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQIeAK_--tcLEiu7HvoUlbV52MspE0uCocsx1f_rYvRenIN0Y3CCJAaDdWRwgiQG

# RETH CONFIGURATION
# ----------------
OP_RETH_DISABLE_DISCOVERY="false"
OP_RETH_DISABLE_TX_POOL_GOSSIP="true"
OP_RETH_OP_NETWORK="base"

# RPC CONFIGURATION (deprecated)
# ---------------
OP_NODE_RPC_ADDR=0.0.0.0
OP_NODE_RPC_PORT=8545

# GETH CACHE SETTINGS
# -----------------
GETH_CACHE="20480" # 20GB
GETH_CACHE_DATABASE="20" # 4GB
GETH_CACHE_GC="12"
GETH_CACHE_SNAPSHOT="24"
GETH_CACHE_TRIE="44"
OP_GETH_NET_RESTRICT="10.0.0.0/8"

# LOGGING & MONITORING
# ------------------
OP_NODE_LOG_LEVEL=info
OP_NODE_LOG_FORMAT="json"
OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
OP_NODE_METRICS_ENABLED="true"
OP_NODE_METRICS_ADDR=0.0.0.0
OP_NODE_METRICS_PORT="7300"

BASE_NODE_LOG_VERBOSITY=3
BASE_NODE_LOG_FORMAT="json"
BASE_NODE_METRICS_ENABLED="true"
BASE_NODE_METRICS_ADDR=0.0.0.0
BASE_NODE_METRICS_PORT="7300"
STATSD_ADDRESS="172.17.0.1"

# OPTIONAL SETTINGS
# ===============

# ETHSTATS MONITORING (OPTIONAL - UNCOMMENT TO ENABLE)
# OP_GETH_ETH_STATS=nodename:secret@host:port
# OP_NETHERMIND_ETHSTATS_ENABLED=true
# OP_NETHERMIND_ETHSTATS_NODE_NAME=NethermindNode
# OP_NETHERMIND_ETHSTATS_ENDPOINT=ethstats_endpoint

# TRUSTED RPC MODE (OPTIONAL - UNCOMMENT TO ENABLE) (deprecated)
# OP_NODE_L1_TRUST_RPC=true

# SNAP SYNC (OPTIONAL EXPERIMENTAL FEATURE - UNCOMMENT TO ENABLE)
# NOTE: This feature is experimental and may lead to syncing issues
# OP_GETH_BOOTNODES=enode://87a32fd13bd596b2ffca97020e31aef4ddcc1bbd4b95bb633d16c1329f654f34049ed240a36b449fda5e5225d70fe40bc667f53c304b71f8e68fc9d448690b51@3.231.138.188:30301,enode://ca21ea8f176adb2e229ce2d700830c844af0ea941a1d8152a9513b966fe525e809c3a6c73a2c18a12b74ed6ec4380edf91662778fe0b79f6a591236e49e176f9@184.72.129.189:30301,enode://acf4507a211ba7c1e52cdf4eef62cdc3c32e7c9c47998954f7ba024026f9a6b2150cd3f0b734d9c78e507ab70d59ba61dfe5c45e1078c7ad0775fb251d7735a2@3.220.145.177:30301,enode://8a5a5006159bf079d06a04e5eceab2a1ce6e0f721875b2a9c96905336219dbe14203d38f70f3754686a6324f786c2f9852d8c0dd3adac2d080f4db35efc678c5@3.231.11.52:30301,enode://cdadbe835308ad3557f9a1de8db411da1a260a98f8421d62da90e71da66e55e98aaa8e90aa7ce01b408a54e4bd2253d701218081ded3dbe5efbbc7b41d7cef79@54.198.153.150:30301
# OP_NETHERMIND_BOOTNODES=enode://87a32fd13bd596b2ffca97020e31aef4ddcc1bbd4b95bb633d16c1329f654f34049ed240a36b449fda5e5225d70fe40bc667f53c304b71f8e68fc9d448690b51@3.231.138.188:30301,enode://ca21ea8f176adb2e229ce2d700830c844af0ea941a1d8152a9513b966fe525e809c3a6c73a2c18a12b74ed6ec4380edf91662778fe0b79f6a591236e49e176f9@184.72.129.189:30301,enode://acf4507a211ba7c1e52cdf4eef62cdc3c32e7c9c47998954f7ba024026f9a6b2150cd3f0b734d9c78e507ab70d59ba61dfe5c45e1078c7ad0775fb251d7735a2@3.220.145.177:30301,enode://8a5a5006159bf079d06a04e5eceab2a1ce6e0f721875b2a9c96905336219dbe14203d38f70f3754686a6324f786c2f9852d8c0dd3adac2d080f4db35efc678c5@3.231.11.52:30301,enode://cdadbe835308ad3557f9a1de8db411da1a260a98f8421d62da90e71da66e55e98aaa8e90aa7ce01b408a54e4bd2253d701218081ded3dbe5efbbc7b41d7cef79@54.198.153.150:30301
# OP_GETH_SYNCMODE=snap

# FLASHBLOCKS (OPTIONAL - UNCOMMENT TO ENABLE)
#RETH_FB_WEBSOCKET_URL=wss://mainnet.flashblocks.base.org/ws

# PRUNING (OPTIONAL - UNCOMMENT TO ENABLE)
# NOTE: Set to any number of blocks you want, but it should be >10064
# NOTE: The node type that was chosen when first running a node cannot be changed after the initial sync. Turning Archive into Pruned, or Pruned into Full is not supported [source](https://reth.rs/run/faq/pruning/).
# NOTE: The pruned snapshots provided are set with a distance of 1_339_200 (~31 days).
# RETH_PRUNING_ARGS="--prune.senderrecovery.distance=50000 --prune.transactionlookup.distance=50000 --prune.receipts.distance=50000 --prune.accounthistory.distance=50000 --prune.storagehistory.distance=50000 --prune.bodies.distance=50000"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions