Storm環境配置及吞吐量測試調優總結

2021-08-21 16:29:09 字數 4731 閱讀 3178

2023年10月19日 17:03:53

1.本文集群環境是什麼?

2.配置中worker和slot是什麼關係?

3.吞吐量是如何測試的?

1、硬體配置資訊

6臺伺服器,2個cpu,96g,6核,24執行緒

2、集群資訊

storm集群:1個nimbus,6個supervisor

nimbus:192.168.7.127

supervisor:

192.168.7.128

192.168.7.129

192.168.7.130

192.168.7.131

192.168.7.132

192.168.7.133

zookeeper集群:

3個節點

192.168.7.127:2181, 192.168.7.128:2181, 192.168.7.129:2181

kafka集群:

7個節點

192.168.7.127:9092

192.168.7.128:9092

192.168.7.129:9092

192.168.7.130:9092

192.168.7.131:9092

192.168.7.132:9092

192.168.7.133:9092

3、配置關係解析

按照伺服器的硬體配置可以計算得到以下資訊:

1、worker和slot的關係是一一對應的,乙個worker占用乙個slot。計算集群worker和slot數量一般以每個伺服器的cpu執行緒數來計算。

如上面的環境就是

worker、slot:144 (6個supervisor,每個supervisor 都是24執行緒的cpu,24*6=144)

2、spout併發數,也就是setspout後面的引數10------builder.setspout("words",newkafkaspout(kafkaconfig),10);

這裡我在測試的時候,是使用kafka和storm做資料傳輸,kafka有乙個partition的機制,spout執行緒數量根據kafka topic的partition數量

來定義,一般是1:1的關係,就是當前topic的partition數量為18,則spout的執行緒數量可以設定為18。也可以稍微比這個數多,但是不能

多太多;具體需要多少個kafka partition大夥可根據需求來做測試找到自己需要的數值

3、bolt的併發數------builder.setbolt("words",newkafkabolt(),10);

bolt的併發數量,決定了處理掉效率,bolt併發度為1,面對大的資料量可能會很慢,bolt併發度過高,也不好,可能會照成資源浪費。

具體數值需測試決定

3、吞吐量測試(以下只列舉了部分場景。所有測試的資料請看附件)

測試場景1:

partition :20

worker :10

spout :20

bolt :1

計算結果:

測試場景2:

partition :20

worker :20

spout :20

bolt :1

測試結果:

場景3:(資料生成程式在128-132上執行,每個程式100個現成,資源也有一定的占用,所以實際結果可能要比測試結果好點)

topic 5

partition 20

spout 20

worker 20

bolt 1

測試結果:

總結結果:

5個topic,20個partition,20*5個worker,20*5個spout,1*5個bolt

總的吞吐量=5.04+4.02+5.76+6.31+4.99=26.12

每秒吞吐量為26.12萬

每日吞吐將近226億

總結:影響storm吞吐量的因素有以下幾個:spout併發數,worker數量(與slot掛鉤),kafka的partition數量

其實這裡spout的併發數和kafka的partition的數量是掛鉤的。

這裡要注意的是,提高worker的數量,雖然可以提高吞吐量,但是要知道,worker的數量和集群的機器數量是掛鉤的,是有限制的。

所以需要通過測試設定你自己覺得合理的乙個數值;因為如果乙個任務設定的worker數量過多,也就說明了留給其他任務的worker

數量就越少,執行的任務也就越少。所以只要符合業務需求的那個值才是最好的;

具體的測試結果看附件;

1.本文集群環境是什麼?

2.配置中worker和slot是什麼關係?

3.吞吐量是如何測試的?

1、硬體配置資訊

6臺伺服器,2個cpu,96g,6核,24執行緒

2、集群資訊

storm集群:1個nimbus,6個supervisor

nimbus:192.168.7.127

supervisor:

192.168.7.128

192.168.7.129

192.168.7.130

192.168.7.131

192.168.7.132

192.168.7.133

zookeeper集群:

3個節點

