钱包 请教 EOS 的 nodeos 节点,rpc 请求过慢问题

sugeladi · January 28, 2020 · Last by sugeladi replied at March 14, 2020 · 739 hits

大家,新年好,我这边关于 nodeo 遇到一个问题,我现在通过 rpc 请求 getinfo 接口,发现有时候需要 20s 以上。(自己通过排查机器的 cpu 使用情况使用 htop 工具,发现全部用在了同一个 cpu 上,由于 nodeos 单线程的,无法使用多核资源优化它,(我的服务器配置是 8C32G),CPU 的主频是 8 Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz)

我看 github 上有 https://github.com/EOSIO/eos/issues/7504 ,但是我本地已经同步到最新区块,但是还是 20 多秒返回一个请求,请教各位,有遇到过此种情况的嘛?

time curl --request GET --url http://127.0.0.1:8888/v1/chain/get_info --header 'content-type: application/json' | jq { "server_version": "3e808f5c", "chain_id": "aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906", "head_block_num": 102286248, "last_irreversible_block_num": 102285924, "last_irreversible_block_id": "0618c26442839697b10d26caa6c0fc3c9393c55803ab3a837bfe35788ecee150", "head_block_id": "0618c3a807c40a330977a89f8da0710a1515139cdd7cdaf95ad8d7fc5f852df8", "head_block_time": "2020-01-28T10:01:45.500", "head_block_producer": "hashfineosio", "virtual_block_cpu_limit": 200000, "virtual_block_net_limit": 1048576000, "block_cpu_limit": 199900, "block_net_limit": 1048576, "server_version_string": "v1.8.9", "fork_db_head_block_num": 102286248, "fork_db_head_block_id": "0618c3a807c40a330977a89f8da0710a1515139cdd7cdaf95ad8d7fc5f852df8" }

real 0m26.854s user 0m0.005s sys 0m0.007s

看下当前 nodeos 的 CPU 占用, 通常的话 是当前节点 作为了 mongo 的同步节点,同步区块时做块数据的解析,并将对应的数据写入 mongo ,但 mongo plugin 是主线程操作的,会影响 nodeos 其余的操作响应

rpc 总 timeout 的问题解决了,通过 github 上 issues 升级到了 2.0.2 版本,这样每次 rpc 再 5 秒之内

然后 我又遇到另外一个问题 https://github.com/EOSIO/eos/issues/8443 ,按照建议 我配置了 http-max-response-time-ms 也一并解决了

sugeladi 关闭了讨论 10 Feb 15:14
sugeladi 重新开启了讨论 10 Feb 15:14
Surou 回复

当时的情况是,我的机器是 8 核 CPU,nodeos 只跑在一个 cpu 核上并且是 100% 状态。 我这边的节点并没有开启 mongo plugin. 最后通过升级 eos 节点版本解决

sugeladi 关闭了讨论 10 Feb 15:16
sugeladi 重新开启了讨论 14 Mar 14:54

再来补充一下解决结果,最近几天发现有时候 rpc 请求不稳定,找了 github 的 issue https://github.com/EOSIO/eos/issues/8588

按照提示,又新增了配置如下

wasm-runtime = eos-vm-jit
eos-vm-oc-enable = true

效果提升太显著了,每次 rpc 请求在 10 毫秒以内

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up