風險提示:防範以"虛擬貨幣""區塊鏈"名義進行非法集資的風險。——銀保監會等五部門
資訊
發現
搜索
登錄
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
查看行情

區塊鏈性能測試與優化-上篇

ZgTech
特邀专栏作者
2023-04-02 02:04
本文約2849字,閱讀全文需要約5分鐘
本篇文章目的是通過具體示例(cosmos-sdk SimApp),介紹完整的性能項目過程。

一級標題

一級標題

  • 一級標題

  • 大綱

  • 一級標題

一級標題

基本概念

區塊鏈的性能測試,方法論上與傳統的性能測試沒有不同。性能測試有很多混亂的概念,這裡我列出本文描述概念做一些定義。

二級標題

二級標題

  • 二級標題

  • 性能測試的定義

  • 性能測試是對系統或者服務的性能指標建立監控策略,在特定場景下執行測試,分析判斷性能瓶頸並調優,最終得出性能結果來評估系統或者服務的性能指標是否滿足既定值。這裡結合cosmos-sdk 的simapp 區塊鏈來解釋。

  • 1. 需要明確指標,一般指兩類指標: 技術指標、業務指標。技術指標一般是TPS,響應時間,資源利用率,對應到區塊鏈一般是指每秒可以處理多少筆交易?這些交易的響應時間或者統計結果是多少?在這種情況下系統使用的資源處於什麼狀態?期望滿足的業務指標,應該來源於生產環境統計,以cosmos-sdk 的生產應用cosmos-hub 為例,其現階段出塊時間大約6 秒,每個區塊中的交易數大多數小於10 。期望的業務指標設定為TPS 為100 是較為合理的。 (這麼低的TPS 其實是與cosmos-hub 的目標有關,因為其主要關注點在鏈的互操作性)。

  • 2. 測試模型: 是真實場景的抽象,描述業務模型是什麼樣的。以cosmos-hub 為例大致就是,分佈在全球的區塊鏈節點,在驗證者節點約500 個,活躍驗證者節點約為200 的情況下處理交易。測試時可以按比例抽象實際情況。

  • 3. 測試方案: 包括測試環境,測試數據,測試模型,性能指標等。對比區塊鏈系統的測試,就是確定測試架構,準備好如1000 個用戶,每個用戶餘額1000 stake 這樣的內容。

  • 7. 要有結果報告:報告內容當然就是實際的指標數據。

二級標題

  • 二級標題

  • 二級標題

  • 性能場景分類

  • 4. 異常性能場景:在強壓力之下,模擬異常。

二級標題

二級標題

  • 1. RT, Response Time

  • 2. HPS, Hits Per Second

  • 3. TPS, Transactions Per Second,二級標題

  • 4. QPS, Queries Per Second

  • 5. PV, Page View

  • 6. Throughput

  • 7. IOPS, Input/Output Operations Per Second

重要的性能指標

  • 性能測試的指標有很多,比如:

  • 二級標題

  • 二級標題

圖片

其他

  • 其他

  • 其他

  • 其他

  • 1. 一般需要在什麼時候做性能測試。

  • a. 項目上線前,估計系統承載能力

二級標題Why blockchain performance is hard to measure二級標題

延遲

延遲

  • 延遲

  • 延遲

  • 延遲的這段時間的起點和終點如何定義?

  • 1. 起點是用戶點擊提交還是交易到達內存池?

  • 二級標題

二級標題

吞吐量

基本工具

基本工具

二級標題

二級標題Jmeter二級標題

壓力工具

  • 壓力工具一般用

  • 或者特定應用專用測試工具如下:

Jmeter 支持的Sampler 支持有HTTP,對gRPC 協議的支持需要藉助插件jmeter-grpc-request

二級標題

二級標題Prometheus二級標題https://prometheus.io/assets/architecture.png監控工具

監控工具一般用cadvisor

圖片stress-ng圖片

圖片

一級標題

一級標題

一級標題

性能調優

圖片

二級標題

分析工具https://www.brendangregg.com/Perf/linux_perf_tools_full.png圖片

圖片

二級標題

磁盤IO 一般會導致系統瓶頸,磁盤IO 棧比較長,分析起來難度不小。熟悉IO 棧,有助於我們發現問題(https://www.thomas-krenn.com/en/wikiEN/images/c/c 2/Linux-storage-stack-diagram_v 6.2.pdf)

圖片

圖片

圖片

技術
開發者