如果你沒有時間閱讀,可以直接看總結部分。
一、環境
今天使用歐鍊釋出的工具EOSBenchTool,對EOS進行單節點壓力測試。
具體環境如下:
作業系統:Vmware + Ubuntu16.04
CPU:i7(3.6GHZ)
需要特别指出的是,壓力測試工具和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。
因為這個工具交易的保活時間為5分鐘,經過測試,不能使用10萬筆交易測試,但是6萬筆交易是可行的。
使用6萬筆交易進行測試。設定界面如下圖:
溫馨提示:確定eosio有足夠數量的token。
在6萬筆交易的情況下,EOS單節點單線程最高tps為1800,平均tps為1000。
三、總結:
首先,需要說明一下該測試環境下的有利因素和不利因素:
有利因素:
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的表現依然不錯,相信在伺服器節點的加持下,多線程版本會有良好的表現。