192.168.7.127:2181, 192.168.7.128:2181, 192.168.7.129:2181

kafka集群:

7個節點

192.168.7.127:9092

192.168.7.128:9092

192.168.7.129:9092

192.168.7.130:9092

192.168.7.131:9092

192.168.7.132:9092

192.168.7.133:9092

3、配置關係解析

按照伺服器的硬體配置可以計算得到以下資訊:

1、worker和slot的關係是一一對應的,乙個worker占用乙個slot。計算集群worker和slot數量一般以每個伺服器的cpu執行緒數來計算。

如上面的環境就是

worker、slot:144 (6個supervisor,每個supervisor 都是24執行緒的cpu,24*6=144)

2、spout併發數,也就是setspout後面的引數10------builder.setspout("words",newkafkaspout(kafkaconfig),10);

這裡我在測試的時候,是使用kafka和storm做資料傳輸,kafka有乙個partition的機制,spout執行緒數量根據kafka topic的partition數量

來定義,一般是1:1的關係,就是當前topic的partition數量為18,則spout的執行緒數量可以設定為18。也可以稍微比這個數多,但是不能

多太多;具體需要多少個kafka partition大夥可根據需求來做測試找到自己需要的數值

3、bolt的併發數------builder.setbolt("words",newkafkabolt(),10);

bolt的併發數量,決定了處理掉效率,bolt併發度為1,面對大的資料量可能會很慢,bolt併發度過高,也不好,可能會照成資源浪費。

具體數值需測試決定

3、吞吐量測試(以下只列舉了部分場景。所有測試的資料請看附件)

測試場景1:

partition :20

worker :10

spout :20

bolt :1

計算結果:

測試場景2:

partition :20

worker :20

spout :20

bolt :1

測試結果:

場景3:(資料生成程式在128-132上執行,每個程式100個現成,資源也有一定的占用,所以實際結果可能要比測試結果好點)

topic 5

partition 20

spout 20

worker 20

bolt 1

測試結果:

總結結果:

5個topic,20個partition,20*5個worker,20*5個spout,1*5個bolt

總的吞吐量=5.04+4.02+5.76+6.31+4.99=26.12

每秒吞吐量為26.12萬

每日吞吐將近226億

總結:

影響storm吞吐量的因素有以下幾個:spout併發數,worker數量(與slot掛鉤),kafka的partition數量

其實這裡spout的併發數和kafka的partition的數量是掛鉤的。

這裡要注意的是,提高worker的數量,雖然可以提高吞吐量,但是要知道,worker的數量和集群的機器數量是掛鉤的,是有限制的。

所以需要通過測試設定你自己覺得合理的乙個數值;因為如果乙個任務設定的worker數量過多,也就說明了留給其他任務的worker

數量就越少,執行的任務也就越少。所以只要符合業務需求的那個值才是最好的;

具體的測試結果看附件;

iperf測試吞吐量

ps 以下pc機是以windows系統為例,如果使用ubuntu,則要安裝iperf,執行apt get install iperf安裝即可,下面的iperf.exe就不用了,直接使用iperf即可 1,搭建區域網 1.1 將pc機 windowns系統 路由器,板子搭建成小型區域網 2,把iper...

wifi吞吐量測試

參看部落格 測試方法 頻寬和傳輸速度關係 ieee 802.11標準 wifi各協議理論速度計算 自測 手機a 手機b 小公尺2s pc 測試軟體 手機裡是可執行iperf檔案,推到system bin下 pc上安裝的是jperf2.0 手機a開熱點 跟手機有無連線4g網路應該無關,實際測試中未發現...

效能測試 吞吐量

吞吐量 指在一次效能測試過程中網路上傳輸的資料量的總和。對於互動式應用來說,吞吐量指標反映的是伺服器承受的壓力,在容量規劃的測試中,吞吐量是乙個重點關注的指標,因為它能夠說明系統級別的負載能力,另外,在效能調優過程中,吞吐量指標也有重要的價值。如乙個大型工廠,他們的生產效率與生產速度很快,一天生產1...