Skip to content

磁盤使用優化

自定義配置設置以降低驗證器節點的磁盤要求。

區塊鏈數據庫往往會隨著時間的推移而增長,這取決於例如關於區塊速度和交易金額。 對於 Daodst,我們談論的是前兩週接近 100GB 的磁盤使用量。

很少有配置可以顯著減少所需的磁盤使用量。 其中一些更改只有在您進行配置並從使用它們開始同步時才會完全生效。

索引

如果不需要從特定節點查詢交易,可以禁用索引。在 config.toml 中進行設置

indexer = "null"

如果您在已經同步的節點上執行此操作,則收集的索引不會自動清除,您需要手動將其刪除。 該索引位於名為 data/tx_index.db/ 的數據庫目錄下。

狀態同步快照

我相信這在 Daodst 上默認是禁用的,但無論如何都會在這裡列出。在 app.toml

snapshot-interval = 0

請注意,如果在網絡上啟用了狀態同步並且工作正常,它將允許一個人在幾分鐘內同步一個新節點。但是這個節點不會有歷史。

配置修剪

默認情況下,每 500 個狀態保留一次,最後 100 個狀態保留。 從長遠來看,這會消耗大量磁盤空間,可以通過以下自定義配置進行優化:

pruning = "custom"
pruning-keep-recent = "100"
pruning-keep-every = "0"
pruning-interval = "10"

配置 pruning-keep-recent = "0" 聽起來很誘人,但如果 stcd 因任何原因被殺死,這將有數據庫損壞的風險。 因此,建議保留少數最新狀態。

日誌記錄

默認情況下,日誌記錄級別設置為 info,這會產生大量日誌。 當啟動時看到節點開始正確同步時,此日誌級別可能很好。 但是,在您看到同步順利進行後,您可以將日誌級別降低到 warn(或 error)。 在 config.toml 上設置以下內容。

log_level = "warn"

還要確保您的日誌輪換配置正確。

結果

以下是 Daodst 測試網兩週後的磁盤使用情況。 默認配置導致磁盤使用量為 90GB。

5.3G    ./state.db
70G     ./application.db
20K     ./snapshots/metadata.db
24K     ./snapshots
9.0G    ./blockstore.db
20K     ./evidence.db
1018M   ./cs.wal
4.7G    ./tx_index.db
90G     .

此優化配置已將磁盤使用量減少到 17 GB。

17G     .
1.1G    ./cs.wal
946M    ./application.db
20K     ./evidence.db
9.1G    ./blockstore.db
24K     ./snapshots
20K     ./snapshots/metadata.db
5.3G    ./state.db