日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于 Websocket 协议的压力测试

發(fā)布時(shí)間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于 Websocket 协议的压力测试 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景

最近客戶端實(shí)現(xiàn)了一個基于websocket的消息推送功能:長連接網(wǎng)絡(luò)開關(guān)下發(fā)開后啟動,然后保持鏈接,每隔15分鐘發(fā)一次心跳包,服務(wù)器有數(shù)據(jù)時(shí)直接下發(fā)生效,因此需要對服務(wù)器進(jìn)行壓測。

本次通過寫python腳本的方法模擬并發(fā)進(jìn)行壓力測試,相關(guān)測試方法如下。

什么是websocket協(xié)議

WebSocket是一種在單個TCP連接上進(jìn)行全雙工通訊的協(xié)議。WebSocket通信協(xié)議于2011年被IETF定為標(biāo)準(zhǔn)RFC 6455,并由RFC7936補(bǔ)充規(guī)范。

WebSocket使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡單,允許服務(wù)端主動向客戶端推送數(shù)據(jù)。在WebSocketAPI中,瀏覽器和服務(wù)器只需要完成一次握手,兩者之間就直接可以創(chuàng)建持久性的連接,并進(jìn)行雙向數(shù)據(jù)傳輸。

?

測試場景

1.并發(fā)創(chuàng)建長連接,3min內(nèi)建立連接22w,總連接數(shù)維持在22w左右,間歇下發(fā)通知,查看服務(wù)器的穩(wěn)定性。

2.并發(fā)創(chuàng)建長連接,間歇性斷開并重連,保證同時(shí)在線的長連接在22w左右,運(yùn)行12H,查看服務(wù)器的穩(wěn)定性。

?

測試步驟

1.編寫腳本實(shí)現(xiàn)并發(fā)請求并發(fā)

?


2.搭建測試環(huán)境


①找1臺liunx機(jī)器,搭建python運(yùn)行環(huán)境,安裝腳本支持的包、模塊


②運(yùn)行websocket腳本,保證腳本正常運(yùn)行


③ 編寫run_test.sh腳本,運(yùn)行多個websocket.py,單機(jī)大約可同時(shí)并發(fā)大約5w~6w的tcp鏈接,視linux 系統(tǒng)內(nèi)核而定(因?yàn)楸敬涡枰瑫r(shí)并發(fā)22w,共4臺liunx機(jī)器,所以單臺并發(fā)6w左右)。

?


?

問題總結(jié)

1.有些linux系統(tǒng)最大tcp鏈接數(shù)比較小,無法支持同時(shí)并發(fā)6w量的tcp鏈接。

2.原因:

最大tcp連接數(shù)和系統(tǒng)允許打開的最大文件數(shù),用戶允許打開的最大文件數(shù),TCP網(wǎng)絡(luò)連接可用的端口范圍有關(guān),取上述的最小值。

3.一般的設(shè)置規(guī)則為:系統(tǒng)最大文件數(shù)>可用端口>用戶最大文件數(shù)

總結(jié)

以上是生活随笔為你收集整理的基于 Websocket 协议的压力测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。