欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

緩存調(diào)整方法及裝置的制作方法

文檔序號(hào):7863802閱讀:187來(lái)源:國(guó)知局
專利名稱:緩存調(diào)整方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種緩存調(diào)整方法及裝置。
背景技術(shù)
在通信系統(tǒng)中,設(shè)備通常具有多個(gè)出口,而且每個(gè)出口的速率是可變的(如以太網(wǎng)口、低速的同步串口等),在報(bào)文從設(shè)備的入口進(jìn)入后,會(huì)分發(fā)到該設(shè)備的多個(gè)速率不同的出口而發(fā)送出去。當(dāng)報(bào)文從設(shè)備入口進(jìn)入后,緩存到一個(gè)出口對(duì)應(yīng)的緩存隊(duì)列中,如果該出口緩存隊(duì)列中的報(bào)文達(dá)到一定數(shù)量時(shí),新發(fā)往該出口的報(bào)文將被丟棄。在確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列大小時(shí),需要考慮該設(shè)備的總緩存量以及該設(shè)備中出口的數(shù)量、各出口的出口速率以及不同出口的優(yōu)先級(jí)等。通常在設(shè)備初始化時(shí)會(huì)配置每個(gè)出口緩存隊(duì)列大小,且以后不再改變。如果出口緩存隊(duì)列配置得太小,在有數(shù)據(jù)突發(fā)時(shí),會(huì)造成大量丟包,影響整體性能;如果出口緩存隊(duì)列配置得太大,則會(huì)占用更多緩存,這會(huì)增加設(shè)備硬件成本。當(dāng)出口的出口速率為低速且是傳輸語(yǔ)音之類對(duì)延遲要求較高的業(yè)務(wù)時(shí),如果該出口的緩存空間太大的話會(huì)增加數(shù)據(jù)傳輸延遲,使得該出口的緩存隊(duì)列的尾部數(shù)據(jù)經(jīng)常需要超時(shí)重傳,浪費(fèi)了入口有效帶寬以及緩存空間。現(xiàn)有動(dòng)態(tài)調(diào)整緩存的技術(shù)是檢測(cè)設(shè)備每個(gè)出口處報(bào)文的駐留時(shí)長(zhǎng),對(duì)于設(shè)備中每個(gè)出口來(lái)說(shuō),當(dāng)存在每個(gè)出口出口處報(bào)文的駐留時(shí)長(zhǎng)超過(guò)預(yù)設(shè)駐留時(shí)長(zhǎng)閾值的報(bào)文時(shí),則從該出口對(duì)應(yīng)的緩存隊(duì)列中刪除駐留時(shí)長(zhǎng)超過(guò)預(yù)設(shè)駐留時(shí)長(zhǎng)閾值的報(bào)文,釋放已刪除的報(bào)文占用的緩存,并將因釋放共享緩存而節(jié)省出來(lái)的緩存給其它出口使用。發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn),現(xiàn)有技術(shù)至少存在以下缺陷只是給出了每個(gè)出口釋放共享緩存的條件,并未給出如何分配釋放出的緩存,因而不能實(shí)現(xiàn)對(duì)于有多個(gè)出口的設(shè)備中,在緩存總量不變的前提下,如何為多個(gè)出口動(dòng)態(tài)地調(diào)整緩存空間。因此現(xiàn)有技術(shù)存在設(shè)備緩存利用率不高的問(wèn)題。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種緩存調(diào)整方法及裝置,能夠?qū)τ谟卸鄠€(gè)出口的設(shè)備,在緩存總量不變的前提下,根據(jù)每個(gè)出口當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度,實(shí)現(xiàn)為多個(gè)出口動(dòng)態(tài)地調(diào)整緩存空間。第一方面,提供一種緩存調(diào)整方法,包括根據(jù)設(shè)備中每個(gè)出口的預(yù)定出口速率,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值;根據(jù)每個(gè)出口的預(yù)先設(shè)定的最大時(shí)延值,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的最大緩存值;檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,在當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),從動(dòng)態(tài)緩存中為該出口分配緩存,分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值小于或等于該出口的最大緩存值,所述動(dòng)態(tài)緩存的大小不大于設(shè)備總緩存值減去所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和得到的差值。
在所述第一方面的第一種可能的實(shí)現(xiàn)方式中,所述根據(jù)設(shè)備中每個(gè)出口的預(yù)定出口速率,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值,包括將用于分配的固定緩存值除以預(yù)設(shè)系統(tǒng)速率精度與出口數(shù)的乘積得到的結(jié)果,作為所述系統(tǒng)速率精度下的緩存數(shù);針對(duì)每個(gè)出口,當(dāng)所述系統(tǒng)速率精度下的緩存數(shù)大于或等于預(yù)置的該出口的最小緩存數(shù)時(shí),將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值。在所述第一方面的第二種可能的實(shí)現(xiàn)方式中,所述檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,在當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),從動(dòng)態(tài)緩存中為該出口分配緩存,包括檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,若當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率,判斷該出口對(duì)應(yīng)的緩存隊(duì)列的當(dāng)前緩存值與固定步長(zhǎng)之和是否小于該出口的最大緩存值;若是,按照所述固定步長(zhǎng)從動(dòng)態(tài)緩存中為該出口分配緩存。在所述第一方面的第二種可能的實(shí)現(xiàn)方式中,還提供了所述第一方面的第三種可能的實(shí)現(xiàn)方式,若當(dāng)前實(shí)際速率低于該出口的預(yù)定出口速率,根據(jù)該出口當(dāng)前實(shí)際速率計(jì)算該出口實(shí)際所需的緩存值;判斷所述出口實(shí)際所需的緩存值是否大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值;若大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,則在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存;若不大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,則在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述該出口對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存。在所述第一方面或所述第一方面的前述任意一種可能的實(shí)現(xiàn)方式中,還提供了所述第一方面的第四種可能的實(shí)現(xiàn)方式,所述動(dòng)態(tài)緩存是所述確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值之后,計(jì)算設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和,將設(shè)備總緩存值減去所述所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和得到的。第二方面,提供了一種緩存調(diào)整裝置,包括第一確定單元,用于根據(jù)設(shè)備中每個(gè)出口的預(yù)定出口速率,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值;第二確定單元,用于根據(jù)每個(gè)出口的預(yù)先設(shè)定的最大時(shí)延值,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的最大緩存值;分配單元,用于檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,在當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),從動(dòng)態(tài)緩存中為該出口分配緩存,分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值小于或等于該出口的最大緩存值,所述動(dòng)態(tài)緩存的大小不大于設(shè)備總緩存值減去所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和得到的差值。
在所述第二方面的第一種可能的實(shí)現(xiàn)方式中,所述第一確定單元包括第一計(jì)算子單元,用于將用于分配的固定緩存值除以預(yù)設(shè)系統(tǒng)速率精度與出口數(shù)的乘積得到的結(jié)果,作為所述系統(tǒng)速率精度下的緩存數(shù);確定子單元,用于針對(duì)每個(gè)出口,當(dāng)所述系統(tǒng)速率精度下的緩存數(shù)大于或等于預(yù)置的該出口的最小緩存數(shù)時(shí),將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值。在所述第二方面的第二種可能的實(shí)現(xiàn)方式中,所述分配單元,包括檢測(cè)子單元,用于檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率;第一判斷子單元,用于當(dāng)所述檢測(cè)子單元檢測(cè)到的設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),判斷該出口對(duì)應(yīng)的緩存隊(duì)列的當(dāng)前緩存值與固定步長(zhǎng)之和是否小于該出口的最大緩存值;分配子單元,用于當(dāng)所述第一判斷子單元的判斷結(jié)果為是時(shí),按照所述固定步長(zhǎng)從動(dòng)態(tài)緩存中為該出口分配緩存。在所述第二方面的第二種可能的實(shí)現(xiàn)方式中,還提供了所述第二發(fā)面的第三種可能的實(shí)現(xiàn)方式,所述裝置還包括第二計(jì)算子單元,用于當(dāng)所述檢測(cè)子單元檢測(cè)到的設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率低于該出口的預(yù)定出口速率時(shí),根據(jù)該出口當(dāng)前實(shí)際速率計(jì)算該出口實(shí)際所需的緩存值;第二判斷子單元,用于判斷所述第二計(jì)算子單元計(jì)算得到的出口實(shí)際所需的緩存值是否大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值;第一處理子單元,用于當(dāng)所述第二判斷子單元的判斷結(jié)果為是時(shí),在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存;第二處理子單元,用于當(dāng)所述第二判斷子單元的判斷結(jié)果為否時(shí),在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述該出口對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存。第三方面,提供了一種設(shè)備,包括至少兩個(gè)出口、以及存儲(chǔ)器和處理器,其中所述存儲(chǔ)器,用于被配置存儲(chǔ)代碼;所述處理器,用于被配置讀取所述存儲(chǔ)器中存儲(chǔ)的代碼,執(zhí)行上述第一方面、或第一方面的任意一種可能的實(shí)現(xiàn)方式所述的方法。通過(guò)上述描述可知,本發(fā)明實(shí)施例在動(dòng)態(tài)調(diào)整緩存的技術(shù)中利用了設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度,以實(shí)現(xiàn)為多個(gè)出口動(dòng)態(tài)地調(diào)整緩存空間。由于對(duì)于有多個(gè)出口的設(shè)備來(lái)說(shuō),在緩存總量不變的前提下,可根據(jù)每個(gè)出口當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度。因此,本發(fā)明實(shí)施例利用每個(gè)出口當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度,可以實(shí)現(xiàn)為多個(gè)出口動(dòng)態(tài)地調(diào)整緩存空間,從而提高緩存利用率和整體性能。


