具体体现:Win10任务管理器里,可以直接看到Bitcoin Core贡献了100%的磁盘使用率。3 y6 [# }3 H4 R A/ O1 Z7 X6 u
如果你有大SSD,那瓶颈可能在别的地方吧,比如CPU/网络/内存等。
哦对了,内存也是越大越好,我的机器有16GB内存,哈哈。顺便说一下,CPU太渣也可能成为瓶颈哦,毕竟要计算hash、验证数字签名。这方面似乎是高主频比多核更有帮助?我没仔细验证过。
(额,说来说去好像就剩显卡没啥需求,哈哈)" C3 |( {0 D& a& I7 U9 W
2.先说说相对方便傻瓜的,可以试试PrimoCache这个软件,用它开一个缓存,效果还是蛮明显的。不过这个软件是收费的,有试用时间限制。
我开的是read/write混合缓存,延迟写入调到INFINITE,记得软件显示的命中率有40%吧。也许有大神知道怎么设置参数能更高效,望赐教。
- j# H! f! p1 P: `" a/ Q7 I
4 ^1 k9 I5 b% F- p
3.另一个优化途径:chainstate这个目录是被艹得比较狠的地方,这一点Pieter Wuille大神也提到过(https://bitcoin.stackexchange.co ... #comment56388_48618)
如果你有SSD,可以把chainstate目录拷到SSD,然后利用NTFS Junction建立一个链接。
如果你没有SSD,但是有大内存,可以用ImDisk开一个内存盘(RAMDisk)。目前的chainstate目录大概占用3GB,所以RAMDisk开4GB的内存盘应该就够用了。0 ~; E, q- S% `5 J# o
比如,你的全节点数据目录在D:\Bitcoin\data,那么:, [% l! c$ X: L9 I# x7 O' [5 ~, G2 _6 J
- 1.先关掉全节点
- 2.然后把D:\Bitcoin\data\chainstate整个复制到SSD/内存盘(这里举例用盘符S:),比如复制到S:\Bitcoin\chainstate
- 3.复制完后,删掉D:\Bitcoin\data\chainstate
- 4.打开D:\Bitcoin\data,按住SHIFT,右键点空白处,有在此打开命令提示符/在此打开PowerShell窗口,点开
- 5.输入命令,创建链接:
- mklink /j chainstate S:\Bitcoin\chainstate
- 6.确认无误后,再启动全节点" i" M( u! M, E: Q. f; m9 _2 c
还有安全警告:内存盘一旦掉电就会丢失所有数据,所以,除非你用的是笔记本电脑,有电池,或者有UPS后备电源,否则慎用。( r$ [* i: a- e+ f- a
0 a9 r6 V# Q" n9 C& F8 M u
* R# o/ U+ H% y. U$ a2 e
4.上面这些方法应该不算正道……正道是把数据库缓存(钱包图形界面的设置里,对应注册表HKEY_CURRENT_USER\Software\Bitcoin\Bitcoin-Qt\nDatabaseCache,十进制代表缓存MB数)尽量调大。2 R% d) S. x4 C$ B- w
4 _; L7 L% u& N1 g0 {. G2 O5 Q: {3 W
% D4 f( \6 }5 d( _3 v& }
5.这里还有提到其他优化方法:# i5 {+ O' G; Y. X n" W
https://bitcoin.stackexchange.co ... n-qt-very-slow-0-01
比如,如果你是从零开始同步的,可以暂时设置-listen=0禁止传入连接,等到同步完再去掉这个参数重启。. V$ f- q. {, x' }& _8 ~% N0 r
$ h% _' X- ~: r% S7 w, ]) @