最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

講個故事,告訴你網(wǎng)絡(luò)性能瓶頸分析

2020-10-24 11:22 作者:軟件測試檸檬班Pro  | 我要投稿

在性能測試中,談到網(wǎng)絡(luò)問題,其實(shí),在沒有特別說明的情況下,我們一般講的都是?HTTP 協(xié)議下的網(wǎng)絡(luò)瓶頸問題,那,對于這個問題,我們?nèi)绾蝸矸治瞿兀?/p>

計(jì)算機(jī)中的網(wǎng)絡(luò),跟我們現(xiàn)實(shí)生活中的交通網(wǎng)絡(luò),其實(shí)也是一個道理,可以類比。你從住的地方,到你公司上班,人的位置,在整個過程中發(fā)生了移動,就相當(dāng)于我們網(wǎng)絡(luò)中一個數(shù)據(jù)包進(jìn)行了傳輸,我們可以這樣類比,來剖析下這個移動過程:

首先,住的地方是已知的,住的很豪華,有非常多的門,你要去上班,從任意一個門出來都可以,但是門再多,它也是有一定數(shù)量的對吧。

從門出來,你就會想,用什么樣的交通工具,如果使用 4 個輪子的車子,那接下來就會選擇道路,因?yàn)椴煌牡缆罚瑩矶虑闆r可能不一樣。

現(xiàn)在,你開車到了公司樓下,你又會選擇從哪個門進(jìn)公司。如果時間緊,人又多,一窩蜂都擠到一個門,你小身板,可能就擠不進(jìn)去,所以你可能會挑一個足夠?qū)捵屇氵M(jìn)去的門。

對吧。這個過程,相信大家都能理解。

接下來,我們根據(jù)這個過程,分析下,影響我們上班過程的瓶頸有哪些?

門很多,但是總有個數(shù)量,萬一門不夠,是不是就出不去了?所以,這個出口門,可能會是個瓶頸。

交通工具和道路。不同的交通工具,速度不一樣;道路等級、寬窄、流通量都會影響通行速度,都可能是瓶頸。

公司入口門,如果大家都在同一時間點(diǎn)從門口進(jìn)來,是不是就會要排隊(duì),或者進(jìn)不來,那這個入口門,也可能會是瓶頸。

進(jìn)入公司后,要進(jìn)入辦公室,辦公室的門寬度,是不是也可能是個瓶頸。
現(xiàn)在,我們知道了影響我們上班是否遲到到的瓶頸了,其實(shí),在我們網(wǎng)絡(luò)性能分析中,也是類似的。

用 HTTP 協(xié)議來規(guī)范網(wǎng)絡(luò)通信,用 TCP\UDP 進(jìn)行數(shù)據(jù)傳輸,它就是我們上班的交通工具。

TCP 連接有四個組成元件,源地址、源端口、目的地址、目的端口。源地址,就是你自己機(jī)器的 ip,相當(dāng)于你住的地址,一般都是唯一的;源端口,就是發(fā)起通信的端口,就是你從家里出來的門,你發(fā)起一次通信,就會要先找一個端口,打開端口,從端口出去,然后關(guān)閉端口。這個過程,作為常規(guī)的使用,完全沒有問題,所以平常大家都不關(guān)注這個。

但是,端口是很多,也耐不住你使勁的‘造’?。?/strong>就像你家很豪華,門再多,也耐不住你浪費(fèi)啊。)在我們性能測試時,就是使勁的‘造’,會打開大量的端口,處于占用狀態(tài),沒有獲得到端口的就出不去,從而就可能出現(xiàn),端口不夠用的情況。

ok,現(xiàn)在明白網(wǎng)絡(luò)性能的第一個可能的瓶頸是什么了吧!端口不夠用??!

1、源地址端口不夠用

大家在公司日常用的更多的電腦就是 Windows,那 windows 的電腦端口有多少呢?這個要說原理和理論,估計(jì)很多同學(xué)就會蒙圈了,所以就不大談理論了。

我們可以先簡單理解為端口總共有?65535 個,其中

① 0~1023(共 1024 個),為公認(rèn)端口,緊密的綁定在一些特定服務(wù)上,如 21 端口就是 FTP 服務(wù),80 端口就是 HTTP 服務(wù);

② 1024~49151(共 48127 個),為注冊端口,松散的綁定于一些服務(wù),如 8080 端口常常就用于綁定 Tomcat 服務(wù);

③ 49152~65535(共 16384 個),為動態(tài)或私有端口。

看了這樣一組數(shù)據(jù),知道在做性能測試時,你本機(jī) TCP 通信最多能消耗多少個端口了嗎?

—— 65535 ?

—— 16384 ?

哈哈,都不對。

實(shí)際上,一臺電腦 TCP 通信端口應(yīng)該是在 16400+ 個,當(dāng)然也不會超過太多。為什么不是 16384,而是這樣一個值呢?

因?yàn)椤远丝凇杏胁糠侄丝冢矔糜?tcp 通信。所以在性能測試時,最大可用端口范圍會稍微大一點(diǎn)。

看到這,是不是就特別想知道怎么查看 Windows 系統(tǒng)中,TCP 端口連接占用情況呢?

那,接下來就給大家講解一個非常簡單的命令:

Windows 系統(tǒng)查看當(dāng)前 TCP 連接數(shù)

Linux 呢?是你的菜嗎?

netstat -ano |grep 'tcp' | wc -l?這個知道嗎?

好,現(xiàn)在已經(jīng)知道如何實(shí)時查看了,那實(shí)際執(zhí)行性能測試,如果出現(xiàn)源地址端口不夠用,會出現(xiàn)什么樣的問題表現(xiàn)呢?

Address already in use: connect

對于這樣的錯,你見過嗎?

相信只要做過性能測試的人員,或多或少都遇到過吧!

雖然出現(xiàn) Address already in use: connect 這個問題,原因很多,但源地址端口不夠用,就是其中一個常見的原因。

我們可以嘗試如下方法調(diào)優(yōu):

第一個調(diào)優(yōu)辦法:

如果是使用 jmeter 進(jìn)行性能測試,出現(xiàn)上述報(bào)錯,可以直接去掉 http 取樣器的 【使用 KeepAlive】 復(fù)選勾。

第二個調(diào)優(yōu)辦法:

  • 打開系統(tǒng)的注冊表,找到 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters], 看下右側(cè)的配置信息,有沒有 MaxUserPort 配置項(xiàng)

  • 有,則修改值為 65534(十進(jìn)制),確定

  • 沒有,則新增一個 DWORD, name 為 MaxUserPort, value 為 65534(十進(jìn)制),確定

  • 重啟系統(tǒng)

完成這一步,我們已經(jīng)知道,我們的系統(tǒng)當(dāng)前端口可用范圍已經(jīng)達(dá)到最大。

接下來,我們還需要知道,端口被使用后,如果我們能及時回收,再利用是不是能提高端口利用率,這樣是不是就變相增加了端口了呢?

所以,第二個調(diào)優(yōu)方法就是,釋放、回收端口。

第三個調(diào)優(yōu)辦法:

  • 打開系統(tǒng)的注冊表,找到 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters], 看下右側(cè)的配置信息,有沒有 TcpTimedWaitDe 配置項(xiàng)

  • 有,則修改值為 10(十進(jìn)制,10 秒),確定

  • 沒有,則新增一個 DWORD, name 為 TcpTimedWaitDe, value 為 10(十進(jìn)制),確定

  • 重啟系統(tǒng)

完成了這兩步,我們就已經(jīng)完成了發(fā)送方的網(wǎng)絡(luò)調(diào)優(yōu)。

現(xiàn)在,我們已經(jīng)知道如何解決從家里出來可能的問題了,接下來,就是開車,去上班。

把車開出來,先經(jīng)過一段引路,然后才能進(jìn)入主干道,主干道通行一段距離后,下主干道,進(jìn)入一段公司引路,再進(jìn)入公司。

對吧!

其實(shí),我們的網(wǎng)絡(luò)數(shù)據(jù)傳輸,也可以這樣類比,網(wǎng)絡(luò)數(shù)據(jù)包要通過網(wǎng)卡,使用網(wǎng)絡(luò)傳輸介質(zhì)(如網(wǎng)線)在網(wǎng)絡(luò)中進(jìn)行傳輸,進(jìn)過多次周轉(zhuǎn),找到目標(biāo)服務(wù)器,通過服務(wù)器網(wǎng)卡,進(jìn)入服務(wù)器內(nèi)部。

同樣的,我們能分析出:

  • 發(fā)送方的網(wǎng)卡速率有 10m、百兆、G 兆網(wǎng)卡,如果網(wǎng)卡不行,可能成為瓶頸。

  • 傳輸介質(zhì),有線、無線,有線的介質(zhì)(如雙絞線、同軸電纜、光纖)、路由的復(fù)雜度(如國內(nèi)、國外)等等,都會影響傳輸速度,這個有可能成為瓶頸。

  • 服務(wù)器接收數(shù)據(jù)的網(wǎng)卡速率,照樣也可能成為瓶頸