為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明實(shí)施例提供的緩存調(diào)整方法的流程示意圖;圖2是本發(fā)明實(shí)施例提供的一個(gè)確定設(shè)備中每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值的詳細(xì)實(shí)例的流程圖;圖3是本發(fā)明實(shí)施例提供的根據(jù)每個(gè)出口的實(shí)際速率,動(dòng)態(tài)調(diào)整各出口緩存的方案的流程圖;圖4是本發(fā)明實(shí)施例給出了計(jì)算動(dòng)態(tài)緩存的大小的方案的流程·
圖5是本發(fā)明實(shí)施例提供的一種緩存調(diào)整裝置的結(jié)構(gòu)示意圖;圖6是本發(fā)明實(shí)施例中第一確定單元的結(jié)構(gòu)示意圖;圖7是本發(fā)明實(shí)施例中分配單元的結(jié)構(gòu)示意圖;圖8是本發(fā)明實(shí)施例中分配單元另一結(jié)構(gòu)示意圖;圖9是本發(fā)明實(shí)施例中第一確定單元另一結(jié)構(gòu)示意圖;圖10是本發(fā)明實(shí)施例提供的一種設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。參見(jiàn)圖1,是本發(fā)明實(shí)施例的緩存調(diào)整方法的第一實(shí)施例的流程示意圖,所述方法包括101,根據(jù)設(shè)備中每個(gè)出口的預(yù)定出口速率,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值。在通信系統(tǒng)中,設(shè)備通常具有多個(gè)速率可變的出口,每個(gè)出口處有一個(gè)出口緩存隊(duì)列,當(dāng)報(bào)文從設(shè)備入口進(jìn)入后,緩存到出口對(duì)應(yīng)的緩存隊(duì)列中等待通過(guò)出口發(fā)送出去。通過(guò)設(shè)置的系統(tǒng)速率精度和設(shè)備中每個(gè)出口的預(yù)定出口速率,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值,其中,系統(tǒng)速率精度是指能檢測(cè)的速率最小單位,例如O. I兆字節(jié)/秒,設(shè)備中每個(gè)出口的速率是該出口的工作速率且該出口的速率必須是系統(tǒng)速率精度的整數(shù)倍,比如系統(tǒng)速率精度假設(shè)為O. 1M/S,出口支持的速率2. ΙΜ/s是O. ΙΜ/s的整數(shù)倍。具體的,根據(jù)設(shè)備中每個(gè)出口的預(yù)定出口速率,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值,包括將用于分配的固定緩存值除以預(yù)設(shè)系統(tǒng)速率精度與出口數(shù)的乘積得到的結(jié)果,作為所述系統(tǒng)速率精度下的緩存數(shù);針對(duì)每個(gè)出口,當(dāng)所述系統(tǒng)速率精度下的緩存數(shù)大于或等于預(yù)置的該出口的最小緩存數(shù)時(shí),將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值??蛇x地,在根據(jù)所述系統(tǒng)速率精度計(jì)算得到系統(tǒng)速率精度下的緩存數(shù)后,當(dāng)判斷該系統(tǒng)速率精度下的緩存數(shù)小于設(shè)置的最小緩存數(shù)時(shí),就需要改變速率精度,并依據(jù)改變后的速率精度重新計(jì)算該速率精度下的緩存數(shù),例如適當(dāng)增加系統(tǒng)速率精度。本實(shí)施例中根據(jù)設(shè)置的系統(tǒng)速率精度計(jì)算得到該系統(tǒng)速率精度下的緩存數(shù),并判斷該系統(tǒng)速率精度下的緩存數(shù)是否小于預(yù)置的該出口的最小緩存數(shù)。若是,則調(diào)整系統(tǒng)速率精度并計(jì)算調(diào)整后的系統(tǒng)速率精度下的緩存數(shù)。若否,將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值。102,根據(jù)每個(gè)出口的預(yù)先設(shè)定的最大時(shí)延值,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的最大緩存值。具體的,根據(jù)每個(gè)出口的預(yù)先設(shè)定的最大時(shí)延值,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的最大緩存值,即針對(duì)每個(gè)出口,將該出口的預(yù)定出口速率乘以系統(tǒng)速率精度每秒發(fā)送的緩存數(shù)據(jù)再乘以該出口的預(yù)先設(shè)定的最大時(shí)延值的乘積,作為該出口對(duì)應(yīng)的緩存隊(duì)列的最大緩存值。舉例,假設(shè)設(shè)備所有出口可用的總緩存數(shù)為150000個(gè)單元,出口數(shù)為4個(gè),系統(tǒng)速率精度為lM/s,且IM速率每秒可以發(fā)送125個(gè)緩存數(shù)據(jù),設(shè)備中每個(gè)出口的預(yù)定出口速率為1G、100M、10M、2M。假設(shè)設(shè)備中每個(gè)出口要求的最大時(shí)延值分別為ls、2s、2s、4s。在設(shè)備的出口的緩存隊(duì)列不為空,指示這個(gè)出口有數(shù)據(jù)需要發(fā)送時(shí),以IM的系統(tǒng)速率精度為單位檢測(cè)每個(gè)出口的預(yù)定出口速率,并根據(jù)每個(gè)出口的預(yù)定出口速率乘以IM速率每秒發(fā)送的緩存數(shù)乘以最大時(shí)延值,可以得到上述4個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的最大緩存值分別為125000 個(gè)、25000 個(gè)、2500 個(gè)、1000 個(gè)。103,檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,在當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),從動(dòng)態(tài)緩存中為該出口分配緩存,分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值小于或等于該出口的最大緩存值,所述動(dòng)態(tài)緩存的大小不大于設(shè)備總緩存值減去所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和得到的差值。具體的,由于設(shè)備中每個(gè)出口具有多個(gè)可變速率,需要檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,在檢測(cè)到設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),需要從動(dòng)態(tài)緩存中為該出口分配緩存,否則當(dāng)出口的緩存隊(duì)列中數(shù)據(jù)達(dá)到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值后,如果不增加當(dāng)前出口的緩存隊(duì)列的緩存值,再來(lái)數(shù)據(jù)就會(huì)被丟棄,因此還需要判斷該出口對(duì)應(yīng)的緩存隊(duì)列的當(dāng)前緩存值與固定步長(zhǎng)之和是否小于該出口的最大緩存值,若是,按照所述固定步長(zhǎng)從動(dòng)態(tài)緩存中為該出口分配緩存,這是為了確保分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值小于或等于該出口的最大緩存值??蛇x地,所述固定步長(zhǎng)可以為I個(gè)或多個(gè)所述系統(tǒng)速率精度下的緩存數(shù),即為所述系統(tǒng)速率精度下的緩存數(shù)的整數(shù)倍。其中所述動(dòng)態(tài)緩存的大小不大于設(shè)備總緩存值減去所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和得到的差值。舉例,假設(shè)設(shè)備中一個(gè)出口的預(yù)定出口速率為2M,則該出口對(duì)應(yīng)的緩存隊(duì)列的初始值為24。在檢測(cè)到該出口的當(dāng)前實(shí)際速率為10M,如果不增加當(dāng)前出口的緩存隊(duì)列的緩存值,再來(lái)數(shù)據(jù)就會(huì)被丟棄,因此可以從動(dòng)態(tài)緩存中為該出口分配緩存,以便可以繼續(xù)發(fā)送
8數(shù)據(jù)。本發(fā)明實(shí)施例是根據(jù)設(shè)備中每個(gè)出口的預(yù)定出口速率和最大時(shí)延值,分別確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值和最大緩存值,當(dāng)檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),從動(dòng)態(tài)緩存中為該出口分配緩存,即利用每個(gè)出口當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度,這樣對(duì)于有多個(gè)出口的設(shè)備來(lái)說(shuō),在緩存總量不變的前提下,實(shí)現(xiàn)為多個(gè)出口動(dòng)態(tài)地調(diào)整緩存空間,從而提高緩存利用率和整體性能。
參見(jiàn)圖2,本實(shí)施例給出了一個(gè)確定設(shè)備中每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值的詳細(xì)實(shí)例,包括201,將用于分配的固定緩存值除以預(yù)設(shè)系統(tǒng)速率精度與出口數(shù)的乘積得到的結(jié)果,作為所述系統(tǒng)速率精度下的緩存數(shù)。具體的,本發(fā)明實(shí)施例中設(shè)備所有出口可用的緩存數(shù)是固定的,假設(shè)設(shè)備中所有出口可用的緩存數(shù)為150000個(gè),出口數(shù)為4個(gè),每個(gè)出口對(duì)應(yīng)一個(gè)出口緩存隊(duì)列,系統(tǒng)速率精度為1M。每個(gè)出口的速率分別為1G、100M、10M、2M,設(shè)置每個(gè)出口的最小緩存數(shù),比如為10個(gè)單元,用以保證每個(gè)出口都可以正常轉(zhuǎn)發(fā)。在確定設(shè)備所有出口可用的緩存數(shù)為150000個(gè)單元后,按照一定的比例將設(shè)備所有出口可用的緩存總量用于分配的固定緩存數(shù),如1/3的比例,則用于分配的固定緩存數(shù)為50000個(gè)。根據(jù)設(shè)備中預(yù)設(shè)的系統(tǒng)速率精度和用于分配的固定緩存數(shù)以及出口數(shù),可以得到所述系統(tǒng)速率精度下的緩存數(shù),即將用于分配的固定緩存數(shù)除以預(yù)設(shè)系統(tǒng)速率精度與出口數(shù)的乘積得到的結(jié)果,作為所述系統(tǒng)速率精度下的緩存數(shù),比如當(dāng)系統(tǒng)速率精度為IM時(shí),可以得到該系統(tǒng)速率精度下的緩存數(shù)為(150000/3)/4000 = 12。202,針對(duì)每個(gè)出口,當(dāng)所述系統(tǒng)速率精度下的緩存數(shù)大于或等于預(yù)置的該出口的最小緩存數(shù)時(shí),將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值。具體的,在將用于分配的固定緩存值除以預(yù)設(shè)系統(tǒng)速率精度與出口數(shù)的乘積得到的結(jié)果,作為所述系統(tǒng)速率精度下的緩存數(shù)后,針對(duì)每個(gè)出口,當(dāng)所述系統(tǒng)速率精度下的緩存數(shù)大于或等于預(yù)置的該出口的最小緩存數(shù)時(shí),將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,可以得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,比如根據(jù)預(yù)置的系統(tǒng)速率精度為1M,以及該系統(tǒng)速率精度下的緩存數(shù)12,將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,可以得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值為12000、1200、120、24。本發(fā)明實(shí)施例中根據(jù)設(shè)備中預(yù)置的系統(tǒng)速率精度和用于分配的固定緩存數(shù)以及出口數(shù),將用于分配的固定緩存值除以預(yù)設(shè)系統(tǒng)速率精度與出口數(shù)的乘積得到的結(jié)果,作為所述系統(tǒng)速率精度下的緩存數(shù)。針對(duì)每個(gè)出口,當(dāng)所述系統(tǒng)速率精度下的緩存數(shù)大于或等于預(yù)置的出口的最小緩存數(shù)時(shí),進(jìn)一步將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,可以得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值。參見(jiàn)圖3,本實(shí)施例給出了根據(jù)每個(gè)出口的實(shí)際速率,動(dòng)態(tài)調(diào)整各出口緩存的詳細(xì)流程,包括301,檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率。具體的,設(shè)備的每個(gè)出口有一個(gè)對(duì)應(yīng)的緩存隊(duì)列,在出口的緩存隊(duì)列不空指示這個(gè)出口有數(shù)據(jù)需要發(fā)送時(shí),通過(guò)檢測(cè)該出口一段時(shí)間,比如I秒內(nèi)發(fā)送的字節(jié)數(shù)來(lái)實(shí)時(shí)檢CN 102916903 A


