詳解數(shù)據(jù)庫三個核心性能指標--TPS\QPS\IOPS

今天主要介紹所有數(shù)據(jù)庫的三個關(guān)鍵性能指標:

qps 每秒處理的查詢數(shù)

tps 每秒處理的事務(wù)數(shù)

IOPS 每秒磁盤進行的I/O操作次數(shù)


一、TPS

1、概念

Transactions Per Second(每秒傳輸?shù)氖挛锾幚韨€數(shù)),即服務(wù)器每秒處理的事務(wù)數(shù)。

TPS包括一條消息入和一條消息出,加上一次用戶數(shù)據(jù)庫訪問。(業(yè)務(wù)TPS = CAPS × 每個呼叫平均TPS)

TPS是軟件測試結(jié)果的測量單位。一個事務(wù)是指一個客戶機向服務(wù)器發(fā)送請求然后服務(wù)器做出反應(yīng)的過程??蛻魴C在發(fā)送請求時開始計時,收到服務(wù)器響應(yīng)后結(jié)束計時,以此來計算使用的時間和完成的事務(wù)個數(shù)。

一般的,評價系統(tǒng)性能均以每秒鐘完成的技術(shù)交易的數(shù)量來衡量。系統(tǒng)整體處理能力取決于處理能力最低模塊的TPS值。

二、QPS(同時適用與InnoDB和MyISAM 引擎 )

1、概念

每秒查詢率QPS是對一個特定的查詢服務(wù)器在規(guī)定時間內(nèi)所處理流量多少的衡量標準,在因特網(wǎng)上,作為域名系統(tǒng)服務(wù)器的機器的性能經(jīng)常用每秒查詢率來衡量。

對應(yīng)fetches/sec,即每秒的響應(yīng)請求數(shù),也即是最大吞吐能力。

三、IOPS

1、概念

IOPS (Input/Output Per Second)即每秒的輸入輸出量(或讀寫次數(shù)),是衡量磁盤性能的主要指標之一。IOPS是指單位時間內(nèi)系統(tǒng)能處理的I/O請求數(shù)量,一般以每秒處理的I/O請求數(shù)量為單位,I/O請求通常為讀或?qū)憯?shù)據(jù)操作請求。隨機讀寫頻繁的應(yīng)用,如OLTP(Online Transaction Processing),IOPS是關(guān)鍵衡量指標。另一個重要指標是數(shù)據(jù)吞吐量(Throughput),指單位時間內(nèi)可以成功傳輸?shù)臄?shù)據(jù)數(shù)量。對于大量順序讀寫的應(yīng)用,如VOD(Video On Demand),則更關(guān)注吞吐量指標。

傳統(tǒng)磁盤本質(zhì)上一種機械裝置,如FC,SAS,SATA磁盤,轉(zhuǎn)速通常為5400/7200/10K/15K rpm不等。影響磁盤的關(guān)鍵因素是磁盤服務(wù)時間,即磁盤完成一個I/O請求所花費的時間,它由尋道時間、旋轉(zhuǎn)延遲和數(shù)據(jù)傳輸時間三部分構(gòu)成。

尋道時間Tseek是指將讀寫磁頭移動至正確的磁道上所需要的時間。尋道時間越短,I/O操作越快,目前磁盤的平均尋道時間一般在3-15ms。

旋轉(zhuǎn)延遲Trotation是指盤片旋轉(zhuǎn)將請求數(shù)據(jù)所在扇區(qū)移至讀寫磁頭下方所需要的時間。旋轉(zhuǎn)延遲取決于磁盤轉(zhuǎn)速,通常使用磁盤旋轉(zhuǎn)一周所需時間的1/2表示。比如,7200 rpm的磁盤平均旋轉(zhuǎn)延遲大約為60*1000/7200/2 = 4.17ms,而轉(zhuǎn)速為15000 rpm的磁盤其平均旋轉(zhuǎn)延遲約為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ù)應(yīng)用關(guān)注此指標。

Random Read IOPS,100%隨機讀負載情況下的IOPS。

Random Write IOPS,100%隨機寫負載情況下的IOPS。

Sequential Read IOPS,100%順序負載讀情況下的IOPS。

Sequential Write IOPS,100%順序?qū)懾撦d情況下的IOPS。

IOPS的測試benchmark工具主要有Iometer, IoZone, FIO等,可以綜合用于測試磁盤在不同情形下的IOPS。對于應(yīng)用系統(tǒng),需要首先確定數(shù)據(jù)的負載特征,然后選擇合理的IOPS指標進行測量和對比分析,據(jù)此選擇合適的存儲介質(zhì)和軟件系統(tǒng)。

