楼主描述这种现象,我也有发现,在目标服务器上的目录会比源服务器大。
据我个人猜测,目标服务器目录相比源服务器目录多出来的是目录和文件状态信息,比如文件是否发生过修改过,是否发生过文件的创建和删除。感谢楼主,提出这个问题,以前没仔细想,我也去查阅一下资料。
文件系统的block size的确可以影响文件的大小,但LVM是模拟出硬盘,如果用相同文件系统格式化的话,大小应该是一致的。挂着服务器同步以太坊区块,到400万block以后老是挂。我也是够虎逼的,其实第一次geth挂的时候看到了服务器打出来“Killed” ,我无视了 继续挂着搞。到后面就是几分钟挂一次,我手动重启也搞烦了,索性写了个定时任务1分钟检查一次geth进程挂了没有,挂了拉起了续命。好了,就是这个强行续命,搞得我后面几天都在错误的方向挣扎。
强行续命,还真把区块同步续到了99%(差不多), 但是到了这里,currentBlock开始不动了,knownStates每次一挂重启就变成0再看着knownStates慢慢涨到100万左右又挂,又续命重启变成0 无限循环。。。
经过上面geth一系列捣蛋的跳数字,去geth的issue里面看,发现还真不少和我一样问题的。照着里面有人的方法都失败了。
只有自己来了
从哪开始异常的? 刚开始我以为killed是geth自己输出的, 思考了一下:这好像是kill 进程的输出。。。 然后:cat /var/log/message |grep geth。
尼玛,原来真是触发OOM了。日了狗了, 我同事还给我说人在树莓派上都能装上, 我这几天都怀疑人生了。
问题找到了,内存不够,两种方案 1 换台高配机器 2 划分/扩充swap分区(用来放内存溢出的)
我选2:
1 先看看已经存在的swap分区(有可能什么没有: sudo swapon --show
2 看下哪里空间够:df -lh
3 我选的根目录创建一个1G文件: sudo fallocate -l 1G /swapfile
4 sudo mkswap /swapfile
5使用:sudo swapon /swapfile
6看看生效没:sudo swapon --show 和 free -h
对了,我的geth版本是170, 因为 173/2/1我都试遍了。
没了,不提。如果你的空间服务商频繁地、不定期地通知您修改域名解析的指向IP,或者干脆强制您必须使用cname方式解析您的域名,那么你就要留意了。这种情况一般发生在使用海外服务器上,原因可能有二:1、IP被封——服务器IP在国内被封,无法正常访问了; 2、服务商更换服务器。\r\n其中第二项即服务商更换服务器这种情况比较少见。一般来说,出现这种情况多见于该服务器是个人方式运营的,或运营海外主机没多久的网络公司。\r\n而对于第一种原因,则是几乎所有海外服务商都会经常发生的事情。海外空间运营绝不同于国内虚拟主机方式,没有相当的海外主机运营经验,绝对是很难做好海外主机服务的。\r\n这里的IP被封仅仅限于在中国大陆范围内,即被封的只是中国大陆,大陆之外访问完全正常。\r\n那么为什么会频频被封呢究其原因主要是服务商缺乏内容管理大陆的互联网环境已经基本很干净了,而大量的非法网站在国内没有了出路,就只有另寻捷径,把网站放置到中国以外的地方去。\r\n于是乎大量的个人非法类网站,。懂英语的会找海外本土的大服务商,比如著名的Godaddy。但是,这仍然存在问题:海外本土服务商的无法运行他们的网站,主要表现是乱码、功能不正常,这是由于其字符集引起的。\r\n这样,90%的国内非法网站运营便会咨询中国本土的海外主机运营商,而问题是几乎所有的运营商都没有对网站内容进行定期检查与管理,更谈不上采用非法内容拦截系统。\r\n这样的直接后果便是,中国GFW检测到国际出口带宽上的非法内容时,便会将相应的IP给封掉(Block),这样中国大陆以内便无法再访问这个IP上的所有网站。\r\n这就是您的海外网站频繁被通知换IP的原因。\r\n那么更换IP对您的网站是否有影响呢\r\n搜索引擎如百度、谷歌、搜狐、MSN Live等,当发现您的网站更换了IP后,便会对您的网站进行重新索引,造成短时间内的收录减少,排名下降! 简单些说,经常更换IP,说明您的网站不稳定,不值得搜索引擎信任!\r\n尤为严重的是,当更换后的IP被上述搜索引擎列入作弊黑名单时,您的网站将会失去所有的收录和收录机会,搜索引擎中完全搜索不到您的网站,您的网站将变成一个孤岛!\r\n所以使用海外主机的朋友一定要注意选取一个有经验的、比较著名的大服务商,尽量避免上面的情况出现。首先,说明一下LFS kernel panic -not syncing :VFS:Unable to mount root fs on Unknown-block(0,0)出现的几个可能原因:
1/etc/fstab文件配置错误,此配置文件是记录硬盘分区的文件,配置错了,当然就有可能出现Unable to mount root fs啦~~~解决这问题的办法就是找一张LIVECD启动了系统,然后修改此文件内容,很简单的,只要用文本编辑器打开了这文件,然后认真研究一下就明白该怎样做,如果出现要uuid之类的东东,那就到/dev/disk/by-uuid/目录下找,只要使得各挂载点与分区对应即可。
2menulst。/boot/grub/menulst 此文件出错也是有可能的。当出现这错误的时候,不妨先看看此文件配置是否正确。诸如sda与hda的问题,sda不行,就试下hda呗~~~
3initrd没有启动。内核载入内存后,某些系统会执行initrd文件的,如果没有启动,就会出现本文要解决的那问题。当然LFS是没有做initrd文件的,所以忽略此问题。如果您的出错原因在这,那你就用LIVECD启动了,然后到/boot/目录下,看看有没有initrd相似的文件,有的话,在menulst文件的启动项中加入initrd (hdx,y)/boot/initrd 这样就能解决了~~~
4内核编译的时候没有添加相应的硬件模块~~~这问题不好说,因为编译一个内核真的太不简单了~~~哈哈~~~有个必定能编译成功的办法,就是,假如你使用的某个版本的linux,把/proc/configgz文件复制出来,解压,然后重命名为config(注意前面有个点哦~~~)。复制到将要编译的内核源文件中,然后直接make,当然,如果你要在内核中增加其他模块的话,就先make menuconfig。当然,选项只能是只增不减罗~~~哈哈~~~(说明一下,这方法我没测试过,但是按道理来说是可以的,至少同一版本的内核是肯定成功的,除非不同版本之间的config文件格式不一样了~~~)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)