最近接觸到幾個小工程用了不少qos知識,主要是限速之類的,用到了cir_cbs_ebs 理解cir_cbs_ebs三者之間的關係,更好的應用qos。
平均速率:向桶中放置令牌的速率,即允許的流的平均速度。通常設定為 cir(committed information rate,承諾資訊速率)。
突發尺寸:令牌桶的容量,即每次突發所允許的最大的流量尺寸。通常設定為cbs(committed burst size,承諾突發尺寸),設定
口流速200l/s,上部進水口注水速度100l/s,顯然入不支出。2000/(200-100)=20s.20秒後桶內水流完。這時出水口的流速變為
1、在令牌桶原理中,cbs(承諾突發尺寸)+ebs(超額突發尺寸excess burst size)=令牌桶大小,預設情況下ebs為0,cbs採用默
認值,cbs和ebs單位是byte,即位元組
2、cir(承諾資訊速率)為每秒往令牌桶新增令牌的速度,單位是kbps,注意是bit每秒,不是byte每秒,如配置qos car outbound
carl 1 cir 64,其含義就是對carl佇列1在介面出方向配置cir為64kbps,此時預設cbs為4000(byte),即令牌桶大小為4000位元組
,每秒往桶內注入令牌的速率是64kbps,令牌桶就和水桶一樣,cir最多把桶注滿,並不會多出。
3、假設乙個包,大小是1500位元組,如果此時桶內令牌數量是2000位元組,那麼該資料報通過,令牌數量變成2000-1500=500(位元組)
,如果此時再來乙個1000位元組的資料報,那麼令牌就不夠,這個資料報就有可能被丟棄或remark
4、上面只是原理介紹,實際情況是動態變化(一邊有令牌注入,一邊有資料報**取令牌)的,需要計算機**才能看到令牌桶的
動態變化
5、car(承諾訪問數率)用來限速,比如限制ftp、http、每ip限速,並不用來做流量保證,如voip、video業務優先**。
頻寬是被共享的,因此當做qos的car的時候如果某使用者的,沒有被限制頻寬,則可能會由於,不限速度的使用者流量過大而搶占,你
所用car保證的使用者。此時需要用佇列技術。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
qos的一些基本概念。
cir=放置令牌到桶內的速度這個是乙個平均值單位是bps,即1秒內放的令牌個數。
cbs=令牌桶的尺寸大小
業務流的速度=取令牌的速度
tc=週期性新增令牌的時間間隔cbs/cir=tc
實際中比較常見的有兩種實現方式:(1)週期性的新增,新增的時間間隔就是令牌桶的容量與新增速率的比值:t c=cbs/cir,每次
新增的令牌數為cbs 個;
還有種(本次加入令牌的時間-上次加入令牌的時間)xcir 超額的被丟棄,這種是一次加滿沒有tc間隔的。tc會增加時延
突發=瞬間消耗桶內所有令牌
ebs=cbs+ebs請不要把ebs和cbs的值設定成一樣,否則,超額突發=0最好是大於cbs的2倍,這樣允許超額突發
cir=cbs,ebs=0 則速度就是cir所約定的,因為cir是放令牌的速度最終要看cbs是桶大小,這個時候cbs限制了cir能放的令牌量。
此時業務流量如果持續小於cir,則會得到cbs的突發量。因為小於cir是放令牌的速度,業務持續小於cir,會使得令牌在桶內累計
。此時業務如果大於cir,會因為得不到令牌而被丟棄
cir>cbs,ebs=0 則速度是桶子的突發尺寸cbs所定義的,此時因為cir是放置令牌的,但是桶沒有cir所需求的大。那麼業務流這個時
候只能得到cbs大小的令牌,突發的頻率很高,只要業務達到cir的速度,則每次都會把桶內的令牌消耗完,當然業務流不一定每次
都能達到cir的速度。
cir,桶內的令牌就沒有了,這個時候需要等待tc週期,(tc=(cbs+ebs)/cir),因此可能會增大網路時延,當然這只是突發流量才會。
這個時候業務速度如果比cir小,則可能累計出大於cir的突發流量。因為會持續向桶內新增令牌,直到超過ebs,最後令牌將被丟棄
,所以業務如果不去取令牌,會導致令牌積壓,之後業務將得到突發。但是如果業務很平均,則不會導致突發,因為cir每次放入的
令牌,都被使用者取掉了,當然業務一般不會很平均,因此cir注入的令牌也不一定能消耗完每次,這樣就看你的令牌桶是否允許業務
突發了。
因此得出,推薦配置cbs=cir ebs大於cbs的2倍 最小值=8000/8=1000b,cbs最小=15000/8/1024=1.8kb,cbs最小剛好大
於了mtu的1500位元組,因此無論如何都可以發出乙個資料報的,如果它小於了1500.ebs此時等於0則可能連乙個包都發不出,因此不
允許小於1.8kb。cir的速率如果這個時候大於了cbs,則在1秒內超過cbs桶子的尺寸,將被認為是ebs的,ebs=0,因此直接丟棄了。
cir=8000 cbs=15000 ebs=0 這樣的配置,會得到的結果是速度是1000b/s 允許突發到1800b/s 1秒內超過1800b的包就被丟棄。
推薦cbs=cir的設定,這樣不允許突發雖然,但是業務流速度得到保證。
tc可以用來調節業務的時延,(它是不可以配置的,由cbs/cir=tc得到)因為它是向cbs桶內加令牌的時間間隔。乙個業務最多可以
得到的就是cbs的令牌數,不過這個還需要累計,在tc時間內,只能加入cir所設定的令牌數目,因此想達到cbs的量,可能需要積蓄
幾輪cir.
降低tc時間可以增加業務突發次數,這樣可以獲得小時延。
而業務一般,突發,需要累計否則可能是cbs
大,業務的突發時延間隔越大。
結論,最好將cbs=cir
工程中用到的快取方法
自定義的快取方法,這種快取方法只在第一次訪問時慢 在action 中使用下面方法呼叫快取 channel channelmanager precachegetchannel style index index channelmanagerimpl privatestaticfinallong max...
QOS的流量監管
流量監管就是對分類後的流採取某種動作,用於限制出入網路的流量速率,其原理是限制進入某一網路的某一連線的流量與突發情況。在報文滿足一定的條件時,如果某個連線的報文流量過大,流量監管就可以對該報文採取不同的處理動作,例如 丟棄報文或重新設定報文的優先順序等,通常用的的方法是使,car來限制某類報文的流量...
QOS 的基本概念
並不是所有的qos技術都適合所有網路,邊緣路由器和核心路由器操作是不一樣的。在網路環境中,如何對資料進行分類和標記呢,而且資料又分為二層的資料幀和三層的資料報,在二層資料幀中使用cos欄位分類和標記資料,在三層資料報中使用tos欄位來分類和標記資料。qos技術不能在原始的乙太網幀上標記資料,但可以使...