问题:根据观察进程使用系统性能,和日志 ,发现geth 命令使用内存逐渐增长,导致内存溢出,系统杀死进程
解决方案:
1:增加节点服务器硬件性能
2:划分/扩充swap分区(用来放内存溢出的)
实现步骤:
- 查看下系统是否配置过分区
swapon -s
(下图 根下面的 swapGeth 是我自己创建的swap文件,系统如果未配置,则无返回)
也可以使用free -m
来查看系统的整体内存使用情况,这里可以看到内存和swap的使用状态(显示单位为MB)图片里swap 对应的total 列 有值
2. 创建自己的swap文件,文件大小一般情况为内存的两倍, 我选择的是根目录, 所以 使用命令 sudo fallocate -l 16G /swapGeth
查看文件大小 使用 ls -lh /swapGeth
3. 启用swapGeth 这个文件,为了保证服务器的安全性,可以修改下文件的权限 命令供参考 sudo chmod 600 /swapGeth
,其次输入 sudo mkswap /swapGeth
此命名用于告诉系统此文件用于swap
4. 让swapGeth 永久生效 编辑 /etc/fstab 这个文件 ,在末尾加入一行 /swapGeth swap swap sw 0 0
然后保存退出就可以了
5. swapon /swapGeth
启用