本篇文章目的是通過具體示例,介紹完整的性能項目過程,具體內容介紹區塊鏈性能測試中使用的:1.?基本概念
2.?常用工具
3.?性能調優的常見情況
這?3?塊內容涵蓋的內容非常多,每一個內容都有很多書籍和文章介紹,詳細的內容不會出現在本文中。
區塊鏈的性能測試,方法論上與傳統的性能測試沒有不同。性能測試有很多混亂的概念,這里我列出本文描述概念做一些定義。性能測試是對系統或者服務的性能指標建立監控策略,在特定場景下執行測試,分析判斷性能瓶頸并調優,最終得出性能結果來評估系統或者服務的性能指標是否滿足既定值。這里結合?cosmos-sdk?的?simapp?區塊鏈來解釋。1.需要明確指標,一般指兩類指標:技術指標、業務指標。技術指標一般是?TPS,響應時間,資源利用率,對應到區塊鏈一般是指每秒可以處理多少筆交易?這些交易的響應時間或者統計結果是多少?在這種情況下系統使用的資源處于什么狀態?期望滿足的業務指標,應該來源于生產環境統計,以?cosmos-sdk?的生產應用?cosmos-hub?為例,其現階段出塊時間大約?6?秒,每個區塊中的交易數大多數小于?10?。期望的業務指標設定為?TPS?為?100?是較為合理的。。
2.測試模型:是真實場景的抽象,描述業務模型是什么樣的。以?cosmos-hub?為例大致就是,分布在全球的區塊鏈節點,在驗證者節點約?500?個,活躍驗證者節點約為?200?的情況下處理交易。測試時可以按比例抽象實際情況。
騰訊云區塊鏈總經理李力:區塊鏈為數字經濟提供可信的價值網絡:11月4日,2021騰訊數字生態大會在武漢召開。在區塊鏈活動專場中,騰訊云區塊鏈總經理李力表示,區塊鏈是產業互聯網的連接器,為數字經濟提供可信的價值網絡,包括數據聯通,技術聯通,價值聯通,產業聯通。開放共享,區塊鏈助力端到端業務無邊界協同;云鏈結合,區塊鏈助力數字經濟新生態;區塊鏈可助力政府數字化轉型新趨勢,實現鏈上政務;區塊鏈助力教育領域建設數字化終身學習環境,實現鏈上教育。[2021/11/4 6:31:41]
3.測試方案:包括測試環境,測試數據,測試模型,性能指標等。對比區塊鏈系統的測試,就是確定測試架構,準備好如?1000?個用戶,每個用戶余額?1000?stake?這樣的內容。
4.需要有監控:監控的對象有壓力機、區塊鏈節點、其他如負載均衡服務器等。云原生時代的監控一般是?KubernetesPrometheusGrafana。
5.需要測試條件:硬件環境,測試執行策略等。例如:4?C?8?G,前?60?秒,每秒增加?10?個線程。
6.需要有場景:指性能場景,正式化的描述是:在既定的環境、既定的數據、既定的執行策略、既定的監控之下,執行性能腳本,同時觀察系統各層級的性能狀態參數變化,并實時判斷分析場景是否符合預期。性能場景,有時被稱為測試用例其實是不對的。
戚湧:區塊鏈有可能成為“萬物互聯”的最底層協議和秩序互聯網:6月29日下午,由江蘇省互聯網協會主辦的“5G+區塊鏈技術應用交流會”在華為南京研究所舉行。南京理工大學教授、江蘇可信區塊鏈專委會特聘專家戚湧指出,隨著可擴展性和效率的提高,區塊鏈技術在社會各個領域中落地應用場景,推動現實社會向“可編程社會”轉變。因此,區塊鏈技術有可能成為“萬物互聯”的一種最底層的協議和秩序互聯網。在智慧交通方面,借助5G技術高傳輸、大帶寬、低延時的特性和區塊鏈技術數據共享、隱私保護等特征能夠促進先進信息技術與交通運輸深度融合,實現以“數據鏈”為主線,加快交通運輸信息化向數字化、網絡化、智能化發展。戚湧提出,以全國交通運輸業數據作為主數據鏈,以區塊鏈賬本和基礎數據倉庫構建數據記錄層,智能合約等中間件完成數據交互,從而為交通運輸業數據交換共享、業務流程優化制定頂層框架,實現交通運輸全過程的數據透明化、清晰化。(新華網江蘇)[2020/6/30]
7.要有結果報告:報告內容當然就是實際的指標數據。
1.基準性能場景:做單交易/接口的容量,為混合容量做準備。
2.容量性能場景:混合容量測試是因為線上真實場景就是由不同的業務組成的,所以由這些業務按照不同并發比例發起梯度壓測就是混合容量測試場景。
聲音 | 浩云科技:在防控傳染病方面,結合區塊鏈等技術能更好的實現精準管控:浩云科技(300448.SZ)在互動平臺回復投資者提問時表示,從防控重大新發突發傳染病、動植物疫情及保障實驗室生物安全等生物安全方應用場景看,除精準位置管理外,還需要結合大數據分析、人工智能、區塊鏈、高效的管理平臺等技術及產品,才能更好的實現精準管控、智能處理。[2020/2/16]
3.穩定性性能場景:核心就是時長,在長時間的運行之下,觀察系統的性能表現。這個時長的設置,應該來源于運維周期。
4.異常性能場景:在強壓力之下,模擬異常。
性能測試的指標有很多,比如:1.?RT,ResponseTime
2.?HPS,HitsPerSecond
3.?TPS,TransactionsPerSecond,這里的?Transactions?在傳統的應用中一般稱為”事務“,在區塊鏈領域指”交易“
4.?QPS,QueriesPerSecond
5.?PV,PageView
6.?Throughput
7.?IOPS,Input/OutputOperationsPerSecond
聲音 | 孟永輝:區塊鏈最大的作用是在于對B端行業的深度賦能:據未央網消息,專欄作者孟永輝今日發文“遠離數字貨幣陷阱,告別資本的區塊鏈如何決勝新世代?”,文中表示如果僅僅只是將區塊鏈的落地和應用局限在發幣或者IC0上,必然限制了區塊鏈的應用,甚至可能會把區塊鏈的發展帶入到死胡同。告別以數字貨幣為終極目標的發展方式,尋找更多新的應用方式,正在成為區塊鏈未來發展的主要方向。作為一種基礎的技術,區塊鏈最大的作用并非對于流量的收割,而是在于對B端行業的深度賦能。[2019/2/24]
比較重要的指標有資源使用率、吞吐量、響應時間,服務提供方比較關心前兩者,用戶更更新后者。關于這些指標的一般情況引用?PerformanceTestingMethodology(http://hosteddocs.ittoolbox.com/questnolg?22106?java.pdf)中的經典圖來說明,實際情況可能不同。圖中定義了?3?線?3?區域?3?狀態,這個圖值得多看看,能夠大致理解指標簡的關系。
1.?3?線:Utilization,Throughput,ResponseTime
2.?3?區域:LightLoad,HeavyLoad,BuckleZone
3.?3?狀態:ResourceSaturated,ThroughputFalling,?EndUsersEffected
聲音 | 郭愛軍:區塊鏈終于擺脫了比特幣的陰影 回歸技術本源:今日,上海對外經貿大學美國研究中心首席顧問郭愛軍在文匯報上發表了一篇名為《區塊鏈終于擺脫了比特幣的陰影》的文章,文章表示, “比特塔”的倒塌,比特幣硬分叉是導火索,技術漏洞陸續被曝光是關鍵,而信心和共識崩塌是根本原因。更關鍵的是,原先的廣播通信、信息加解密、共識機制、交易驗證機制等幾個關鍵共識被顛覆,導致市場信心崩塌。他表示,“在我看來,此次“比特塔”的崩塌對區塊鏈創業者而言是憂喜參半的,但喜多于憂。 一方面,長久縈繞的“父子”問題解決了。 另一方面,區塊鏈行業創業者大可不必因比特幣以及其他數字貨幣的價格下跌而恐慌,正好回歸技術本源。”[2018/12/10]
1.一般需要在什么時候做性能測試。
a.項目上線前,估計系統承載能力
b.?項目重構后,評估效果
2.如果一個項目得到性能報告就終止,這樣就只是性能驗證。做完全面的性能測試,同時將系統調優到最優狀態,才算是一個完整的性能項目了。性能調優耗時長,還可能需要開發參與,代價高。
區塊鏈性能測試
區塊鏈的性能測試的指標最重要的是?TPS?與延遲,a16z的文章Whyblockchainperformanceishardtomeasure?對此做了很有洞察的討論,說明了為什么這兩個指標很難測量和比較。其主要內容有以下方面:
延遲的這段時間的起點和終點如何定義?1.起點是用戶點擊提交還是交易到達內存池?
2.終點是交易被第?1?個區塊確認?還是被第?6?個區塊確認?又或者是最終用戶收到接口響應的時間?
3.有些區塊鏈系統對交易會等待一定延遲和到達一定數量才開始處理。這樣比較幸運的就是最后加入的交易,其處理延遲最短。
4.對于上訴問題的一種折中方案是,即準確評估整個系統需要考慮延時的分布,而不是將其延遲看做單一數字。
5.有些區塊鏈系統的交易處理是有優先級的,fee?高的交易很快確認,fee?低的相對慢些。fee?的不同對交易的延時和?TPS?的統計是有影響的。
區塊鏈中的吞吐量,即?TPS(TransactionPerSecond)來衡量,這里的?transaction?顯示不是平等的,最簡單的例子就是以太坊中的交易,它可以是轉賬也可以是調用合約。因此,得出?TPS?需要指定?T?指代的是什么。
另外一個實際的問題是,用戶其實不關心一個區塊鏈的?TPS?是多少,用戶只關心如何少用?fee?并盡快完成交易。從這個角度來講,TPS?只對系統服務提供商有意義。
壓力工具
壓力工具一般用Jmeter或者特定應用專用測試工具如下:
1.?hyperbench/hyperbench
2.?hyperledger/caliper:Ablockchainbenchmarkframeworktomeasureperformanceofmultipleblockchainsolutions?
3.?https://github.com/xuperchain/xbench
4.?…
使用?Jmeter?應該是更貼近使用場景,更通用。一般與區塊鏈節點進行交互的方式有
1.?gRPC?協議
2.?HTTP?協議(REST?接口)
Jmeter?支持的?Sampler?支持有?HTTP,對?gRPC?協議的支持需要借助插件jmeter-grpc-request
監控工具一般用Prometheus這工具可以監控的內容比較多,其生態如圖(https://prometheus.io/assets/architecture.png)。在測試區塊鏈應用的實踐中,一般是先使用?docker-compose?部署多個區塊鏈節點模擬正式進行測試的環境,因為正式的測試環境一般硬件配置較高,如果不是自建機房,使用云服務廠商的機器,費用昂貴,這樣做可以節約成本。
docker-compose?中可以限制容器使用的資源,如內存和?CPU?算力,甚至綁定?CPU?核心,對這些資源的監控可以使用cadvisor。
為了驗證?CPU?限制是否準確,可以用stress-ng壓滿核心,看統計結果是否與限制值一致。
一般遇到性能瓶頸的常見元原因會是網絡、CPU、磁盤?IO。引發磁盤?IO?的瓶頸的操作有寫日志頻頻繁,打印不必要的日志,通過網絡訪問磁盤等。這些資源都會通過系統調用來完成,跟蹤系統調用,可以使用?strace?來查看執行了哪些系統調用,以及在這些調用上花費的時間等信息
還可能遇到的問題是系統不穩定,可以表現為?CPU?使用率/TPS不穩定。
如果在?LightLoad?區域選擇一定的并發壓力,TPS?波動較大的話,可能就是系統設計得不好,需要找到原因和優化了。
如果是?CPU?使用率不穩定,從?CPU?指令執行層面來看為?CPU?處于?idle?狀態的時長參差不齊。這種情況下的原因并不在于有?CPU?有?idle,而是在于處于?idle?的時間段有長有短。需要借助?Linux?系統工具、程序對應的?profilling?工具來觀測,找到原因。
要解決性能問題,首先需要找到原因,尋找原因的分析工具可以參考下圖(https://www.brendangregg.com/Perf/linux_perf_tools_full.png)。這是?Linux?性能分析最重要的參考資料了,顯示了在不同子系統出現性能問題后,應該用什么樣的工具來觀測和分析。
磁盤?IO?一般會導致系統瓶頸,磁盤?IO?棧比較長,分析起來難度不小。熟悉?IO?棧,有助于我們發現問題(https://www.thomas-krenn.com/en/wikiEN/images/c/c?2/Linux-storage-stack-diagram_v?6.2.pdf)
找到原因后,如果能夠通過調整操作系統參數或者應用系統參數優化性能是比較快捷的,如果需要修改代碼,則會涉及系統架構優化,會有涉及和編碼工作,調優周期會很長。
下一篇文章將分享使用?cosmos-sdk?中的?SimApp?來進行性能測試以及在性能調優方面的方法。
Tags:區塊鏈TPSCPUMET區塊鏈運用的技術中不包括哪一項a共識算法tps幣圈xhv幣cpu挖礦Prometheus Trading
在比特幣超過29,28美元后,市場開始了一波拋售浪潮,買家無法滿足于價格。隨著BTC在不久的將來達到頂峰,不斷增加的拋售壓力也讓投資者感到驚訝.
1900/1/1 0:00:004月3日,火必發布官方公告,宣布已與GalaGames協商完成pGALA增發攻擊事件受損用戶賠償計劃,賠償金額達5000萬美金.
1900/1/1 0:00:00盡管基本面強勁,但柴犬(SHIB)的價格目前仍在努力離開看跌區域。自2月4日當地高點0.000016美元左右以來,所有試圖產生新的上漲勢頭的嘗試都失敗了。現在SHIB可能面臨一個轉折點.
1900/1/1 0:00:00穩定幣USDC在美國矽谷銀行倒閉風波時經歷了短暫的脫鉤,雖然隨著美國監管機構的介入恢復了與美元的掛鉤,但用戶對USDC的信任似乎仍有所折損.
1900/1/1 0:00:00以太坊,這個由加密領域傳奇人物VitalikButerin創立的革命性智能合約平臺,自2014年誕生以來,在加密行業的各個重要時刻都發揮舉足輕重的作用.
1900/1/1 0:00:00比特幣就在今日上午突破29,000美元,但據Deribit數據顯示,將有14.1萬張BTC期權即將到期,最大痛點24,000美元,名義價值40億美元,174.8萬張ETH期權即將到期.
1900/1/1 0:00:00