Linux

bitcoind 同步使用的 CPU 和頻寬非常少,而且非常慢

  • March 21, 2018

有沒有辦法提高同步速度。它在與 USB 硬碟連接的 raspberrypi 上以單執行緒執行。

最佳

top - 13:58:12 up 32 min,  2 users,  load average: 2.64, 1.74, 0.80
Tasks: 138 total,   1 running, 137 sleeping,   0 stopped,   0 zombie
%Cpu(s): 10.1 us,  2.6 sy,  0.0 ni, 56.3 id, 30.9 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :   947732 total,   101584 free,   239716 used,   606432 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   623092 avail Mem 

 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
1594 necktwi   20   0  345160 198200   7864 S  50.8 20.9   1:33.10 bitcoind 

網豬

NetHogs version 0.8.1

   PID USER     PROGRAM                    DEV        SENT      RECEIVED       
  1594 necktwi  bitcoind                   enxb82     0.234       1.388 KB/sec

實際上,我的頻寬為 6MBps。

  1. 確保您連接到足夠多的對等點(可能 >4)
  2. 確保您使用預設-par配置值或根據可用的 CPU 核心進行設置(通常是核心數 +1)
  3. 確保您有快速的磁碟訪問(最好是 SSD)。如果磁碟訪問速度很慢(不要使用 NFS、NAS 等),它可能會破壞驗證過程(使您的 CPU 部分未使用)
  4. 嘗試更改預設數據庫記憶體大小。4GB的 A-dbcache確實可以顯著加快同步速度,但如果您的系統沒有足夠的 RAM 可以浪費,請不要過度分配。

在 raspi 上執行 bitcoind 是可能的,但速度很慢(我也這樣做過,在論壇中搜尋這裡,有使用者報告了經驗)。計算至少 2 週,直到整個區塊鏈被載入,使用 USB HDD 更是如此。

必須驗證塊中包含的每個 tx 一次,這需要時間 - 你可以看到你的程序 CPU 使用率為 50%。一開始塊很小,然後真的很快,但是在過去的幾年裡,塊已經滿了,這需要時間。

而且您還有一個 USB 硬碟 - bitcoind 必須查找已載入塊的數據,因此您的磁碟連接速度決定了過程持續時間。看看你的塊 I/O,這可能是最大的限制因素。

也許快速 SD 適配器卡 (>50MBytes/sec) 和修剪是更好的選擇。初始負載仍然會佔用 CPU 時間…

引用自:https://bitcoin.stackexchange.com/questions/68782