分享 solana 节点初始化耗时和追块/落后块的优化技巧

wuaoxiang · 2024年12月03日 · 203 次阅读

solana 节点初始化过程

  • 13:00:31 准备读 ledger snapshot
  • 13:03:00 (3 分钟)snapshot 读取完毕
  • 13:06:00 (6 分钟)incremental snapshot 读取完毕且 solana_accounts_db 索引建立完毕
  • 13:19:02 (13 分钟) 从账本 bank(状态快照) 中重建出所有账户 [耗时非常久]

重建账户数据完成之后基本上 rpc 服务完成初始化完成了可以 getSlot rpc 方法调用了

这时候可以用 grpc 客户端查询 slot 了

root@solana:~# ./client-ubuntu-22.04 -e http://127.0.0.1:60003 get-slot
[2024-12-03T13:32:47Z INFO  client] Connected
[2024-12-03T13:32:47Z INFO  client] response: GetSlotResponse { slot: 305155526 }

追踪追块进度

# solana catchup --our-localhost 60001
⠙ 3188 slot(s) behind (us:305154679 them:305157867), our node is gaining at 0.2 slots/second (AVG: 0.3 slots/second, ETA: slot 305183903 in 2h 57m 7s)

初始化完成后 落后了 3200 个区块 (slot),按照 0.4 个 slot 计算大约是 21 分钟,跟之前统计的各个阶段初始化耗时约 20 分钟接近

追不上块的解决方案

我 12*32=384G 内存 AMD EPYC 9254 机器开启两个索引之后追不上块,每秒落后 0.2 个区块,后来禁用掉黄石 grpc 和索引花了 5-6 小时完成区块同数据步

  • 禁用黄石 grpc
  • 禁用账户数据索引
  • CPU 超频,linux 内核 ACPI 电源模块调参
  • 检查下 systemd 配置有没有放开 fd 限制
  • 禁用 swap 网络,内存,硬盘 一些调优参数有没有开
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号