說(shuō)
7/13 頁(yè)
測(cè)出口當(dāng)前實(shí)際速率。若設(shè)備的出口的緩存隊(duì)列為空,指示這個(gè)出口當(dāng)前沒(méi)有數(shù)據(jù)需要發(fā)送時(shí),就不能通過(guò)檢測(cè)該出口一段時(shí)間內(nèi)發(fā)送的字節(jié)數(shù)來(lái)計(jì)算該出口當(dāng)前的實(shí)際出口速率了,則可以確認(rèn)該次檢測(cè)的出口當(dāng)前的實(shí)際出口速率使用了滿速率,比如上述設(shè)置4個(gè)出口的速率 1G、100M、10M、2M。302,對(duì)于每個(gè)出口,判斷檢測(cè)出的該出口的實(shí)際速率是否高于該出口的預(yù)定出口速率,若是,進(jìn)入303,否則進(jìn)入304。具體的,檢測(cè)每個(gè)出口的當(dāng)前實(shí)際速率,并根據(jù)檢測(cè)到的當(dāng)前實(shí)際速率計(jì)算該出口對(duì)應(yīng)的緩存隊(duì)列需要提供的緩存值,即將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的當(dāng)前實(shí)際速率可以得到該出口實(shí)際所需的緩存值。如果檢測(cè)到的出口的當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率,則該出口對(duì)應(yīng)的緩存隊(duì)列實(shí)際所需的緩存值超過(guò)該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,在出口緩存隊(duì)列中數(shù)據(jù)到達(dá)原隊(duì)列深度時(shí),需要增加隊(duì)列深度,進(jìn)入步驟303,如果檢測(cè)到的出口的當(dāng)前實(shí)際速率低于該出口的預(yù)定出口速率,則該出口對(duì)應(yīng)的緩存隊(duì)列實(shí)際所需的緩存值低于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,進(jìn)入步驟304。303,判斷該出口對(duì)應(yīng)的緩存隊(duì)列的當(dāng)前緩存值與固定步長(zhǎng)之和是否小于該出口的最大緩存值,若是進(jìn)入305,否則進(jìn)入306。具體的,在檢測(cè)到設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),需要從動(dòng)態(tài)緩存中為該出口分配緩存,因?yàn)楫?dāng)出口的緩存隊(duì)列中數(shù)據(jù)達(dá)到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值后,如果不增加當(dāng)前出口的緩存隊(duì)列的緩存值的話,再來(lái)數(shù)據(jù)就會(huì)被丟棄。為了確保分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值小于或等于該出口的最大緩存值,需要判斷該出口對(duì)應(yīng)的緩存隊(duì)列的當(dāng)前緩存值與固定步長(zhǎng)之和是否小于該出口的最大緩存值,若是,進(jìn)入步驟305,否則進(jìn)入步驟306。304,計(jì)算該出口實(shí)際所需的緩存值,并判斷該出口實(shí)際所需的緩存值是否大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,若是進(jìn)入307,否則進(jìn)入308。具體的,當(dāng)檢測(cè)到設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率低于該出口的預(yù)定出口速率時(shí),需要根據(jù)檢測(cè)到的設(shè)備中每個(gè)出口當(dāng)前實(shí)際速率計(jì)算該出口實(shí)際所需的緩存值,并進(jìn)一步判斷所述出口實(shí)際所需的緩存值是否大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,若是,進(jìn)入步驟307,否則,進(jìn)入步驟308。305,按照所述固定步長(zhǎng)從動(dòng)態(tài)緩存中為該出口分配緩存。具體的,在分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列當(dāng)前緩存值與固定步長(zhǎng)之和小于或者等于該出口的最大緩存值時(shí),按照固定步長(zhǎng)從動(dòng)態(tài)緩存中為該出口分配緩存,增加該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值,以便再來(lái)數(shù)據(jù)不會(huì)被丟棄??蛇x地所述固定步長(zhǎng)可以為系統(tǒng)速率精度下的緩存數(shù)的整數(shù)倍,所述動(dòng)態(tài)緩存的大小不大于設(shè)備總緩存值減去所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和得到的差值,以確保分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值小于或等于該出口的最大緩存值。306,停止按照固定步長(zhǎng)從動(dòng)態(tài)緩存值中為該出口分配緩存。具體的,在分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列當(dāng)前緩存值與固定步長(zhǎng)之和大于該出口的最大緩存值時(shí),停止按照固定步長(zhǎng)從動(dòng)態(tài)緩存值中為該出口分配緩存。307,若大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,在出口對(duì)應(yīng)的緩存隊(duì)列中超出所述
10出口實(shí)際所需的緩存值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存。具體的,在判斷出口實(shí)際所需的緩存值大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值時(shí),表明所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值之間的部分空間是多余部分,可以釋放出來(lái)供其他出口使用,需要進(jìn)一步判斷所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值之間的部分空間是否已被占用,若是,則已占用的空間繼續(xù)占用出口,并在發(fā)送完數(shù)據(jù)后,將所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口需要的緩存的部分空間釋放給動(dòng)態(tài)緩存。若否,將所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口需要的緩存的部分空間釋放給動(dòng)態(tài)緩存,其中,所述未占用的空間是允許該出口用,但還沒(méi)申請(qǐng)使用的空間,這部分空間還在共享的動(dòng)態(tài)緩存中,申請(qǐng)后才真正被該出口占有,這類空間釋放后,就不會(huì)被該出口申請(qǐng),可以給其它出口使用。實(shí)現(xiàn)了對(duì)于有多個(gè)出口的設(shè)備,在緩存總量不變的前提下,根據(jù)檢測(cè)得到的設(shè)備中每個(gè)出口當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度。308,若不大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,在出口對(duì)應(yīng)的緩存隊(duì)列中超出該·出口對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在出口對(duì)應(yīng)的緩存隊(duì)列中超出出口對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存。具體的,在判斷所述出口實(shí)際所需的緩存值不大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值時(shí),表明所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述該出口對(duì)應(yīng)的緩存隊(duì)列的初始值之間的部分空間是多余部分,可以釋放出來(lái)供其他出口使用,需要進(jìn)一步判斷所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述該出口對(duì)應(yīng)的緩存隊(duì)列的初始值之間的部分空間是否已被占用,若是,已占用的空間繼續(xù)占用出口,并在發(fā)送完數(shù)據(jù)后,將所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口對(duì)應(yīng)的緩存隊(duì)列的初始值之間的部分空間釋放給動(dòng)態(tài)緩存。若否,將所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間釋放給動(dòng)態(tài)緩存。本發(fā)明實(shí)施例中對(duì)于有多個(gè)出口的設(shè)備,在緩存總量不變的前提下,檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,并根據(jù)檢測(cè)的設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度來(lái)實(shí)現(xiàn)共享動(dòng)態(tài)緩存,可以處理某一出口的突發(fā)流量及出口擁塞,又不會(huì)影響其它出口的正常業(yè)務(wù),不損失入口帶寬,從而提高緩存利用率和整體性能。參見(jiàn)圖4,本實(shí)施例給出了計(jì)算動(dòng)態(tài)緩存的大小的詳細(xì)流程,包括401,計(jì)算設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和。具體的,在附圖I的步驟101中,按照以下方式計(jì)算各出口對(duì)應(yīng)的緩存隊(duì)列的初始值根據(jù)設(shè)備中預(yù)置的系統(tǒng)速率精度和用于分配的固定緩存數(shù)以及出口數(shù),計(jì)算得到所述系統(tǒng)速率精度下的緩存數(shù),在所述系統(tǒng)速率精度下的緩存數(shù)大于或等于預(yù)置的該出口的最小緩存數(shù)時(shí),將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值。然后,進(jìn)一步計(jì)算設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和,以便通過(guò)設(shè)備總緩存值減去所述計(jì)算得到的設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和,得到動(dòng)態(tài)緩存的大小。402,將設(shè)備總緩存值減去所述計(jì)算得到的設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初CN 102916903 A


