V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
acess
V2EX  ›  Bitcoin

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

  •  
  •   acess · 2018-02-24 01:17:44 +08:00 via Android · 648 次点击
    这是一个创建于 2468 天前的主题,其中的信息可能已经有所发展或是发生改变。
    环境: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 的。

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

    此外,不知道对于从零开始同步的情况,又该采取什么策略?
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2703 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:39 · PVG 23:39 · LAX 07:39 · JFK 10:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.