背景
当链上出现大量的交易时,由于机器IO性能不足,拖慢节点执行区块的速度,导致节点出现无法追上最新区块现象
IOPS和吞吐量是什么
IOPS:是一个用于计算机存储设备性能测试的量测方式,可以视为是每秒的I/O读写次数。
吞吐量:每秒磁盘I/O的流量,即磁盘写入加上读出的数据的大小。
综上,磁盘I/O、IOPS和吞吐量的关系公式为:
吞吐量 = IOPS * I/O大小
从上述公式可以看出,磁盘I/O越大,IOPS越高,那么磁盘那么每秒I/O的吞吐量就越高,IOPS和吞吐量的数值越高越好。
如何定位区块落后是由于IOPS和吞吐量过低导致的
两个方法:
- 打开节点日志文件,查看persist的耗时,平均每个块的persist超过3s,应怀疑是IOPS配置不足引起的
persist<6948ms>
- 查看节点机器的IOPS和吞吐量配置,IOPS须大于等于16000,吞吐量须大于等于1000
解决方案
- 升级节点机器的IOPS和吞吐量配置,推荐数值为 16000和1000,越高越好
各云服务商的IOPS和吞吐量配置方法不同,请根据自己节点所部署的云服务商指引进行升级