<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [NewLife.Net]單機400萬長連接壓力測試

      目標

      對網(wǎng)絡(luò)庫NewLife.Net進行單機百萬級長連接測試,并持續(xù)收發(fā)數(shù)據(jù),檢測網(wǎng)絡(luò)庫穩(wěn)定性。

      【2020年8月1日晚上22點】

      先上源碼:https://github.com/NewLifeX/NewLife.Net

       

      結(jié)論,8月1日晚達到200萬,8月2日下午達到404萬。

       

      上一次百萬級壓測是2017年4月1日,失敗了,只達到84.5萬。后來做了一次吞吐量壓測。

      技術(shù)革新

      自上一次百萬級壓測(2017.4.1)以來,網(wǎng)絡(luò)庫進行了諸多細節(jié)優(yōu)化(沒有調(diào)整架構(gòu)),特別優(yōu)化了內(nèi)存拷貝和多線程操作。

      上次購買了20多臺高配大數(shù)據(jù)服務(wù)器(16C64G和8C16G),每臺發(fā)起5萬Tcp長連接,純?nèi)巳夥绞剑喈斃邸_@次從泥水佬那里學(xué)到本地配置多IP地址建立更多連接的方式,大大節(jié)省了服務(wù)器資源和人力成本。每臺服務(wù)器設(shè)置20個IP,每個IP發(fā)起5萬Tcp長連接。

      測試程序也從.Net 4.5升級到了.Net Core 3.1,性能提升可觀。

       

      服務(wù)器資源

      阿里云上海區(qū)共購買6臺12C24G的計算型C5服務(wù)器,按照搶占型實例購買,晚上特別便宜。平時3.7每小時的價格,現(xiàn)在0.355就可以拿到。

      image.png

      這次壓測對網(wǎng)絡(luò)要求極高,所以選擇的服務(wù)器必須有高帶寬以及高PPS,務(wù)必是同一個機房,便于內(nèi)網(wǎng)測試。

      第一次購買的002因為設(shè)置IP失誤導(dǎo)致弄殘了服務(wù)器,不得不釋放重新購買。

      image.png

      001~004配置多IP花了很長時間,后來才想到用命令批量設(shè)置。

      默認每個ECS只有一個私網(wǎng)IP,可以再增加9個,一共10個。

      經(jīng)@景洋 提醒,ECS可以通過 綁定彈性網(wǎng)卡,得到20個IP地址,后面的005/002/006都有20個IP。

      image.png

       

      環(huán)境準備

      優(yōu)化Tcp參數(shù)

      Windows默認只能使用5000個端口,需要優(yōu)化Tcp參數(shù)設(shè)置。

      把碼神工具拷貝到服務(wù)器,直接雙擊運行,工具->網(wǎng)絡(luò)調(diào)試工具,內(nèi)容區(qū)點擊右鍵,查看Tcp參數(shù),可以看到MaxUserPort是5000,右鍵還有個“設(shè)置最大Tcp”把各個參數(shù)值設(shè)置為最優(yōu)。無需重啟,直接生效。

      碼神工具也可以在這里下載,http://x.newlifex.com/XCoder_Install.exe

      碼神工具源碼:https://github.com/NewLifeX/XCoder

      image.png

       

      安裝.NET Core運行時

      .NET Core 3.1.6 也需要拷貝上去安裝,或者直接從 http://get.dot.net 下載。服務(wù)器網(wǎng)絡(luò)非常快。

      image.png

       

      網(wǎng)卡設(shè)置

      為了增加每臺測試端的連接數(shù),我們需要用netsh命令增加IP地址。這些IP地址來自于ECS設(shè)置的輔助私網(wǎng)IP。請一定要申請輔助私網(wǎng)IP以后再去設(shè)置網(wǎng)卡,未申請的IP地址可能出問題,第一次購買的002就是這樣殘廢了。

       

      設(shè)置主網(wǎng)卡輔助私網(wǎng)IP

      image.png

      image.png

       

      設(shè)置彈性網(wǎng)卡輔助私網(wǎng)IP

      image.png

      image.png

      image.pngimage.png

      NetBench002

      netsh interface ip add address "以太網(wǎng)" 172.19.18.73 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.75 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.76 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.77 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.78 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.79 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.80 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.81 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.82 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.83 255.255.0.0 172.19.19.253
      
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.74 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.84 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.85 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.86 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.87 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.88 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.89 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.90 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.91 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.92 255.255.0.0 172.19.19.253
      
      netsh interface ip add dns name="以太網(wǎng)" addr=100.100.2.136
      netsh interface ip add dns name="以太網(wǎng)" addr=100.100.2.138
      
      netsh interface ip add dns name="以太網(wǎng) 2" addr=100.100.2.136
      netsh interface ip add dns name="以太網(wǎng) 2" addr=100.100.2.138

       

      NetBench005

      netsh interface ip add address "以太網(wǎng)" 172.19.18.53 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.55 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.56 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.57 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.58 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.59 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.60 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.61 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.62 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng)" 172.19.18.63 255.255.0.0 172.19.19.253
      
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.54 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.64 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.65 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.66 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.67 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.68 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.69 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.70 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.71 255.255.0.0 172.19.19.253
      netsh interface ip add address "以太網(wǎng) 2" 172.19.18.72 255.255.0.0 172.19.19.253
      
      netsh interface ip add dns name="以太網(wǎng)" addr=100.100.2.136
      netsh interface ip add dns name="以太網(wǎng)" addr=100.100.2.138
      
      netsh interface ip add dns name="以太網(wǎng) 2" addr=100.100.2.136
      netsh interface ip add dns name="以太網(wǎng) 2" addr=100.100.2.138

       

      測試程序準備

      我們采用網(wǎng)絡(luò)庫例程來充當測試程序。

      服務(wù)端,https://github.com/NewLifeX/NewLife.Net/tree/master/EchoTest

      客戶端,https://github.com/NewLifeX/NewLife.Net/tree/master/Benchmark

      源代碼在這里有詳細講解

      此處為語雀文檔,點擊鏈接查看: https://www.yuque.com/go/doc/8990258

       

      二者都需要Release編譯,以減少調(diào)試日志輸出。

      為了減少內(nèi)存占用,我們需要修改配置文件`Config\Socket.config`,把緩沖區(qū)大小從64k改為1k

      <?xml version="1.0" encoding="utf-8"?>
      <Socket>
        <!--網(wǎng)絡(luò)調(diào)試-->
        <Debug>false</Debug>
        <!--會話超時時間。默認20*60秒-->
        <SessionTimeout>7200</SessionTimeout>
        <!--緩沖區(qū)大小。默認64k-->
        <BufferSize>1024</BufferSize>
      </Socket>

      服務(wù)端客戶端都要修改這個配置,否則內(nèi)存占用過大。

       

      我們選定001作為主服務(wù)器,內(nèi)網(wǎng)IP是172.19.18.4,拷貝EchoTest到服務(wù)器目錄,雙擊跑起來,運行模式選擇1,服務(wù)端,開始監(jiān)聽1234端口。

      002~006作為測試端,配置環(huán)境后,拷貝Bench到服務(wù)器目錄,打開cmd,輸入一下命令跑起來(以005為例):

      netbench.exe -c 1000000 -n 1000 -i 30000 -b 172.19.18.53-72 tcp://172.19.18.4:1234

      各參數(shù)解讀如下:

      • -c 1000000,表示100萬并發(fā),也就是100萬個tcp連接。003/004只有10個私有IP,這里最高只能10*5w=50w
      • -n 1000,每個連接收發(fā)1000次數(shù)據(jù);
      • -i 30000,兩次收發(fā)數(shù)據(jù)之間間隔30秒;
      • -b 172.19.18.53-72,發(fā)起連接時,綁定本地IP地址172.19.18.73到172.19.18.72,這些IP會均攤前面的100萬
      • tcp://172.19.18.4:1234,指定目標服務(wù)端的協(xié)議地址和端口

       

      00:45達到100萬長連接

      003和004各自貢獻了50萬連接,它們只有10個IP。

      服務(wù)端在0點45分達到100萬在線,非常穩(wěn)定,服務(wù)端和客戶端沒有出現(xiàn)任何錯誤。CPU和內(nèi)存占用也很好。

      image.png

      image.png

      image.png

      image.png

      image.png

      最后這張網(wǎng)絡(luò)圖可以看到,前面測試百萬連接是,增長很快,實際上導(dǎo)致了部分連接失敗(<0.01%),后來加上參數(shù)控制了連接速度,才有穩(wěn)步爬坡。

       

      01:19突破200萬長連接

      在003/004達到100萬長連接并維持30分鐘后,先后開啟005和002,預(yù)期朝著300萬方向走。

      在1點19分左右,突破200萬長連接。此時,CPU和內(nèi)存的壓力都很大,部分測試機的連接開始斷開。

      經(jīng)檢查,主服務(wù)器內(nèi)存不足,導(dǎo)致處理能力變?nèi)酰倭靠蛻舳苏J為連接超時,執(zhí)行自動重連,讓服務(wù)器壓力加大,形成雪崩。

      image.png

      image.png

      image.png

      image.png

       

      總結(jié)

      超量完成了預(yù)期目標,100萬=>200萬。如果這次選擇48G或96G內(nèi)存作為主服務(wù)器,也許真有可能上300萬長連接。

      2017年做的2266萬tps吞吐量測試

      此處為語雀文檔,點擊鏈接查看: https://www.yuque.com/go/doc/10610986

       

      8月2日上午再戰(zhàn)300萬

      購買12C96G高配實例,杭州區(qū)便宜,編號NetBench007

      image.png

      IP設(shè)置

      netsh interface ip add address "以太網(wǎng)" 172.16.188.92 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng)" 172.16.188.94 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng)" 172.16.188.95 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng)" 172.16.188.96 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng)" 172.16.188.97 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng)" 172.16.188.98 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng)" 172.16.188.99 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng)" 172.16.188.100 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng)" 172.16.188.101 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng)" 172.16.188.102 255.255.240.0 172.16.191.253
      
      netsh interface ip add address "以太網(wǎng) 2" 172.16.188.93 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng) 2" 172.16.188.103 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng) 2" 172.16.188.104 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng) 2" 172.16.188.105 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng) 2" 172.16.188.106 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng) 2" 172.16.188.107 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng) 2" 172.16.188.108 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng) 2" 172.16.188.109 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng) 2" 172.16.188.110 255.255.240.0 172.16.191.253
      netsh interface ip add address "以太網(wǎng) 2" 172.16.188.111 255.255.240.0 172.16.191.253
      
      netsh interface ip add dns name="以太網(wǎng)" addr=100.100.2.136
      netsh interface ip add dns name="以太網(wǎng)" addr=100.100.2.138
      
      netsh interface ip add dns name="以太網(wǎng) 2" addr=100.100.2.136
      netsh interface ip add dns name="以太網(wǎng) 2" addr=100.100.2.138

       

      準備就緒

      image.png

       

      先來一個億熱身

      開啟100個并發(fā)連接,每個密集請求100萬次,輕輕松松得到 130萬tps 的吞吐

      image.png

      使用IPv6會更強一點

      image.png

       

      正式開始

      本機壓測命令

      netbench.exe -c 1000000 -n 10000 -i 60000 -b * tcp://127.0.0.1:1234

      其中`-b *`表示綁定本機所有IP地址。

      image.png

      3分鐘輕松上100萬

      由于沒有控制連接速度,期間有小量連接失敗。控制臺那里有日志時間,同時可以看到客戶端服務(wù)端連接數(shù)一致。

      image.png

      我們等它穩(wěn)定一段時間,再去準備更多服務(wù)器

      image.png

      從11:40開始,截止現(xiàn)在14:16,持續(xù)兩個半小時。建立999742個連接,現(xiàn)存也是999742,最大值999743說明中途有一個連接斷開,但是重連成功了。

       

      增加測試機資源

      再買5臺同樣配置服務(wù)器,編號NetBench008~NetBench012

      image.png

      開始配置NetBench008,每次打命令太要命了,我們給碼神工具增加一個批量設(shè)置IP的功能。

      image.png

      從阿里云ECS控制臺把輔助私網(wǎng)IP復(fù)制過來,點擊“設(shè)置IP”,即可把這些IP地址設(shè)置到網(wǎng)卡上。

      杭州區(qū)服務(wù)器的網(wǎng)絡(luò)限制很嚴格(可能別的區(qū)也這樣),在哪張網(wǎng)卡上申請的IP地址,只能設(shè)置到這張網(wǎng)卡上。即使每臺服務(wù)器有兩張網(wǎng)卡,也不能把各自的輔助私網(wǎng)IP設(shè)置錯了,否則無法使用。

       

      15:51達到300萬長連接

      服務(wù)端進程占用內(nèi)存15G

      image.png

       

      15:54達到400萬長連接

      服務(wù)器0核4核爆滿

      image.png

      15:56操作系統(tǒng)直接掛了,自動重啟,連接數(shù)峰值404萬。

      image.png

       

      吞吐率壓測

      5臺測試機,每臺向服務(wù)端建立100個連接,每個連接發(fā)送100萬個消息,每個端平均速度170萬tps

      服務(wù)端總速度 170萬*5=1050萬tps

      CPU很滿,網(wǎng)卡PPS太高

      image.png

      image.png

      image.png

      image.png

       

      posted @ 2020-08-03 08:22  大石頭  閱讀(5233)  評論(30)    收藏  舉報
      主站蜘蛛池模板: 欧洲一区二区中文字幕| 成在线人免费视频| 国产一区二区一卡二卡| 无码任你躁久久久久久老妇| 粗壮挺进人妻水蜜桃成熟| 国内精品视频区在线2021| 中文字幕无码专区一VA亚洲V专| 国产一级三级三级在线视| 婷婷色香五月综合缴缴情香蕉| 自拍偷拍视频一区二区三区 | 最新国产在线拍揄自揄视频 | 天天躁日日躁狠狠躁性色avq| 中文人妻熟妇乱又伦精品| 苍井空毛片精品久久久| 久久综合给合久久狠狠狠88| 国内精品自线在拍| 成 年 人 黄 色 大 片大 全| 黄色三级亚洲男人的天堂| 国产免费午夜福利在线播放| 日韩精品福利视频在线观看| 国产午夜精品福利视频| 久久久久人妻精品一区三寸| 亚洲国模精品一区二区| 中文有无人妻vs无码人妻激烈| 亚洲日本国产精品一区| 一区二区不卡国产精品| ww污污污网站在线看com| 色欲av无码一区二区人妻| 一亚洲一区二区中文字幕| 国产精品久久蜜臀av| 天美传媒xxxxhd videos3| 人妻人人妻a乱人伦青椒视频| 国产成人人综合亚洲欧美丁香花| 山阳县| 99re热这里只有精品视频| 被黑人巨大一区二区三区| 粗壮挺进人妻水蜜桃成熟| 草草浮力影院| 日韩三级一区二区在线看| 亚洲国产美女精品久久久| 国内精品免费久久久久电影院97|