一、在启动rpc节点时建议带上一些性能优化的参数,可以避免节点同步区块慢等问题。具体参数如下:
注意升级到v0.19.17.2版本后,参数如下:
1、以二进制形式启动的节点,在exchaind start命令中增加以下参数:
--max-open=10000
--disable-abci-query-mutex=1
--fast-query=1
--enable-bloom-filter=1
--mempool.size=10000
--mempool.recheck=0
--mempool.force_recheck_gap=2000
--iavl-cache-size=1000000
2、以docker方式启动的节点,在docker run命令中增加以下参数:
--env OKEXCHAIN_MAX_OPEN=10000
--env OKEXCHAIN_DISABLE_ABCI_QUERY_MUTEX=1
--env OKEXCHAIN_FAST_QUERY=1
--env OKEXCHAIN_ENABLE_BLOOM_FILTER=1
--env OKEXCHAIN_MEMPOOL_SIZE=10000
--env OKEXCHAIN_MEMPOOL_RECHECK=0
--env OKEXCHAIN_MEMPOOL_FORCE_RECHECK_GAP=2000
--env OKEXCHAIN_IAVL_CACHE_SIZE=1000000
v0.19.17.2版本之前的配置,参数如下
1、以二进制形式启动的节点,在exchaind start命令中增加以下参数:
--max-open=10000
--close-mutex=1
--fast-query=1
--enable-bloom-filter=1
--mempool.size=10000
--mempool.recheck=0
--mempool.force_recheck_gap=2000
--iavl-cache-size=1000000
2、以docker方式启动的节点,在docker run命令中增加以下参数:
--env OKEXCHAIN_MAX_OPEN=10000
--env OKEXCHAIN_CLOSE_MUTEX=1
--env OKEXCHAIN_FAST_QUERY=1
--env OKEXCHAIN_ENABLE_BLOOM_FILTER=1
--env OKEXCHAIN_MEMPOOL_SIZE=10000
--env OKEXCHAIN_MEMPOOL_RECHECK=0
--env OKEXCHAIN_MEMPOOL_FORCE_RECHECK_GAP=2000
--env OKEXCHAIN_IAVL_CACHE_SIZE=1000000
二、性能参数含义解释
- --max-open=10000 最大连接数,默认值1000,增加该值可以提供rpc服务能够接收的连接数。
- --disable-abci-query-mutex=1(v0.19.17.2版本之前使用的--close-mutex=1 已经废弃) abci query中的锁开关,默认值为false,改为true后可以提升查询性能
- --fast-query=1 快速查询模式开关,默认值为关闭,打开后查询数据会额外记录到watch.db,提升查询性能
- --enable-bloom-filter=1 bloom filter开关,默认值为关闭,打开可以提升eth_getLogs查询性能_
- --mempool.size=10000 设置mempool大小,默认值2000,增加该值可以提高mempool中存储
tx数量。
- --mempool.recheck=0 设置mempool recheck开关,默认值为打开,关闭可以减少recheck消耗的性能
- --mempool.force_recheck_gap=2000 设置mempool强制进行recheck的区块间隔数,默认值200,增大该值可以减少recheck
次数,提升性能,但是设置过大可能会导致mempool中积压过多无效的交易。
- --iavl-cache-size=1000000 设置iavl树缓存大小,默认值1000000,增加该值可以减少磁盘读取,提升执行速度,但是会占用更多内存,可根据机器实际内存占用情况调整。
- --pruning=everything/nothing。pruning参数详细配置,请查看