Linux
bitcoind 同步使用的 CPU 和頻寬非常少,而且非常慢
有沒有辦法提高同步速度。它在與 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。
- 確保您連接到足夠多的對等點(可能 >4)
- 確保您使用預設
-par
配置值或根據可用的 CPU 核心進行設置(通常是核心數 +1)- 確保您有快速的磁碟訪問(最好是 SSD)。如果磁碟訪問速度很慢(不要使用 NFS、NAS 等),它可能會破壞驗證過程(使您的 CPU 部分未使用)
- 嘗試更改預設數據庫記憶體大小。4GB的 A
-dbcache
確實可以顯著加快同步速度,但如果您的系統沒有足夠的 RAM 可以浪費,請不要過度分配。
在 raspi 上執行 bitcoind 是可能的,但速度很慢(我也這樣做過,在論壇中搜尋這裡,有使用者報告了經驗)。計算至少 2 週,直到整個區塊鏈被載入,使用 USB HDD 更是如此。
必須驗證塊中包含的每個 tx 一次,這需要時間 - 你可以看到你的程序 CPU 使用率為 50%。一開始塊很小,然後真的很快,但是在過去的幾年裡,塊已經滿了,這需要時間。
而且您還有一個 USB 硬碟 - bitcoind 必須查找已載入塊的數據,因此您的磁碟連接速度決定了過程持續時間。看看你的塊 I/O,這可能是最大的限制因素。
也許快速 SD 適配器卡 (>50MBytes/sec) 和修剪是更好的選擇。初始負載仍然會佔用 CPU 時間…