全节点钱包同步太慢问题,以及缓解这个问题的“怪招”

2018-02-24 01:17:44 +08:00
 acess
环境:Win10 x64,RAM 16GB
Bitcoin Core 0.15.1 x64
数据目录在 HDD 上,启用 txindex

本来启动一次钱包就够慢了,需要几分钟才能进界面,下载、验证区块看上去更是慢得让人抓狂……差不多一分钟才能验证一个区块。
用性能监视器看了一下,chainstate 和 blocks\state 两个目录的读写似乎非常频繁。
我猜是系统(或者 Bitcoin Core)比较笨,没有好好利用内存来缓存。
但是 state 目录似乎太大了,十几 GB。只有 chainstate 目录还不是太大,只有 3GB。
于是,我试了这个蛋疼的折腾方法:

1.在性能监视器里转到 CPU 选项卡,然后找到 bitcoin-qt.exe ,右键暂停进程;
2.用 cmd 把 chainstate 下的所有文件读一遍:
cd Bitcoin_data\chainstate
type *.* > nul 2> nul
大概需要二到五分钟执行完。毕竟是辣鸡 HDD 嘛。碎片整理一下看上去也能快一些。
3.这样文件差不多都被系统缓存了(任务管理器的内存里也能看到“已缓存”升高了),这个时候回到资源监视器,右键 bitcoin-qt.exe ,恢复运行。

效果貌似还是不错的……硬盘灯从常亮变成闪烁,区块验证时间也缩短到几秒钟到十几秒了。

也许用 SSD 当缓存会更快?我只知道有 PrimoCache 软件可以这么做,我还没试。

搜了一下,好像也有人把 chainstate 目录直接挪到 SSD 的。

还有设备管理器-硬盘属性里的写入缓存刷新,不知道关掉它有没有效果(不过关了风险就大了吧,万一异常关机了呢?不知道会不会损坏数据)。

此外,不知道对于从零开始同步的情况,又该采取什么策略?
651 次点击
所在节点    Bitcoin
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/432076

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX