手机流量共享 linux,linux – 通过HTB共享带宽和优先处理实时流量,哪种方案更好?...
我想在我們的互聯網線路上添加一些流量管理.在閱讀了大量文檔之后,我認為HFSC對我來說太復雜了(我不了解所有曲線的東西,我擔心我永遠不會把它弄好),CBQ不推薦,基本上HTB就是通往適合大多數人.
我們的內部網絡有三個“段”,我想在這些段之間或多或少地分享帶寬(至少在開始時).此外,我必須根據至少三種流量(實時流量,標準流量和批量流量)確定流量的優先級.帶寬共享并不像實際流量應盡可能始終被視為高級流量那樣重要,但當然也沒有其他流量類別可能會餓死.
問題是,什么更有意義,也保證更好的實時吞吐量:
>每個段創建一個類,每個具有相同的速率(根據HTB開發人員,優先級對于沒有葉子的類沒有關系),并且這些類中的每一個都有3個子類(葉子)用于3個優先級(具有不同的優先事項和不同的費率).
>每個優先級有一個類,每個具有不同的速率(再次優先級無關緊要),每個具有3個子類,每個段一個,而實時類中的所有3個具有最高的prio,最低的prio批量類,等等.
我將嘗試使用以下ASCII藝術圖像使其更清晰:
Case 1:
root --+--> Segment A
| +--> High Prio
| +--> Normal Prio
| +--> Low Prio
|
+--> Segment B
| +--> High Prio
| +--> Normal Prio
| +--> Low Prio
|
+--> Segment C
+--> High Prio
+--> Normal Prio
+--> Low Prio
Case 2:
root --+--> High Prio
| +--> Segment A
| +--> Segment B
| +--> Segment C
|
+--> Normal Prio
| +--> Segment A
| +--> Segment B
| +--> Segment C
|
+--> Low Prio
+--> Segment A
+--> Segment B
+--> Segment C
案例1似乎大多數人都會這樣做,但除非我沒有正確閱讀HTB實施細節,否則案例2可能會提供更好的優先級.
HTB手冊說,如果一個類已經達到它的速率,它可以從其父級借用,并且在借用時,具有更高優先級的類總是首先獲得帶寬.但是,它還說,無論優先級如何,在較低樹級別上具有可用帶寬的類總是優先于較高樹級別的類.
讓我們假設以下情況:段C不發送任何流量.段A只能盡可能快地發送實時流量(足以使鏈路單獨飽和),而段B只發送大量流量,速度盡可能快(再次,足以使單獨的完整鏈路飽和).會發生什么?
情況1:
段A->高Prio和段B-> Low Prio都有要發送的數據包,因為A-> High Prio具有更高的優先級,它將始終首先被調度,直到它達到其速率.現在它試圖從A段借款,但由于A段處于較高水平而且B段> Low Prio尚未達到其速率,因此該類現在首先服務,直到它也達到該速率并且想要借入從B段開始.一旦兩者都達到了他們的費率,兩者都再次處于同一水平,現在A – >&High Prio將再次獲勝,直到它達到A段的速度.現在它試圖從根借(由于段C沒有使用任何保證的流量,因此它有足夠的流量備用,但同樣,它必須等待段B->低Prio也達到根級別.一旦發生這種情況,將再次考慮優先級,此時段A-> High Prio將獲得段C留下的所有帶寬.
案例2:
高Prio->段A和低Prio->段B都有要發送的數據包,再次高Prio->段A將獲勝,因為它具有更高的優先級.一旦它達到它的速率,它試圖借用具有帶寬備用的High Prio,但是在更高的水平上,它必須再次等待低Prio-> B段B也達到它的速率.一旦兩者都達到了他們的速度并且都必須借用,高Prio-> A段將再次獲勝,直到它達到High Prio級別的速度.一旦發生這種情況,它會嘗試從root中借用,這又剩下足夠的帶寬(此時Normal PRo的所有帶寬都沒有使用),但它必須再次等待,直到低Prio-> B段達到速率限制為止Low Prio類,也試圖從root借用.最后,兩個類都試圖從root中借用,優先級被考慮在內,而High Prio-> Segment A獲得所有帶寬已經剩下的.
這兩種情況看起來都是次優的,因為實時流量有時必須等待大量流量,即使有足夠的帶寬可以借用.但是,在情況2中,實時流量似乎必須等于情況1,因為它只需要等到達到批量流量速率,這很可能小于整個流量的速率(以防萬一) 1這是它必須等待的速度).或者我在這里完全錯了?
我想到了更簡單的設置,使用優先級qdisc.但優先隊列有一個很大的問題,即如果它們不受某種限制,就會導致饑餓.饑餓是不可接受的.當然,可以將TBF(令牌桶過濾器)放入每個優先級以限制速率,從而避免饑餓,但是這樣做時,單個優先級類不能再自行飽和鏈接,即使所有其他優先級類別也是如此是空的,TBF將防止這種情況發生.這也是次優的,因為如果沒有其他類目前需要其中任何一個類,為什么一個類不能獲得100%的線路帶寬?
有關此設置的任何意見或想法?使用標準的tc qdiscs似乎很難.作為程序員,如果我可以簡單地編寫自己的調度程序(我不允許這樣做),這是一項非常容易的任務.
總結
以上是生活随笔為你收集整理的手机流量共享 linux,linux – 通过HTB共享带宽和优先处理实时流量,哪种方案更好?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打电话怎么能不显示电话号码
- 下一篇: linux shell ls -l,li