天天看點

EOS單節點壓力測試

如果你沒有時間閱讀,可以直接看總結部分。

EOS單節點壓力測試

一、環境

今天使用歐鍊釋出的工具EOSBenchTool,對EOS進行單節點壓力測試。

具體環境如下:

作業系統:Vmware + Ubuntu16.04

CPU:i7(3.6GHZ)

需要特别指出的是,壓力測試工具和EOS節點在同一個環境。

二、測試

首先,有必要講解一下設定界面:

EOS單節點壓力測試

Host address: 主機IP位址 由于工具和節點放在同一個作業系統,是以是127.0.0.1

Port:端口号,填8888

Thread number:線程數。你的CPU有幾個核,就填幾個核。

由于DAWN 3.0現在還是單線程版本的,核心數對最後的結果沒有影響,主要是單核的性能。

但是,這裡填幾個核,測試時就會生成幾個賬戶,并且建立幾個線程簽名、打包交易。如果使用1個核簽名、打包10萬筆交易,那需要等待很長的時間。

Super account: 超級賬戶,填eosio。這裡不能填普通賬戶,否則測試時無法建立賬戶。

Total token: 超級賬戶的token數,我的Token name是EOS,Total token是1萬,那超級賬戶必須有1萬個EOS。

Contract account:釋出代币的合約,我用的是EOS的代币,是以合約賬戶是eosio.token。

Transaction pool size:交易池大小,也就是需要積攢的交易數量,由Thread number個線程簽名、打包,這裡我用的是1萬。

Transaction batch size:一次發出去的交易數量。交易池攢夠交易後,一次發出去的交易數量。

好的,現在開始測試。

首先,使用1萬筆交易進行測試,設定界面如上圖。在1萬筆交易的情況下,EOS單節點單線程最高tps為1800,平均tps為1200。

EOS單節點壓力測試

因為這個工具交易的保活時間為5分鐘,經過測試,不能使用10萬筆交易測試,但是6萬筆交易是可行的。

使用6萬筆交易進行測試。設定界面如下圖:

EOS單節點壓力測試

溫馨提示:確定eosio有足夠數量的token。

在6萬筆交易的情況下,EOS單節點單線程最高tps為1800,平均tps為1000。

EOS單節點壓力測試

三、總結:

首先,需要說明一下該測試環境下的有利因素和不利因素:

有利因素:

1、單節點,不需要在節點間同步區塊

2、壓力測試工具和EOS節點在同一個環境,減少網絡傳輸的時間

不利因素:

1、使用虛拟機,可能無法完全發揮CPU的性能。

2、使用虛拟機,IO性能可能會收到影響

在目前單線程版本(DAWN 3.0)的情況下,tps主要取決于CPU單線程的性能。

在1萬筆交易的情況下,EOS單節點單線程最高tps為1800,平均tps為1200。

在6萬筆交易的情況下,EOS單節點單線程最高tps為1800,平均tps為1000。

值得注意的是,平均tps一直不穩定,我認為可能和列印和打包所需要的IO有關,通常情況下,IO是瓶頸。

在單線程的壓力測試環境下,EOS的表現依然不錯,相信在伺服器節點的加持下,多線程版本會有良好的表現。

繼續閱讀