這篇文章主要講解了“docker容器中的網(wǎng)絡(luò)延遲相對(duì)于宿主機(jī)有多高”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“docker容器中的網(wǎng)絡(luò)延遲相對(duì)于宿主機(jī)有多高”吧!
網(wǎng)頁(yè)設(shè)計(jì)是網(wǎng)站建設(shè)的前奏,好的網(wǎng)頁(yè)設(shè)計(jì)更深度的剖析產(chǎn)品和設(shè)計(jì)風(fēng)格定位,結(jié)合最新的網(wǎng)頁(yè)設(shè)計(jì)流行趨勢(shì),與WVI應(yīng)用標(biāo)準(zhǔn),設(shè)計(jì)出具企業(yè)表現(xiàn)力,大器而深穩(wěn)的網(wǎng)站界面設(shè)。成都創(chuàng)新互聯(lián)公司公司2013年成立,是成都網(wǎng)站建設(shè)公司:提供企業(yè)網(wǎng)站設(shè)計(jì),高端網(wǎng)站設(shè)計(jì),營(yíng)銷型企業(yè)網(wǎng)站建設(shè)方案,響應(yīng)式網(wǎng)站設(shè)計(jì),小程序制作,專業(yè)建站公司做網(wǎng)站。
本次驗(yàn)證工具我使用了Netperf,Netperf是一種網(wǎng)絡(luò)性能的測(cè)量工具,可以測(cè)試基于TCP或UDP吞吐、響應(yīng)速率。Netperf包括Clien和Server端。Server端主要用來(lái)實(shí)現(xiàn)監(jiān)聽(tīng)工作,Client端進(jìn)行測(cè)試。根據(jù)流量傳輸方式可分為以下三種:
單方向最大吞吐傳輸大量數(shù)據(jù)。
雙方向交互傳輸數(shù)據(jù),對(duì)于tcp為單連接。
針對(duì)tcp,每個(gè)連接交互傳輸數(shù)據(jù)。
總共兩臺(tái)機(jī)器,一臺(tái)機(jī)器啟動(dòng)了NetPerf服務(wù)端;另外一臺(tái)機(jī)器分別在容器內(nèi)和宿主機(jī)上運(yùn)行Netperf客戶端。
1.下載wget http://repo.iotti.biz/CentOS/7/x86_64/netperf-2.7.0-1.el7.lux.x86_64.rpm
2.安裝 rpm -ivh netperf-2.7.0-1.el7.lux.x86_64.rpm
3.啟動(dòng) netserver
首先直接在宿主機(jī)上安裝Netperf,然后進(jìn)行網(wǎng)絡(luò)性能測(cè)試,如下所示:
TCP_RR 是 netperf 里專門用來(lái)測(cè)試網(wǎng)絡(luò)延時(shí)的,缺省每次運(yùn)行10秒鐘。運(yùn)行以后,我們還要計(jì)算平均每秒鐘 TCP request/response 的次數(shù),這個(gè)次數(shù)越高,就說(shuō)明延時(shí)越小。如上所示,總共測(cè)試三輪,分別得出20146、20248、20221,平均是20221/s
在同一臺(tái)客戶端機(jī)器上,啟動(dòng)docker服務(wù),并安裝Netperf進(jìn)行驗(yàn)證,命令如下所示[root@test ~]# docker run -d --name test -v /home/net/:/home/net/ docker.harbor.com/centos:7.8 sleep 36000
我這里相當(dāng)于是把Netperf掛載到容器內(nèi)部,然后執(zhí)行:
docker exec -it test bash
進(jìn)入容器內(nèi)部安裝Netperf。
同樣運(yùn)行了三輪,分別得出的是19546、19541、19259,平均是19448/s。
從數(shù)據(jù)上看容器中比宿主機(jī)少了773次。773/20221= 4%也就是容器中網(wǎng)絡(luò)處理速度下降了4%,后來(lái)在網(wǎng)上找到了一些paper,有人得出結(jié)論是10%上下
。
[root@test ~]# docker run -d --name test --network host -v /home/net/:/home/net/ docker.harbor.com/centos:7.8 sleep 36000
可以發(fā)現(xiàn)當(dāng)使用共享宿主機(jī)網(wǎng)絡(luò)模式下,其網(wǎng)絡(luò)延遲跟宿主機(jī)基本沒(méi)有差異。
網(wǎng)絡(luò)延遲的原因也不難想象,因?yàn)槊看尉W(wǎng)絡(luò)數(shù)據(jù)傳輸都要經(jīng)過(guò)veth接口,然后向外發(fā)送。這個(gè)虛擬的網(wǎng)絡(luò)設(shè)備除了沒(méi)有硬中斷,只有軟中斷處理過(guò)程,其它跟網(wǎng)卡發(fā)送數(shù)據(jù)邏輯基本相似,雖然發(fā)送速度很快。但即便如此也帶來(lái)了一定的網(wǎng)絡(luò)開(kāi)銷,從而造成了網(wǎng)絡(luò)延遲。
感謝各位的閱讀,以上就是“docker容器中的網(wǎng)絡(luò)延遲相對(duì)于宿主機(jī)有多高”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)docker容器中的網(wǎng)絡(luò)延遲相對(duì)于宿主機(jī)有多高這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!