-----------------------------------------------------------------------------------------------------------------------------------------------------

TPS指系統(tǒng)每秒處理的事務(wù)數(shù),是衡量一個區(qū)塊鏈系統(tǒng)性能最重要的指標之一。隨著區(qū)塊鏈發(fā)展日趨活躍,一些主流區(qū)塊鏈項目網(wǎng)絡(luò)阻塞問題也愈加嚴重,導(dǎo)致區(qū)塊鏈在高并發(fā)業(yè)務(wù)領(lǐng)域無法落地。目前不少的技術(shù)方案與項目都在著力解決此類問題,以達到更高的TPS。

區(qū)塊鏈系統(tǒng)TPS的計算公式為:

TPS= 事務(wù)處理數(shù)量 / 花費的時間

其中,測試數(shù)據(jù)需要在系統(tǒng)穩(wěn)定運行狀態(tài)下獲取,否則會影響測試結(jié)果的準確性。

03影響因素分析

在區(qū)塊鏈系統(tǒng)的生命周期中,影響其TPS的因素大致可以分成內(nèi)在和外在兩大類。內(nèi)在因素包括系統(tǒng)共識機制、區(qū)塊參數(shù)設(shè)置、事務(wù)過程優(yōu)化、節(jié)點配置、加密算法等。外在因素包括資源配置、測試驗證環(huán)境等。

內(nèi)在因素

內(nèi)在因素是基于區(qū)塊鏈系統(tǒng)在設(shè)計時底層技術(shù)的選擇,如共識機制、數(shù)據(jù)結(jié)構(gòu)、加密算法等,以及開發(fā)時區(qū)塊大小和出塊時間等參數(shù)設(shè)置、系統(tǒng)運維中的系統(tǒng)優(yōu)化和升級等。本節(jié)主要分析共識機制、區(qū)塊參數(shù)配置、事務(wù)過程優(yōu)化對區(qū)塊鏈系統(tǒng)TPS的影響。

共識機制

共識機制是指以去中心化的方式就網(wǎng)絡(luò)的狀態(tài)達成統(tǒng)一協(xié)議的過程,是區(qū)塊鏈最核心技術(shù)之一。下表列出了四種主流的區(qū)塊鏈共識機制,并對比了基于這些共識機制的區(qū)塊鏈項目特點?;赑oW共識的比特幣和基于PoW+PoS的以太坊,TPS均在40以下;基于DPoS共識的EOS,TPS達到了3600;基于kalka的超級賬本項目,TPS能達到萬級??梢钥闯?,基于不同共識機制的區(qū)塊鏈系統(tǒng)TPS可能存在數(shù)量級的差距。

主流共識機制對比

區(qū)塊鏈網(wǎng)絡(luò)中存在“不可能的三角”,即無論采用何種共識機制,皆無法同時兼顧擴展性、安全性、去中心這三項要求。當系統(tǒng)追求高TPS的時候,必然會犧牲掉一部分安全性或是導(dǎo)致系統(tǒng)過于中心化。以聯(lián)盟鏈為例,雖然其實現(xiàn)了低能耗和高性能,卻導(dǎo)致了系統(tǒng)過于中心化。而比特幣雖然效率較低,TPS數(shù)量級為個位數(shù),但其實現(xiàn)了高度去中心化,項目穩(wěn)定運行11年,安全性受到市場的高度認可??偟膩碚f,共識機制對區(qū)塊鏈系統(tǒng)TPS起著決定性作用。

區(qū)塊參數(shù)

區(qū)塊參數(shù)包含了區(qū)塊大小和出塊時間。對基于同一底層的區(qū)塊鏈系統(tǒng)而言,區(qū)塊容量和TPS成正比關(guān)系,即區(qū)塊容量越大,系統(tǒng)TPS越高。以基于PoW共識機制的比特幣和比特幣現(xiàn)金為例,比特幣每個區(qū)塊大小設(shè)定為1M,TPS為7,而比特幣現(xiàn)金的每個區(qū)塊為8M,TPS在24-224之間。反觀出塊時間對TPS的影響,出塊時間與TPS成反比關(guān)系,出塊需要的時間越長,系統(tǒng)TPS越低。以比特幣和萊特幣為例,相較于比特幣,萊特幣出塊時間縮短了7.5分鐘,但TPS提高了近4倍??梢钥闯觯瑓^(qū)塊參數(shù)對系統(tǒng)TPS有顯著的影響。

交易驗證

