在Linux中如何限制帶寬速度以更好的測(cè)試應(yīng)用程序
【YINGSOO提醒】文章部分內(nèi)容來源互聯(lián)網(wǎng),不代表YINGSOO觀點(diǎn)!若有咨詢“在Linux中如何限制帶寬速度以更好的測(cè)試應(yīng)用程序”等有關(guān)服務(wù)器、云主機(jī)租用、托管、配置、價(jià)格問題,請(qǐng)立即咨詢YINGSOO客服,簡(jiǎn)單、便捷、高效!
【新品優(yōu)惠】香港站群服務(wù)器 | 臺(tái)灣100M服務(wù)器 | 服務(wù)器試用
【推薦閱讀】海外游戲服務(wù)器租用價(jià)格多少合適?該如何選擇
流量控制命令是每個(gè)網(wǎng)絡(luò)管理員都應(yīng)該知道的工具。tc所做的是允許管理員配置內(nèi)核包調(diào)度來模擬UDP/TCP應(yīng)用程序的包延遲和丟失,或者限制特定服務(wù)的帶寬使用。
我將在Ubuntu Server 18.04實(shí)例上進(jìn)行演示。您可以在任何Linux服務(wù)器上使用此命令,但是工具的安裝(如果沒有預(yù)裝)會(huì)有所不同。您還將需要一個(gè)具有sudo特權(quán)的用戶。
一、如何安裝tc命令
如果你發(fā)現(xiàn)tc命令在默認(rèn)情況下沒有安裝,在Ubuntu上它是用iproute2打包的。所以安裝如下:
sudo apt-get install iproute2 -y
二、基本用法
您必須做的第一件事就是找出要應(yīng)用于內(nèi)核數(shù)據(jù)包調(diào)度程序的接口的名稱。為此,發(fā)出命令:
ip a
該命令將列出所有網(wǎng)絡(luò)設(shè)備的信息(圖A)。
我將通過向計(jì)算機(jī)上的ens5接口添加恒定延遲來進(jìn)行演示。更具體地說,我將設(shè)備上的出站流量(出口)延遲200毫秒。為此,命令將是:
sudo tc qdisc add dev ens5 root tbf rate 1024kbit latency 50ms burst 1540
上面命令中的選項(xiàng)是:
qdisc告訴tc修改調(diào)度程序
add告訴tc添加新規(guī)則
dev ens5告訴tc該規(guī)則將應(yīng)用于設(shè)備ens5
root告訴tc修改出站流量調(diào)度程序
tbf速率1024kbit告訴tc將網(wǎng)絡(luò)降低到1024kbit速率
50ms延遲告訴tc我們將網(wǎng)絡(luò)延遲50ms
1540告訴tc我們的存儲(chǔ)大小
發(fā)出命令后,可以驗(yàn)證參數(shù)是否已通過命令應(yīng)用:
sudo tc qdisc show dev ens5
您應(yīng)該看到正確配置了每個(gè)選項(xiàng)(圖B)。
要?jiǎng)h除新添加的規(guī)則,請(qǐng)發(fā)出命令:
sudo tc qdisc del dev ens5 root
要記住的一件非常重要的事情是,一次只能將一個(gè)規(guī)則應(yīng)用于一個(gè)接口。因此,為了創(chuàng)建與接口不同的規(guī)則,必須首先刪除以前的規(guī)則。
三、如何使用tc命令模擬丟包
舉例來說,假設(shè)您正在開發(fā)應(yīng)用程序,則需要進(jìn)行測(cè)試以查看其如何處理網(wǎng)絡(luò)上的數(shù)據(jù)包丟失。這對(duì)于確保您的應(yīng)用程序可以容忍配置不良或不可靠的網(wǎng)絡(luò)至關(guān)重要。這是兩個(gè)模擬tc丟包的示例tc命令:
sudo tc qdisc add dev ens5 root netem loss 0.1%
上面的命令將隨機(jī)丟棄數(shù)據(jù)包,概率為0.1%。
如果我們希望丟失數(shù)據(jù)包的概率為0.3%,而先前的數(shù)據(jù)包的丟包率為25%,該怎么辦?該命令將是:
sudo tc qdisc add dev ens5 root netem loss 0.3% 25%
運(yùn)行上述命令后,對(duì)網(wǎng)絡(luò)上的另一臺(tái)計(jì)算機(jī)執(zhí)行ping測(cè)試,您應(yīng)該看到指示的數(shù)據(jù)包丟失(圖C)。
有了該規(guī)則,啟動(dòng)您的應(yīng)用程序,并查看當(dāng)網(wǎng)絡(luò)達(dá)不到標(biāo)準(zhǔn)時(shí)的運(yùn)行情況。如果應(yīng)用程序失敗,則您還有更多工作要做。
如果該特定的丟包規(guī)則不足以滿足您的要求,則可以采用Gilbert-Elliot方案,該方案定義了兩種狀態(tài):
Good
Bad
該方案為網(wǎng)絡(luò)損害提供了更緊密的模型,而不是簡(jiǎn)單的數(shù)據(jù)包丟失。要使用Gilbert-Elliot方案,該命令應(yīng)如下所示:
sudo tc qdisc add dev ens5 root netem loss gemodel 1% 10% 70% 0.1%
現(xiàn)在,當(dāng)我們運(yùn)行ping測(cè)試時(shí),我們應(yīng)該會(huì)看到與以前相似的數(shù)字,但是對(duì)于您的測(cè)試目的,數(shù)據(jù)包丟失應(yīng)該更加真實(shí)(圖D)。
在這里,您將看到一些使用tc命令在Linux機(jī)器上調(diào)整網(wǎng)絡(luò)流量的示例,因此您可以更好地測(cè)試可識(shí)別網(wǎng)絡(luò)的應(yīng)用程序。有關(guān)tc的更多信息,請(qǐng)發(fā)出命令man tc并仔細(xì)閱讀手冊(cè)頁。
暢銷產(chǎn)品:香港站群服務(wù)器租用去首頁注冊(cè)領(lǐng)券!YINGSOO推出Phala挖礦服務(wù)器、Chia奇亞農(nóng)場(chǎng)服務(wù)器、Swarm物理節(jié)點(diǎn)服務(wù)器、Swarm母雞服務(wù)器、Swarm云節(jié)點(diǎn)服務(wù)器、國(guó)內(nèi)礦機(jī)服務(wù)器海外托管、《Phala PHA挖礦資料大全》,《swarm bzz挖礦資料大全》,Swarm Bee節(jié)點(diǎn)租用請(qǐng)咨詢YINGSOO客服!官網(wǎng)www.sddonglingsh.com
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。