以太坊geth同步自动关闭问题分析

问题场景

在启动以太坊geth同步数据的过程中会出现这样的问题,就是节点同步正常,日志没有报异常信息或者报出一些底层的类异常信息,随后geth节点进程自动关闭。

报异常信息类似于下面的异常:

geth sync goroutine 16678 [IO wait]:
……

goroutine 8 [chan receive, 4822 minutes]:
github.com/ethereum/go-ethereum/vendor/github.com/rjeczalik/notify.(*nonrecursiveTree).internal(0xc420064360, 0xc420064300)
    /home/bertrand/go-ethereum/build/_workspace/src/github.com/ethereum/go-ethereum/vendor/github.com/rjeczalik/notify/tree_nonrecursive.go:81 +0x94
created by github.com/ethereum/go-ethereum/vendor/github.com/rjeczalik/notify.newNonrecursiveTree
    /home/bertrand/go-ethereum/build/_workspace/src/github.com/ethereum/go-ethereum/vendor/github.com/rjeczalik/notify/tree_nonrecursive.go:30 +0x1ad

问题原因排查

遇到上面的问题,首先需要排查的geth节点部署的服务的配置情况,特别是内存情况。建议在节点同步数据时通过top命令观察一下内存情况。

引起此异常的主要原因是内存吃紧,导致oom-killer被触发。oom-killer会杀掉占用内存较高的进程,以确保系统不至于崩溃。

解决方案,首先是升级服务器内从;如果条件有限,可考虑建立或扩充swap分区。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏MYSQL轻松学

Mysql主从延迟解决办法

1.MIXED模式无索引或SQL慢 在从库上pager grep -v Sleep;show processlist 查看到正在执行的SQL。 解决方...

3445
来自专栏软件开发 -- 分享 互助 成长

信号量及PV原语

操作系统中进程互斥和同步的实现的一个最基本的方方是使用信号量和PV原语。 信号量S的物理意义:当S≥0的时候表示,某个资源可以使用的数量,当S<0的时候,其绝对...

1926
来自专栏我的博客

ab压力测试

ab -n 1000 -c 50 http://test.xxxx.com/www/ Document Path: /www/ Document Length...

2835
来自专栏LIN_ZONE

进程间通信的几种方式

注:本文参考操作系统课本,只是一些概念性的知识。 如需转载请注明出处:https://www.cnblogs.com/zhuchenglin/p/952219...

291
来自专栏java思维导图

缓存的正确使用方式,你都会了吗?

首先,缓存由于其适应高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。

991
来自专栏微信公众号:Java团长

分布式之数据库和缓存双写一致性方案解析

首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。

712
来自专栏Linyb极客之路

性能测试之压测中TPS上不去的几种原因分析

在压力测试中,有时候要模拟大量的用户请求,如果单位时间内传递的数据包过大,超过了带宽的传输能力,那么就会造成网络资源竞争,间接导致服务端接收到的请求数达不到服务...

1435
来自专栏Golang语言社区

动态内容缓存

4.1 缓存与速度 这里所说的动态内容缓存是自行实现的缓存机制,包括整页缓存、局部缓存、数据缓存等。 缓存的目的是把花费昂贵开销的计算结果保存起...

35411
来自专栏程序你好

SQL Server事务日志的初学者指南

683
来自专栏互联网大杂烩

Structs框架

Structs框架结构采用MVC设计模式,同时包含客户端(client),请求以及业务逻辑处理(Business Logic),而MVC模式主要由模型(Mode...

322

扫码关注云+社区