今天主要介紹所有數(shù)據(jù)庫的三個關鍵性能指標:
qps 每秒處理的查詢數(shù)
tps 每秒處理的事務數(shù)
IOPS 每秒磁盤進行的I/O操作次數(shù)
一拆祈、TPS
1、概念
Transactions Per Second(每秒傳輸?shù)氖挛锾幚韨€數(shù))坛怪,即服務器每秒處理的事務數(shù)诲祸。
TPS包括一條消息入和一條消息出,加上一次用戶數(shù)據(jù)庫訪問颗胡。(業(yè)務TPS = CAPS × 每個呼叫平均TPS)
TPS是軟件測試結果的測量單位八回。一個事務是指一個客戶機向服務器發(fā)送請求然后服務器做出反應的過程酷愧。客戶機在發(fā)送請求時開始計時缠诅,收到服務器響應后結束計時溶浴,以此來計算使用的時間和完成的事務個數(shù)。
一般的滴铅,評價系統(tǒng)性能均以每秒鐘完成的技術交易的數(shù)量來衡量戳葵。系統(tǒng)整體處理能力取決于處理能力最低模塊的TPS值。
二汉匙、QPS(同時適用與InnoDB和MyISAM 引擎 )
1拱烁、概念
每秒查詢率QPS是對一個特定的查詢服務器在規(guī)定時間內所處理流量多少的衡量標準,在因特網(wǎng)上噩翠,作為域名系統(tǒng)服務器的機器的性能經(jīng)常用每秒查詢率來衡量戏自。
對應fetches/sec,即每秒的響應請求數(shù)伤锚,也即是最大吞吐能力擅笔。
三、IOPS
1屯援、概念
IOPS (Input/Output Per Second)即每秒的輸入輸出量(或讀寫次數(shù))猛们,是衡量磁盤性能的主要指標之一。IOPS是指單位時間內系統(tǒng)能處理的I/O請求數(shù)量狞洋,一般以每秒處理的I/O請求數(shù)量為單位弯淘,I/O請求通常為讀或寫數(shù)據(jù)操作請求。隨機讀寫頻繁的應用吉懊,如OLTP(Online Transaction Processing)庐橙,IOPS是關鍵衡量指標假勿。另一個重要指標是數(shù)據(jù)吞吐量(Throughput),指單位時間內可以成功傳輸?shù)臄?shù)據(jù)數(shù)量态鳖。對于大量順序讀寫的應用转培,如VOD(Video On Demand),則更關注吞吐量指標浆竭。
傳統(tǒng)磁盤本質上一種機械裝置浸须,如FC,SAS,SATA磁盤,轉速通常為5400/7200/10K/15K rpm不等兆蕉。影響磁盤的關鍵因素是磁盤服務時間羽戒,即磁盤完成一個I/O請求所花費的時間,它由尋道時間虎韵、旋轉延遲和數(shù)據(jù)傳輸時間三部分構成。
尋道時間Tseek是指將讀寫磁頭移動至正確的磁道上所需要的時間缸废。尋道時間越短包蓝,I/O操作越快,目前磁盤的平均尋道時間一般在3-15ms企量。
旋轉延遲Trotation是指盤片旋轉將請求數(shù)據(jù)所在扇區(qū)移至讀寫磁頭下方所需要的時間测萎。旋轉延遲取決于磁盤轉速,通常使用磁盤旋轉一周所需時間的1/2表示届巩。比如硅瞧,7200 rpm的磁盤平均旋轉延遲大約為60*1000/7200/2 = 4.17ms,而轉速為15000 rpm的磁盤其平均旋轉延遲約為2ms恕汇。
數(shù)據(jù)傳輸時間Ttransfer是指完成傳輸所請求的數(shù)據(jù)所需要的時間腕唧,它取決于數(shù)據(jù)傳輸率,其值等于數(shù)據(jù)大小除以數(shù)據(jù)傳輸率瘾英。目前IDE/ATA能達到133MB/s枣接,SATA II可達到300MB/s的接口數(shù)據(jù)傳輸率,數(shù)據(jù)傳輸時間通常遠小于前兩部分時間缺谴。
IOPS可細分為如下幾個指標:
Toatal IOPS但惶,混合讀寫和順序隨機I/O負載情況下的磁盤IOPS,這個與實際I/O情況最為相符湿蛔,大多數(shù)應用關注此指標膀曾。
Random Read IOPS,100%隨機讀負載情況下的IOPS阳啥。
Random Write IOPS添谊,100%隨機寫負載情況下的IOPS。
Sequential Read IOPS苫纤,100%順序負載讀情況下的IOPS碉钠。
Sequential Write IOPS纲缓,100%順序寫負載情況下的IOPS。
IOPS的測試benchmark工具主要有Iometer, IoZone, FIO等喊废,可以綜合用于測試磁盤在不同情形下的IOPS祝高。對于應用系統(tǒng),需要首先確定數(shù)據(jù)的負載特征污筷,然后選擇合理的IOPS指標進行測量和對比分析工闺,據(jù)此選擇合適的存儲介質和軟件系統(tǒng)。
-----------------------------------------------------------------------------------------------------------------------------------------------------
TPS指系統(tǒng)每秒處理的事務數(shù)瓣蛀,是衡量一個區(qū)塊鏈系統(tǒng)性能最重要的指標之一陆蟆。隨著區(qū)塊鏈發(fā)展日趨活躍,一些主流區(qū)塊鏈項目網(wǎng)絡阻塞問題也愈加嚴重惋增,導致區(qū)塊鏈在高并發(fā)業(yè)務領域無法落地叠殷。目前不少的技術方案與項目都在著力解決此類問題,以達到更高的TPS诈皿。
區(qū)塊鏈系統(tǒng)TPS的計算公式為:
TPS= 事務處理數(shù)量 / 花費的時間
其中林束,測試數(shù)據(jù)需要在系統(tǒng)穩(wěn)定運行狀態(tài)下獲取,否則會影響測試結果的準確性稽亏。
03影響因素分析
在區(qū)塊鏈系統(tǒng)的生命周期中壶冒,影響其TPS的因素大致可以分成內在和外在兩大類。內在因素包括系統(tǒng)共識機制截歉、區(qū)塊參數(shù)設置胖腾、事務過程優(yōu)化、節(jié)點配置瘪松、加密算法等咸作。外在因素包括資源配置、測試驗證環(huán)境等凉逛。
內在因素
內在因素是基于區(qū)塊鏈系統(tǒng)在設計時底層技術的選擇性宏,如共識機制、數(shù)據(jù)結構状飞、加密算法等毫胜,以及開發(fā)時區(qū)塊大小和出塊時間等參數(shù)設置、系統(tǒng)運維中的系統(tǒng)優(yōu)化和升級等诬辈。本節(jié)主要分析共識機制酵使、區(qū)塊參數(shù)配置、事務過程優(yōu)化對區(qū)塊鏈系統(tǒng)TPS的影響焙糟。
共識機制
共識機制是指以去中心化的方式就網(wǎng)絡的狀態(tài)達成統(tǒng)一協(xié)議的過程口渔,是區(qū)塊鏈最核心技術之一。下表列出了四種主流的區(qū)塊鏈共識機制穿撮,并對比了基于這些共識機制的區(qū)塊鏈項目特點缺脉』居基于PoW共識的比特幣和基于PoW+PoS的以太坊,TPS均在40以下攻礼;基于DPoS共識的EOS业踢,TPS達到了3600;基于kalka的超級賬本項目礁扮,TPS能達到萬級知举。可以看出太伊,基于不同共識機制的區(qū)塊鏈系統(tǒng)TPS可能存在數(shù)量級的差距雇锡。
主流共識機制對比
區(qū)塊鏈網(wǎng)絡中存在“不可能的三角”,即無論采用何種共識機制僚焦,皆無法同時兼顧擴展性锰提、安全性、去中心這三項要求芳悲。當系統(tǒng)追求高TPS的時候欲账,必然會犧牲掉一部分安全性或是導致系統(tǒng)過于中心化。以聯(lián)盟鏈為例芭概,雖然其實現(xiàn)了低能耗和高性能,卻導致了系統(tǒng)過于中心化惩嘉。而比特幣雖然效率較低罢洲,TPS數(shù)量級為個位數(shù),但其實現(xiàn)了高度去中心化文黎,項目穩(wěn)定運行11年惹苗,安全性受到市場的高度認可∷是停總的來說桩蓉,共識機制對區(qū)塊鏈系統(tǒng)TPS起著決定性作用。
區(qū)塊參數(shù)
區(qū)塊參數(shù)包含了區(qū)塊大小和出塊時間劳闹。對基于同一底層的區(qū)塊鏈系統(tǒng)而言院究,區(qū)塊容量和TPS成正比關系,即區(qū)塊容量越大本涕,系統(tǒng)TPS越高业汰。以基于PoW共識機制的比特幣和比特幣現(xiàn)金為例,比特幣每個區(qū)塊大小設定為1M菩颖,TPS為7样漆,而比特幣現(xiàn)金的每個區(qū)塊為8M,TPS在24-224之間晦闰。反觀出塊時間對TPS的影響放祟,出塊時間與TPS成反比關系鳍怨,出塊需要的時間越長,系統(tǒng)TPS越低跪妥。以比特幣和萊特幣為例鞋喇,相較于比特幣,萊特幣出塊時間縮短了7.5分鐘骗奖,但TPS提高了近4倍确徙。可以看出执桌,區(qū)塊參數(shù)對系統(tǒng)TPS有顯著的影響鄙皇。
交易驗證
區(qū)塊鏈系統(tǒng)中,一筆交易的生命周期包括交易請求仰挣、交易廣播伴逸、交易驗證、交易打包膘壶、交易上鏈错蝴、交易完成等步驟,其中交易驗證機制是影響區(qū)塊鏈系統(tǒng)TPS的因素之一颓芭。當前顷锰,閃電網(wǎng)絡、狀態(tài)通道亡问、分片處理是幾種常用的優(yōu)化交易驗證方法官紫,其中閃電網(wǎng)絡和狀態(tài)通道保持了底層區(qū)塊鏈協(xié)議不變,將交易放到鏈下執(zhí)行州藕,即通過改變協(xié)議用法的方式來解決擴展性問題束世。分片處理通過將交易引流到不同片區(qū)并在片區(qū)內執(zhí)行交易,使得全網(wǎng)的交易數(shù)據(jù)被均勻分配床玻,提升了區(qū)塊鏈數(shù)據(jù)的處理效率毁涉,從而減輕節(jié)點的計算和存儲負擔。但也要看到锈死,通過交易驗證優(yōu)化手段只能小幅度提高系統(tǒng)TPS贫堰。
外在因素
影響區(qū)塊鏈系統(tǒng)TPS的外在因素包括區(qū)塊鏈系統(tǒng)部署服務器的資源配置和測試環(huán)境。資源配置如CPU性能馅精、內存和硬盤容量严嗜、網(wǎng)絡帶寬等。測試環(huán)境包括測試依據(jù)洲敢、測試方法漫玄、測試工具等。
資源配置
區(qū)塊鏈系統(tǒng)一般部署在物理服務器或云服務器上,服務器的資源配置直接影響區(qū)塊鏈系統(tǒng)整體性能睦优。對于區(qū)塊鏈系統(tǒng)而言渗常,其所在服務器的硬件性能越高,能夠產(chǎn)生的TPS數(shù)值也就越高汗盘。服務器硬件資源包括CPU皱碘、內存、硬盤等隐孽,其中癌椿,CPU的兩個重要評價指標為頻率和緩存容量,CPU頻率越高菱阵,緩存容量越大踢俄,系統(tǒng)數(shù)據(jù)處理速度也會越快。同樣晴及,內存較大的計算機設備能夠在短時間內緩存大量數(shù)據(jù)都办,在區(qū)塊鏈系統(tǒng)產(chǎn)生較大數(shù)據(jù)處理量的前提下,高內存的服務器具備的優(yōu)勢更加明顯虑稼。
下表展示了同一個區(qū)塊鏈系統(tǒng)部署在不同配置的服務器上時測試出的TPS差異琳钉。
硬件配置對系統(tǒng)TPS的影響
測試環(huán)境
同一個區(qū)塊鏈系統(tǒng)在不同的測試環(huán)境下會產(chǎn)生差異較大的測試結果。測試環(huán)境包括測試設備蛛倦、測試工具歌懒、操作方法等。當前主流的區(qū)塊鏈性能測試工具LoadRunner溯壶、Benchmark歼培、Caliper等。下表展示了在使用不同測試工具的情形下茸塞,同一基于超級賬本技術區(qū)塊鏈系統(tǒng)TPS測試結果。
不同測試工具下的TPS對比
04差異分析
當前查剖,產(chǎn)業(yè)中出現(xiàn)了百萬钾虐、十萬及萬級TPS的區(qū)塊鏈系統(tǒng),本章重點分析這三種級別TPS的實現(xiàn)特點笋庄。
萬級TPS
萬級TPS區(qū)塊鏈系統(tǒng)可以通過優(yōu)化節(jié)點服務器的硬件配置和交易驗證過程來達到效扫,如許多基于超級賬本技術的聯(lián)盟鏈系統(tǒng)。優(yōu)化硬件配置可以通過增加CPU性能和內存容量來實現(xiàn)直砂,其中CPU的增加可以使系統(tǒng)具備更強大的邏輯計算能力菌仁,內存的增加可以使系統(tǒng)具備較大的數(shù)據(jù)處理空間,以在相同的時間內處理大批量數(shù)據(jù)静暂。交易驗證的優(yōu)化可以通過閃電網(wǎng)絡济丘、分片處理等技術實現(xiàn)。
十萬級TPS
面對日益復雜的計算需求,區(qū)塊鏈系統(tǒng)在單位時間內需要處理的數(shù)據(jù)量大幅度提升摹迷,對區(qū)塊鏈系統(tǒng)TPS提出了更高的要求疟赊。運用多鏈并行計算和DAG(有向無環(huán)圖)技術能夠進一步提升系統(tǒng)的TPS。十萬數(shù)量級TPS區(qū)塊鏈系統(tǒng)一般可采用多鏈并行計算的方式處理數(shù)據(jù)峡碉,以DAG的形式傳輸數(shù)據(jù)近哟。
百萬級TPS