說(shuō)
9/13 頁(yè)
始值之和,得到動(dòng)態(tài)緩存的大小。具體的,在計(jì)算得到設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和后,將設(shè)備總緩存值減去所述計(jì)算得到的設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和,得到動(dòng)態(tài)緩存的大小,以將動(dòng)態(tài)緩存作為共享的緩存,對(duì)于有多個(gè)出口的設(shè)備,在緩存總量不變的前提下,根據(jù)檢測(cè)得到的設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度來(lái)實(shí)現(xiàn)共`享動(dòng)態(tài)緩存,當(dāng)檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),從動(dòng)態(tài)緩存中為該出口分配緩存。當(dāng)檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率低于該出口的預(yù)先設(shè)出口速率,根據(jù)該出口當(dāng)前實(shí)際速率計(jì)算該出口實(shí)際所需的緩存值,并進(jìn)一步判斷所述出口實(shí)際所需的緩存值是否大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值;若是,則在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存;若不大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,則在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述該出口對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存。本發(fā)明實(shí)施例在計(jì)算得到設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和后,通過(guò)設(shè)備總緩存值減去所述計(jì)算得到的設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和,得到動(dòng)態(tài)緩存的大小,并將動(dòng)態(tài)緩存作為共享的緩存,以實(shí)現(xiàn)根據(jù)檢測(cè)得到的設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度來(lái)實(shí)現(xiàn)共享動(dòng)態(tài)緩存,解決了在緩存總量不變的前提下,如何為多個(gè)出口動(dòng)態(tài)地調(diào)整緩存空間的問(wèn)題。參見(jiàn)圖5,本發(fā)明實(shí)施例提供的一種緩存調(diào)整裝置,所述裝置包括第一確定單元501,用于根據(jù)設(shè)備中每個(gè)出口的預(yù)定出口速率,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值。具體地,在通信系統(tǒng)中,設(shè)備通常具有多個(gè)速率是可變的出口,每個(gè)出口處有一個(gè)出口緩存隊(duì)列,當(dāng)報(bào)文從設(shè)備入口進(jìn)入后,緩存到出口對(duì)應(yīng)的緩存隊(duì)列中等待通過(guò)出口發(fā)送出去。第一確定單元501根據(jù)設(shè)置的系統(tǒng)速率精度和設(shè)備中每個(gè)出口的預(yù)定出口速率,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值,其中,系統(tǒng)速率精度是指能檢測(cè)的速率最小單位,設(shè)備中每個(gè)出口的速率是該出口的工作速率且該出口的速率必須是系統(tǒng)速率精度的整數(shù)倍。可選地,在根據(jù)所述系統(tǒng)速率精度計(jì)算得到系統(tǒng)速率精度下的緩存數(shù)后,當(dāng)判斷該系統(tǒng)速率精度下的緩存數(shù)小于設(shè)置的最小緩存數(shù)時(shí),就需要改變速率精度,并依據(jù)改變后的速率精度重新計(jì)算該速率精度下的緩存數(shù)。第二確定單元502,用于根據(jù)每個(gè)出口的預(yù)先設(shè)定的最大時(shí)延值,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的最大緩存值。具體的,第二確定單元502根據(jù)每個(gè)出口的預(yù)先設(shè)定的最大時(shí)延值,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的最大緩存值,即將每個(gè)出口的預(yù)定出口速率乘以系統(tǒng)速率精度每秒發(fā)送的緩存數(shù)乘最大時(shí)延值的乘積,作為每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的最大緩存值。分配單元503,用于檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,在當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),從動(dòng)態(tài)緩存中為該出口分配緩存,分配緩存后該出口對(duì)應(yīng)的緩存
12隊(duì)列的緩存值小于或等于該出口的最大緩存值,所述動(dòng)態(tài)緩存的大小不大于設(shè)備總緩存值減去所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和得到的差值。具體的,由于設(shè)備中每個(gè)出口具有多個(gè)可變速率,需要檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,在檢測(cè)到設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),需要從動(dòng)態(tài)緩存中為該出口分配緩存,否則當(dāng)出口的緩存隊(duì)列中數(shù)據(jù)達(dá)到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值后,如果不增加當(dāng)前出口的緩存隊(duì)列的緩存值,再來(lái)數(shù)據(jù)就會(huì)被丟棄,因此還需要判斷該出口對(duì)應(yīng)的緩存隊(duì)列的當(dāng)前緩存值與固定步長(zhǎng)之和是否小于該出口的最大緩存值,若是,分配單元503按照固定步長(zhǎng)從動(dòng)態(tài)緩存中為該出口分配緩存,這是為了確保分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值小于或等于該出口的最大緩存值,所述動(dòng)態(tài)緩存的大小不大于設(shè)備總緩存值減去所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和得到的差值。本發(fā)明實(shí)施例中的第一確定單元501和第二確定單元502根據(jù)設(shè)備中每個(gè)出口的預(yù)定出口速率和最大時(shí)延值,分別確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值和最大緩存值,當(dāng)檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率高于該出口預(yù)先設(shè)定的出口速率時(shí),分配單元503從動(dòng)態(tài)緩存中為該出口分配緩存,即利用每個(gè)出口當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度,這樣對(duì)于有多個(gè)出口的設(shè)備來(lái)說(shuō),在緩存總量不變的前提下,實(shí)現(xiàn)為多個(gè)出口動(dòng)態(tài)地調(diào)整緩存空間,從而提高緩存利用率和整體性能?!た蛇x地,參見(jiàn)圖6,所述第一確定單元501包括第一計(jì)算子單元601,用于將用于分配的固定緩存值除以預(yù)設(shè)系統(tǒng)速率精度與出口數(shù)的乘積得到的結(jié)果,作為所述系統(tǒng)速率精度下的緩存數(shù)。具體的,所述第一計(jì)算子單元601,確定所述系統(tǒng)速率精度下的緩存數(shù)的詳細(xì)過(guò)程參照方法實(shí)施例2中的描述。確定子單元602,用于針對(duì)每個(gè)出口,當(dāng)所述第一計(jì)算子單元601計(jì)算的系統(tǒng)速率精度下的緩存數(shù)大于或者等于預(yù)置的出口的最小緩存數(shù)時(shí),將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值。具體的,所述確定子單元602,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值的詳細(xì)過(guò)程參照方法實(shí)施例2中的描述。本發(fā)明實(shí)施例中第一計(jì)算子單元601根據(jù)設(shè)備中預(yù)置的系統(tǒng)速率精度和用于分配的固定緩存數(shù)以及出口數(shù),計(jì)算得到所述系統(tǒng)速率精度下的緩存數(shù)。針對(duì)每個(gè)出口,當(dāng)所述第一計(jì)算子單元601計(jì)算的系統(tǒng)速率精度下的緩存數(shù)大于或者等于預(yù)置的出口的最小緩存數(shù)時(shí),確定子單元602將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值??蛇x地,參見(jiàn)圖7,分配單元503包括檢測(cè)子單元701,用于檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率。具體的,對(duì)于有多個(gè)出口的設(shè)備來(lái)說(shuō),設(shè)備中的每個(gè)出口的速率是可變,需要檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,在出口的緩存隊(duì)列不空指示這個(gè)出口有數(shù)據(jù)需要發(fā)送時(shí),通過(guò)檢測(cè)子單元701檢測(cè)該出口一段時(shí)間發(fā)送的字節(jié)數(shù)來(lái)實(shí)時(shí)檢測(cè)出口當(dāng)前實(shí)際速率,若設(shè)備的出口的緩存隊(duì)列為空,指示這個(gè)出口當(dāng)前沒(méi)有數(shù)據(jù)需要發(fā)送時(shí),檢測(cè)子單元701就不能通過(guò)檢測(cè)該出口一段時(shí)間內(nèi)發(fā)送的字節(jié)數(shù)來(lái)計(jì)算該出口當(dāng)前的實(shí)際出口速率了,則可以判斷該次檢測(cè)的出口當(dāng)前的實(shí)際出口速率使用了滿速率,比如上述設(shè)置4個(gè)出口的速率 1G、100M、10M、2M。第一判斷子單元702,用于當(dāng)所述檢測(cè)子單元701檢測(cè)到的設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),判斷該出口對(duì)應(yīng)的緩存隊(duì)列的當(dāng)前緩存值與固定步長(zhǎng)之和是否小于該出口的最大緩存值;具體的,在檢測(cè)子單元701檢測(cè)到設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),需要從動(dòng)態(tài)緩存中為該出口分配緩存,因?yàn)楫?dāng)出口的緩存隊(duì)列中數(shù)據(jù)達(dá)到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值后,如果不增加當(dāng)前出口的緩存隊(duì)列的緩存值的話,再來(lái)數(shù)據(jù)就會(huì)被丟棄。為了確保分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值小于或等于該出口的最大緩存值。分配子單元703,用于當(dāng)所述第一判斷子單元701的判斷結(jié)果為是時(shí),按照所述固定步長(zhǎng)從動(dòng)態(tài)緩存中為該出口分配緩存。具體的,當(dāng)所述第一判斷子單元701判斷該出口對(duì)應(yīng)的緩存隊(duì)列的當(dāng)前緩存值與固定步長(zhǎng)之和小于該出口的最大緩存值時(shí),分配子單元703按照固定步長(zhǎng)從動(dòng)態(tài)緩存中為該出口分配緩存,增加當(dāng)前出口的緩存隊(duì)列的緩存值,以便再來(lái)數(shù)據(jù)不會(huì)被丟棄,分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值小于或等于該出口的最大緩存值。實(shí)現(xiàn)了對(duì)于有多個(gè)出口的設(shè)備,在緩存總量不變的前提下,根據(jù)檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度。本發(fā)明實(shí)施例中當(dāng)檢測(cè)子單元701檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率,第一判斷子單元702進(jìn)一步判斷該出口對(duì)應(yīng)的緩存隊(duì)列的當(dāng)前緩存值與固定步長(zhǎng)之和小于該出口的最大緩存值時(shí),分配子單元703按照固定步長(zhǎng)從動(dòng)態(tài)緩存中為該出口分配緩存,利用每個(gè)出口當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度,實(shí)現(xiàn)為多個(gè)出口動(dòng)態(tài)地調(diào)整緩存空間,從而提高緩存利用率和整體性能??蛇x地,參見(jiàn)圖8,所述分配單元503還包括第二計(jì)算子單元804,用于當(dāng)所述檢測(cè)子單元701檢測(cè)到的設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率低于該出口的預(yù)定出口速率時(shí),根據(jù)該出口當(dāng)前實(shí)際速率計(jì)算該出口實(shí)際所需的緩存值。具體的,當(dāng)檢測(cè)子單元701檢測(cè)到設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率低于該出口的預(yù)定出口速率時(shí),第二計(jì)算子單元804根據(jù)檢測(cè)到的設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率計(jì)算該出口實(shí)際所需的緩存值,以便第二判斷子單元805判斷所述第二計(jì)算子單元804計(jì)算得到的出口實(shí)際所需的緩存值是否大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值。第二判斷子單元805,用于判斷所述第二計(jì)算子單元804計(jì)算得到的出口實(shí)際所需的緩存值是否大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值。第一處理子單元806,用于當(dāng)所述第二判斷子單元805的判斷結(jié)果為是時(shí),在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存。具體的,當(dāng)?shù)诙袛嘧訂卧?05判斷所述出口實(shí)際所需的緩存值大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值時(shí),表明所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值之間的部分空間是多余部分,可以釋放出來(lái)供其他出口使用,第一處理子單元806判斷所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值之間的部分空間是否已被占用,若判斷所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間是否已被占用時(shí),已占用的空間繼續(xù)占用出口,并在發(fā)送完數(shù)據(jù)后,將所述空間釋放給動(dòng)態(tài)緩存。若第一處理子單元806判斷所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間未占用時(shí),將所述部分空間釋放給動(dòng)態(tài)緩存,其中,所述未占用的空間是允許該出口用,但還沒(méi)申請(qǐng)使用的空間,這部分空間還在共享的動(dòng)態(tài)緩存中,申請(qǐng)后才真正被該出口占有,這類空間釋放后,就不會(huì)被該出口申請(qǐng),可以給其它出口使用。第二處理子單元807,用于當(dāng)所述第二判斷子單元805的判斷結(jié)果為否時(shí),在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述該出口對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間未占用的情況下,將所述空間釋放給動(dòng)態(tài)緩存。具體的,當(dāng)?shù)诙袛嘧訂卧?05判斷所述出口實(shí)際所需的緩存值不大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值時(shí),表明所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述該出口對(duì)應(yīng)的緩存隊(duì)列的初始值之間部分空間是多余部分,第二處理子單元807需要進(jìn)一步判斷出口對(duì)應(yīng)的緩存隊(duì)列中超出所述該出口對(duì)應(yīng)的緩存隊(duì)列的初始值之間的部分空間是否已被占用,若判斷出口對(duì)應(yīng)的緩存隊(duì)列中超出所述該出口對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間已被占用時(shí),已占用的空間繼續(xù)占用出口,并在發(fā)送完數(shù)據(jù)后,將所述空間釋放給動(dòng)態(tài)緩存。若第二處理子單元807判斷出口對(duì)應(yīng)的緩存隊(duì)列中超出所述該出口對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間未占用時(shí),將所述空間釋放給動(dòng)態(tài)緩存??蛇x地,參見(jiàn)圖9,所述第一確定單元501還包括第三計(jì)算子單元903,用于計(jì)算設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和。具體的,在確定子單元602在第一計(jì)算子單元601確定的系統(tǒng)速率精度下的緩存數(shù)大于或者等于預(yù)置的出口的最小緩存數(shù)時(shí),將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,第三計(jì)算子單元903根據(jù)確定子單元602確定的設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值,計(jì)算得到設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和。
獲取子單元904,用于將設(shè)備總緩存值減去所述第三計(jì)算子單元計(jì)算得到的設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和,得到動(dòng)態(tài)緩存的大小。具體的,在第三計(jì)算子單元903計(jì)算得到設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和后,獲取子單元904將設(shè)備總緩存值減去所述第三計(jì)算子單元903計(jì)算可得到的設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和,可得到動(dòng)態(tài)緩存的大小。本發(fā)明實(shí)施例在第三計(jì)算子單元903計(jì)算獲取設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和后,獲取子單元904通過(guò)設(shè)備總緩存值減去所述第三計(jì)算子單元903計(jì)算得到的設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和,得到動(dòng)態(tài)緩存的大小,并基于出口當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口的緩存隊(duì)列深度來(lái)實(shí)現(xiàn)共享動(dòng)態(tài)緩存,解決了現(xiàn)有具有多個(gè)速率可變的出口設(shè)備內(nèi)存利用率不高、整體性能不高等問(wèn)題。參見(jiàn)圖10,本發(fā)明實(shí)施例還提供了一種設(shè)備,該設(shè)備包括至少兩個(gè)出口、以及存儲(chǔ)器和處理器,其中所述存儲(chǔ)器被配置存儲(chǔ)代碼;所述處理器被配置讀取所述存儲(chǔ)器中存儲(chǔ)的代碼,執(zhí)行方法實(shí)施例中的各個(gè)步驟,請(qǐng)參考圖I、圖2、圖3和圖4,以及方法實(shí)施例中的描述,在這里不再重復(fù)。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
1權(quán)利要求
1.一種緩存調(diào)整方法,其特征在于,包括根據(jù)設(shè)備中每個(gè)出口的預(yù)定出口速率,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值;根據(jù)每個(gè)出口的預(yù)先設(shè)定的最大時(shí)延值,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的最大緩存值;檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,在當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),從動(dòng)態(tài)緩存中為該出口分配緩存,分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值小于或等于該出口的最大緩存值,所述動(dòng)態(tài)緩存的大小不大于設(shè)備總緩存值減去所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和得到的差值。
2.如權(quán)利要求I所述的方法,其特征在于,所述根據(jù)設(shè)備中每個(gè)出口的預(yù)定出口速率,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值,包括將用于分配的固定緩存值除以預(yù)設(shè)系統(tǒng)速率精度與出口數(shù)的乘積得到的結(jié)果,作為所述系統(tǒng)速率精度下的緩存數(shù);針對(duì)每個(gè)出口,當(dāng)所述系統(tǒng)速率精度下的緩存數(shù)大于或等于預(yù)置的該出口的最小緩存數(shù)時(shí),將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值。
3.如權(quán)利要I所述的方法,其特征在于,所述檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,在當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),從動(dòng)態(tài)緩存中為該出口分配緩存,包括檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,若當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率,判斷該出口對(duì)應(yīng)的緩存隊(duì)列的當(dāng)前緩存值與固定步長(zhǎng)之和是否小于該出口的最大緩存值;若是,按照所述固定步長(zhǎng)從動(dòng)態(tài)緩存中為該出口分配緩存。
4.如權(quán)利要求3所述的方法,其特征在于,還包括若當(dāng)前實(shí)際速率低于該出口的預(yù)定出口速率,根據(jù)該出口當(dāng)前實(shí)際速率計(jì)算該出口實(shí)際所需的緩存值;判斷所述出口實(shí)際所需的緩存值是否大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值;若大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,則在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存;若不大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值,則在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述該出口對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存。
5.如權(quán)利要求I至4中任一所述的方法,其特征在于,所述動(dòng)態(tài)緩存是所述確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值之后,計(jì)算設(shè)備中所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和,將設(shè)備總緩存值減去所述所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和得到的。
6.一種緩存調(diào)整裝置,其特征在于,包括第一確定單元,用于根據(jù)設(shè)備中每個(gè)出口的預(yù)定出口速率,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值;第二確定單元,用于根據(jù)每個(gè)出口的預(yù)先設(shè)定的最大時(shí)延值,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的最大緩存值; 分配單元,用于檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,在當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),從動(dòng)態(tài)緩存中為該出口分配緩存,分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值小于或等于該出口的最大緩存值,所述動(dòng)態(tài)緩存的大小不大于設(shè)備總緩存值減去所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和得到的差值。
7.如權(quán)利要求6所述的裝置,其特征在于,所述第一確定單元包括 第一計(jì)算子單元,用于將用于分配的固定緩存值除以預(yù)設(shè)系統(tǒng)速率精度與出口數(shù)的乘積得到的結(jié)果,作為所述系統(tǒng)速率精度下的緩存數(shù); 確定子單元,用于針對(duì)每個(gè)出口,當(dāng)所述系統(tǒng)速率精度下的緩存數(shù)大于或等于預(yù)置的該出口的最小緩存數(shù)時(shí),將所述系統(tǒng)速率精度下的緩存數(shù)乘以該出口的預(yù)定出口速率,得到該出口對(duì)應(yīng)的緩存隊(duì)列的初始值。
8.如權(quán)利要求6所述的裝置,其特征在于,所述分配單元包括 檢測(cè)子單元,用于檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率; 第一判斷子單元,用于當(dāng)所述檢測(cè)子單元檢測(cè)到的設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),判斷該出口對(duì)應(yīng)的緩存隊(duì)列的當(dāng)前緩存值與固定步長(zhǎng)之和是否小于該出口的最大緩存值; 分配子單元,用于當(dāng)所述第一判斷子單元的判斷結(jié)果為是時(shí),按照所述固定步長(zhǎng)從動(dòng)態(tài)緩存中為該出口分配緩存。
9.如權(quán)利要求8所述的裝置,其特征在于,所述分配單元還包括 第二計(jì)算子單元,用于當(dāng)所述檢測(cè)子單元檢測(cè)到的設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率低于該出口的預(yù)定出口速率時(shí),根據(jù)該出口當(dāng)前實(shí)際速率計(jì)算該出口實(shí)際所需的緩存值; 第二判斷子單元,用于判斷所述第二計(jì)算子單元計(jì)算得到的出口實(shí)際所需的緩存值是否大于該出口對(duì)應(yīng)的緩存隊(duì)列的初始值; 第一處理子單元,用于當(dāng)所述第二判斷子單元的判斷結(jié)果為是時(shí),在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述出口實(shí)際所需的緩存值的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存; 第二處理子單元,用于當(dāng)所述第二判斷子單元的判斷結(jié)果為否時(shí),在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述該出口對(duì)應(yīng)的緩存隊(duì)列的初始值的部分空間已被占用的情況下,在發(fā)送完數(shù)據(jù)后,將所述部分空間釋放給動(dòng)態(tài)緩存;在所述出口對(duì)應(yīng)的緩存隊(duì)列中超出所述對(duì)應(yīng)的緩存隊(duì)列的初始值間的部分空間未占用的情況下,將所述部分空間釋放給動(dòng)態(tài)緩存。
10.一種設(shè)備,其特征在于包括至少兩個(gè)出口、以及存儲(chǔ)器和處理器,其中 所述存儲(chǔ)器被配置存儲(chǔ)代碼; 所述處理器被配置讀取所述存儲(chǔ)器中存儲(chǔ)的代碼,執(zhí)行如權(quán)利要求1-4任一所述的方法。
全文摘要
本發(fā)明實(shí)施例公開(kāi)了一種緩存調(diào)整方法,包括根據(jù)設(shè)備中每個(gè)出口的預(yù)定出口速率,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的初始值;根據(jù)每個(gè)出口的預(yù)先設(shè)定的最大時(shí)延值,確定每個(gè)出口對(duì)應(yīng)的緩存隊(duì)列的最大緩存值;檢測(cè)設(shè)備中每個(gè)出口的當(dāng)前實(shí)際速率,在當(dāng)前實(shí)際速率高于該出口的預(yù)定出口速率時(shí),從動(dòng)態(tài)緩存中為該出口分配緩存,分配緩存后該出口對(duì)應(yīng)的緩存隊(duì)列的緩存值小于或等于該出口的最大緩存值,所述動(dòng)態(tài)緩存的大小不大于設(shè)備總緩存值減去所有出口對(duì)應(yīng)的緩存隊(duì)列的初始值之和得到的差值。采用本發(fā)明,對(duì)有多個(gè)出口的設(shè)備,在緩存總量不變的前提下,根據(jù)每個(gè)出口當(dāng)前實(shí)際速率自動(dòng)調(diào)整出口緩存隊(duì)列深度,實(shí)現(xiàn)為多個(gè)出口動(dòng)態(tài)地調(diào)整緩存空間。
文檔編號(hào)H04L12/861GK102916903SQ20121041198
公開(kāi)日2013年2月6日 申請(qǐng)日期2012年10月25日 優(yōu)先權(quán)日2012年10月25日
發(fā)明者曹學(xué)成 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
黔西| 长沙县| 连南| 仁布县| 商水县| 四子王旗| 临西县| 天峨县| 秀山| 高碑店市| 西乌| 德昌县| 巨野县| 桐庐县| 商南县| 石楼县| 鸡东县| 监利县| 梧州市| 阿克苏市| 遂平县| 罗源县| 连平县| 凭祥市| 金沙县| 嘉禾县| 木里| 甘孜| 高碑店市| 青田县| 金秀| 军事| 定日县| 房山区| 九台市| 长治县| 宣威市| 定结县| 长治市| 东台市| 岳阳县|