區(qū)塊鏈系統(tǒng)中,一筆交易的生命周期包括交易請求、交易廣播、交易驗證、交易打包、交易上鏈、交易完成等步驟,其中交易驗證機制是影響區(qū)塊鏈系統(tǒng)TPS的因素之一。當前,閃電網(wǎng)絡(luò)、狀態(tài)通道、分片處理是幾種常用的優(yōu)化交易驗證方法,其中閃電網(wǎng)絡(luò)和狀態(tài)通道保持了底層區(qū)塊鏈協(xié)議不變,將交易放到鏈下執(zhí)行,即通過改變協(xié)議用法的方式來解決擴展性問題。分片處理通過將交易引流到不同片區(qū)并在片區(qū)內(nèi)執(zhí)行交易,使得全網(wǎng)的交易數(shù)據(jù)被均勻分配,提升了區(qū)塊鏈數(shù)據(jù)的處理效率,從而減輕節(jié)點的計算和存儲負擔。但也要看到,通過交易驗證優(yōu)化手段只能小幅度提高系統(tǒng)TPS。

外在因素

影響區(qū)塊鏈系統(tǒng)TPS的外在因素包括區(qū)塊鏈系統(tǒng)部署服務(wù)器的資源配置和測試環(huán)境。資源配置如CPU性能、內(nèi)存和硬盤容量、網(wǎng)絡(luò)帶寬等。測試環(huán)境包括測試依據(jù)、測試方法、測試工具等。

資源配置

區(qū)塊鏈系統(tǒng)一般部署在物理服務(wù)器或云服務(wù)器上,服務(wù)器的資源配置直接影響區(qū)塊鏈系統(tǒng)整體性能。對于區(qū)塊鏈系統(tǒng)而言,其所在服務(wù)器的硬件性能越高,能夠產(chǎn)生的TPS數(shù)值也就越高。服務(wù)器硬件資源包括CPU、內(nèi)存、硬盤等,其中,CPU的兩個重要評價指標為頻率和緩存容量,CPU頻率越高,緩存容量越大,系統(tǒng)數(shù)據(jù)處理速度也會越快。同樣,內(nèi)存較大的計算機設(shè)備能夠在短時間內(nèi)緩存大量數(shù)據(jù),在區(qū)塊鏈系統(tǒng)產(chǎn)生較大數(shù)據(jù)處理量的前提下,高內(nèi)存的服務(wù)器具備的優(yōu)勢更加明顯。

下表展示了同一個區(qū)塊鏈系統(tǒng)部署在不同配置的服務(wù)器上時測試出的TPS差異。

硬件配置對系統(tǒng)TPS的影響

測試環(huán)境

同一個區(qū)塊鏈系統(tǒng)在不同的測試環(huán)境下會產(chǎn)生差異較大的測試結(jié)果。測試環(huán)境包括測試設(shè)備、測試工具、操作方法等。當前主流的區(qū)塊鏈性能測試工具LoadRunner、Benchmark、Caliper等。下表展示了在使用不同測試工具的情形下,同一基于超級賬本技術(shù)區(qū)塊鏈系統(tǒng)TPS測試結(jié)果。

不同測試工具下的TPS對比

04差異分析

當前,產(chǎn)業(yè)中出現(xiàn)了百萬、十萬及萬級TPS的區(qū)塊鏈系統(tǒng),本章重點分析這三種級別TPS的實現(xiàn)特點。

萬級TPS

萬級TPS區(qū)塊鏈系統(tǒng)可以通過優(yōu)化節(jié)點服務(wù)器的硬件配置和交易驗證過程來達到,如許多基于超級賬本技術(shù)的聯(lián)盟鏈系統(tǒng)。優(yōu)化硬件配置可以通過增加CPU性能和內(nèi)存容量來實現(xiàn),其中CPU的增加可以使系統(tǒng)具備更強大的邏輯計算能力,內(nèi)存的增加可以使系統(tǒng)具備較大的數(shù)據(jù)處理空間,以在相同的時間內(nèi)處理大批量數(shù)據(jù)。交易驗證的優(yōu)化可以通過閃電網(wǎng)絡(luò)、分片處理等技術(shù)實現(xiàn)。

十萬級TPS

面對日益復(fù)雜的計算需求,區(qū)塊鏈系統(tǒng)在單位時間內(nèi)需要處理的數(shù)據(jù)量大幅度提升,對區(qū)塊鏈系統(tǒng)TPS提出了更高的要求。運用多鏈并行計算和DAG(有向無環(huán)圖)技術(shù)能夠進一步提升系統(tǒng)的TPS。十萬數(shù)量級TPS區(qū)塊鏈系統(tǒng)一般可采用多鏈并行計算的方式處理數(shù)據(jù),以DAG的形式傳輸數(shù)據(jù)。

百萬級TPS

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容