BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Paradigm:詳解負載測試工具Flood

深潮TechFlow
特邀专栏作者
2023-06-09 03:30
本文約1877字,閱讀全文需要約3分鐘
Flood 為區塊鏈節點的性能特徵提供了前所未有的視圖。
AI總結
展開
Flood 為區塊鏈節點的性能特徵提供了前所未有的視圖。

原文作者:《Introducing flood: a load testing tool for benchmarking EVM nodes

介紹

原文編譯:深潮TechFlow

介紹

原文作者:《

介紹

原文編譯:深潮TechFlow

介紹

負載測試是構建開發彈性高、性能優秀數據系統的關鍵步驟。然而,負載測試在加密貨幣基礎設施開發中並沒有得到廣泛應用。我們非常高興地引入了Flood,這是一款專門針對RPC 端點性能分析的基準測試工具,以填補這一空白。

最初,我們將Flood 作為一種工具來優化Reth,並了解其在不同負載下的延遲和吞吐量權衡。後來,我們發現除了Reth 之外,Flood 在優化許多類型的加密貨幣基礎設施性能方面具有重要的實用價值。

讓我們一起看看吧。

什麼是負載測試,為什麼它很重要?

負載測試是指測量系統受不同工作負載影響時性能特徵的變化。這種方法背後的關鍵見解是,當系統承受越來越多的負載時,吞吐量、延遲和錯誤率等性能指標通常會降低。因此,觀察系統在不同控制負載下的表現可以揭示系統瓶頸、故障模式和最終性能容量等信息。

通過負載測試獲得的信息可以用於許多方面。當系統正在開發時,負載測試可以突出顯示哪些系統瓶頸需要優先改進。當比較兩個系統時,負載測試可以揭示哪個系統更具性能或可靠性。作為其中一種特殊情況,負載測試可以比較單個系統的兩個不同硬件或軟件配置。在每種情況下,負載測試都可以實現高度優化的系統開發。

如何對區塊鏈節點進行負載測試?

我們的重點是RPC,這是通常用於從區塊鏈節點提取數據的通信協議。

目前,衡量RPC 性能最常見的方法不是負載測試,而是延遲測試:您向RPC 節點發送一個請求,並測量獲得響應所需的時間。各種RPC 提供商的延遲測試可以在各個網站上找到。不幸的是,這種類型的測試對節點性能提供了有限的視圖,因為它幾乎沒有揭示系統在負載下的行為。


  • 在區塊鏈中,工作負載可以通過兩種重要方式變化。經典的變量是大小。每秒10, 000 個請求的負載對系統的壓力比每秒100 個請求的負載更大。另一個負載變量是RPC 方法。對於從區塊鏈節點中提取的每種類型的數據,都有不同的RPC 方法。例如,塊vs 事務vs 日誌vs 踪跡。每個RPC 方法對系統施加不同類型的負載。一些RPC 方法受存儲IO 限制,而其他方法受CPU 限制。

  • 什麼是Flood?

  • 我們根據這些原則開發了一個負載測試工具,稱為Flood。與延遲測試不同,Flood 通過負載測試以及擴展測試覆蓋範圍到所有相關的RPC 方法,為RPC 端點的性能特徵提供了前所未有的視圖。


Flood 由三個基本組件組成:

調用生成引擎:Flood 生成大量參數化的RPC 調用集,隨機採樣分佈類似於不同類型的區塊鏈工作負載。 Flood 利用Paradigm Data Portal 數據集確保完全覆蓋區塊鏈歷史。

負載測試引擎:然後,Flood 編排Vegeta(用Go 編寫的高性能負載測試工具)使用這些調用進行對RPC 端點的負載測試。

報告引擎:Flood 在執行測試後,使用各種圖表、表格和報告總結結果。這些摘要易於集成到腳本和數據中。

每個組件都可以高度配置,使Flood 能夠涵蓋廣泛的測試場景和環境。


  • Flood 能做什麼?

  • 在Flood 的常規操作過程中,用戶指定要測試的RPC 方法以及RPC 端點列表。例如,您可能想測試Reth 的兩個版本的eth_getLogs 的性能。 Flood 將運行不同的控制負載來測試這些RPC 端點。例如,它可能以每秒1, 000、 2, 000、 4, 000 和8, 000 個請求的速度運行eth_getLogs。 Flood 然後將顯示表格和圖表,總結性能指標如何隨負載變化。輸出看起來像這樣:

  • 在負載下性能指標降級的特定方式提供了豐富的見解,可揭示系統瓶頸和最終性能容量。


 

除此之外,Flood 還提供了高級功能,以適應各種類型的高級用戶:

Flood 可以使用不同的負載測試計劃,包括:“壓力測試”(隨著時間的推移逐漸增加負載),“峰值測試”(大量突然的負載,然後是小負載)和“浸泡測試”(長時間運行負載)。

Flood 可以編排負載測試在每個RPC 節點上原生模式運行,以消除由網絡瓶頸引起的噪聲。


  • Flood 具有“相等性”測試模式,可檢查每個RPC 端點是否返回相同的響應。

  • 除了Reth 之外,我們認為Flood 將能夠幫助解決許多與RPC 節點有關的未解答的問題:

  • 結論


結論

當運行節點時,哪些硬件規格最重要?存儲IO 相對於RAM 速度、RAM 容量和CPU 速度的重要性如何? RAID 值得嗎?


Paradigm
歡迎加入Odaily官方社群