有這么多可能的瓶頸,那我們怎么判定網(wǎng)絡(luò)傳輸有沒有問題呢?這個相信大家都知道怎么做。

2、網(wǎng)絡(luò)傳輸通道瓶頸

Ⅰ、查看發(fā)起請求的機(jī)器網(wǎng)卡速率。

如果是 Windows10 電腦,可以在 “網(wǎng)絡(luò)連接” > 選中機(jī)器網(wǎng)卡,右鍵‘狀態(tài)’ > 查看彈窗中的‘速度’

Ⅱ、 檢查網(wǎng)絡(luò)傳輸路由,Windows 下執(zhí)行:

跟蹤完成。第 1 列,表示路由節(jié)點(diǎn)數(shù)量;第 2~4 列,表示連接到每個路由節(jié)點(diǎn)的速度、返回速度、多次連接反饋的平均值;最后的 ip,代表路由地址。

從這個就能看出在哪個節(jié)點(diǎn)時間長,可能有優(yōu)化空間。

Ⅲ、數(shù)據(jù)傳輸?shù)椒?wù)器了,現(xiàn)在要查看服務(wù)器的網(wǎng)卡信息。

通過這個命令,我們可以看到 ens33 這個網(wǎng)卡,目前設(shè)置的速度為 100Mb/s,這個已經(jīng)非常大了,如果這個值過低,可能就需要改大,可以執(zhí)行:

好了,現(xiàn)在我們知道如何查看確認(rèn)我們數(shù)據(jù)傳輸通道的問題了。

顯然,我們對于這個環(huán)節(jié)出現(xiàn)瓶頸,辦法不是很多。就像我們上班的路,我們能在引路上想些辦法,規(guī)劃好行車路線,但是我們對于主干道,幾乎無能為力。

3、目的地址端口瓶頸

這張圖,是不是完全沒有看懂什么意思?

其實(shí)我們的請求在服務(wù)器上,就是類似圖片這樣,非常多的請求來到服務(wù)器,最后都是通過某個端口,或者幾個端口真正獲取響應(yīng)數(shù)據(jù)。

首先,我們得知道,一臺機(jī)器,再強(qiáng),也只能接收一定量的請求,這個數(shù)量是有最大值的,我們可以通過:

Linux 機(jī)器上查看允許的連接配置

如果覺得這個配置的‘max user process' 和 'open files'太小,可以修改 /etc/security/limits.conf

修改完后, max user processes 就會改成 32768, open files 值變更為 16000

做完這波操作,就相當(dāng)于你對公司的入口門進(jìn)行了設(shè)置,根據(jù)你的需要調(diào)整了門的寬度。

接下來,就是要進(jìn)入你的辦公室了。

4、服務(wù)內(nèi)部端口瓶頸

首先我們可以查看下你當(dāng)前服務(wù)的端口連接數(shù)量:

這個命令執(zhí)行完后,你會獲得一個數(shù)值,這個數(shù)量到達(dá)一定的峰值之后,就不會再增長了,當(dāng)你測試結(jié)束的時候,這個峰值就會逐步降低。

這是怎么回事呢?

其實(shí),這就是我們服務(wù)的連接數(shù)量,而這個數(shù)量,是可以配置的。

如果你的服務(wù)是 tomat,可以在 Tomcat 的 conten.xml 中,配置

修改 maxThreads 的值,就是在修改我們的最大峰值。

注意,maxThreads 不是無限大的, 越大,相應(yīng)的消耗的資源也會越多。

好了,這就是我們常常進(jìn)行網(wǎng)絡(luò)性能瓶頸分析的幾個方面。你是不是都已經(jīng)掌握了呢?

說明:本文為檸檬班allen老師原創(chuàng),轉(zhuǎn)載需注明出處!

講個故事,告訴你網(wǎng)絡(luò)性能瓶頸分析的評論 (共 條)

分享到微博請遵守國家法律
海淀区| 泽普县| 平舆县| 靖安县| 乌审旗| 本溪| 大厂| 乾安县| 莫力| 武宁县| 虹口区| 铁岭县| 弥勒县| 津市市| 开江县| 来凤县| 洪泽县| 兖州市| 重庆市| 乐清市| 北票市| 凌源市| 禹城市| 万年县| 石家庄市| 大足县| 建始县| 陆川县| 南郑县| 靖宇县| 新昌县| 道真| 房产| 曲水县| 曲沃县| 闽侯县| 墨玉县| 塔河县| 确山县| 舟山市| 府谷县|