使用歸檔修剪模式以奇偶校驗方式同步鏈的速度
我正在使用 parity v1.7.0-beta-5f2cabd-20170727 並在存檔模式下與乙太坊鏈同步,以保持智能合約的所有狀態。我用來啟動奇偶校驗的命令是
奇偶校驗——修剪檔案
由於鏈的大小,我最近將乙太坊鏈的奇偶校驗數據庫的位置從電腦的內部 ssd 移動到了外部硬碟。之後,當我啟動 parity 時,我發現自己無法趕上鍊條(幾天前我關閉了我的電腦,然後幾天前才開始使用 hols)。儘管客戶端成功連接到對等點並繼續進行同步,但它能夠獲取塊的速率與有效探勘塊的速率幾乎相同,因此我總是“落後”。
因此,我的問題如下
- 奇偶校驗存檔模式下同步速度的驅動因素是什麼?那是CPU嗎?磁碟(硬碟與固態硬碟)?記憶體(我也嘗試將記憶體大小增加到 4GB,但沒有幫助)?網路(我有一個快速的連接,直到最近才足夠)?
2)我從 ssd 到 hdd 的移動會導致這種性能下降嗎?過去我追趕上沒有問題,所以這對我來說是一個新問題。
3)或者是否存在諸如完整鏈的“檢查點”之類的東西,我可以直接從受信任的來源下載(也許像奇偶校驗技術本身)?
4)也許與問題本身正交,但我需要的是智能合約在執行時記錄的事件日誌。當我同步鏈以獲得這些狀態時,我真的有必要保持完整狀態嗎?
- 假設問題出在驅動器的 I/O 上。有沒有辦法讓我將大部分鏈數據庫保持在慢速驅動器(如外部硬碟)上,而我的 ssd 僅用於執行最近塊的同步(如最後 100000 就足以滿足我的目的)?
非常感謝您的見解!
感謝您接受執行完整存檔節點的挑戰!:D
- 奇偶校驗存檔模式下同步速度的驅動因素是什麼?那是CPU嗎?磁碟(硬碟與固態硬碟)?記憶體(我也嘗試將記憶體大小增加到 4GB,但沒有幫助)?網路(我有一個快速的連接,直到最近才足夠)?
主要瓶頸是磁碟 I/O。其次是用於記憶體的可用記憶體,其次是頻寬,然後是 CPU。但通常它會分解為 I/O 問題。而且由於您使用的是 HDD,這可能已經是您的關鍵問題。您可以通過執行來微調數據庫
--db-compaction hdd
。此外,您可以根據可用記憶體將記憶體增加到 4GB--cache-size 4096
甚至更多,這可能會減少一些IO 活動。2)我從 ssd 到 hdd 的移動會導致這種性能下降嗎?過去我追趕上沒有問題,所以這對我來說是一個新問題。
是的,我擔心您在 HDD 上同步存檔時運氣不佳。
3)或者是否存在諸如完整鏈的“檢查點”之類的東西,我可以直接從受信任的來源下載(也許像奇偶校驗技術本身)?
不 :)
但是,如果可能的話,您可以獲得一台帶有快閃記憶體驅動器或快速 SSD 和巨大記憶體的快速機器,進行完整的存檔同步,並在完成後將數據庫複製到您的 HDD。
4)也許與問題本身正交,但我需要的是智能合約在執行時記錄的事件日誌。當我同步鏈以獲得這些狀態時,我真的有必要保持完整狀態嗎?
不確定我是否可以直接回答這個問題,但如果您正在查看未來的事件,您可以簡單地扭曲同步到最新的塊並為所有未來的塊啟用存檔修剪模式。
- 假設問題出在驅動器的 I/O 上。有沒有辦法讓我將大部分鏈數據庫保持在慢速驅動器(如外部硬碟)上,而我的 ssd 僅用於執行最近塊的同步(如最後 100000 就足以滿足我的目的)?
不是我知道的。如果可能,請關注https://github.com/paritytech/parity/issues/6280 。