HTTP HLS RTMP超級負載測試工具

2021-07-15 08:29:43 字數 2271 閱讀 1379

state-threads用來模擬超級併發,並簡化非同步socket的邏輯為同步socket,http-parser解析http協議部分。

這兩個庫設計都很巧妙,所以我開了乙個專案:

state-threads之前就有寫過文章說明,那時候主要是支援高併發的rtmp伺服器,也是併發和非同步變為同步的協程很方便。

http-parser用yum就可以search到,它其實設計得也相當巧妙,相當於只是解析buffer的http內容,並不負責網路部分。libcurl/poco等都帶了網路處理,所以不合適。

舉例說明,http_parser_parse_url這個函式,解析url,設計得非常有意思,不是返回字串,而是返回位置索引,譬如主機頭在什麼位置長度多長等等。

提供了url_parser這個示例程式。

另外,還有個例子是nginx大牛igor寫的,parsetrace.c:

[cpp]

view plain

copy

就是讀取檔案,然後用http-parser解析。

這個工具寫完,支援http檔案和hls兩種負載測試。

對比下**行數:

對比httpload,只能做http檔案測試的工具:

當ts檔案位元速率為400kbps時,乙個程序能開10000連線。http load只能開1024每程序。

效率大約是http-load的10倍,若進行小檔案測試,可以到100倍以上。

單程序開啟1k連線,不sleep取完乙個接著取下乙個,能將虛擬機器的回環網絡卡頻寬請求到8gbps,1cpu的虛擬機器。

基本上這個工具用來做http測試模擬大併發足夠了。

超級負載均衡

超級負載均衡旨在為解決服務不斷擴充套件 機器不斷增多 機器效能差異等問題,以增強系統的穩定性,自動分配請求壓力。演算法實現了多個模型和均衡策略,能通過配置實現隨機 輪詢 一致hash等。同時也能實現跨機房的相關分配。現已經在多個系統中使用。tag 負載均衡 內容 現有系統中存在的問題 1.慢連線 瞬...

超級負載均衡

超級負載均衡旨在為解決服務不斷擴充套件 機器不斷增多 機器效能差異等問題,以增強系統的穩定性,自動分配請求壓力。演算法實現了多個模型和均衡策略,能通過配置實現隨機 輪詢 一致hash等。同時也能實現跨機房的相關分配。現已經在多個系統中使用。tag 負載均衡 內容 現有系統中存在的問題 1.慢連線 瞬...

超級負載均衡

超級負載均衡旨在為解決服務不斷擴充套件 機器不斷增多 機器效能差異等問題,以增強系統的穩定性,自動分配請求壓力。演算法實現了多個模型和均衡策略,能通過配置實現隨機 輪詢 一致hash等。同時也能實現跨機房的相關分配。現已經在多個系統中使用。tag 負載均衡 內容 現有系統中存在的問題 1.慢連線 瞬...