在多個RTT中,最大的RTT大于時延閾值,那么服務器不能夠為多個在線的客戶端同時提供穩(wěn)定的后臺服務,這種情況下,RTT的趨勢一般是逐步增加的。記錄當前在線的客戶端的數量,表明在線的目前數量的客戶端是服務器不可以為其提供穩(wěn)定的后臺服務的。
[0046]由于通過設置時間閾值,在確定時,只需要比較最大的RTT和時延閾值的大小,因此,判斷比較簡單快捷。
[0047]當然除了上述的確定服務器性能的方式外,還可以有其它的方式。例如:前面已經分析,根據多個測試時間點對應的多個RTT的變化趨勢,可以確定服務器為多個在線的客戶端同時提供穩(wěn)定的后臺服務的性能;或者更加直觀的方法,直接在坐標系中畫出圖,例如:點畫線圖、柱狀圖等,根據圖的變化趨勢,也可以確定服務器為多個在線的客戶端同時提供穩(wěn)定的后臺服務的性能。
[0048]其中,時延閾值需要預先確定,如圖6所不,確定的方法可以是:在步驟S101之前,還包括:子步驟S1011、子步驟S1012、子步驟S1013以及子步驟S1014。
[0049]子步驟S1011:分別模擬在線的不同數量的客戶端。
[0050]模擬在線的不同數量的客戶端,例如,客戶端的數量為:5萬、10萬、15萬、16萬、17
萬等等。
[0051]子步驟S1012:通過上述方法,測試不同數量的客戶端分別對應的多個請求測試消息與對應的響應測試消息之間的RTT。
[0052]通過上述步驟S101至步驟S103的方法,可以測試獲得不同數量的客戶端分別對應的多個請求測試消息與對應的響應測試消息之間的RTT。
[0053]子步驟S1013:以測試時間點為橫坐標,以往返時延為縱坐標,在同一個坐標中制作不同數量的客戶端對應的測試時間點-時延曲線圖。
[0054]子步驟S1014:根據測試時間點-時延曲線圖,確定時延閾值,并記錄時延閾值對應的客戶端的數量。
[0055]例如:如圖7和圖8所示,以YY玩唱會安可的RTT測試結果為例,兩個圖中,橫坐標是測試時間點,縱坐標是往返時延RTT,從圖7和圖8可以看到,在線客戶端數量為15w時,RTT很低;在線客戶端數量為16w時,RTT開始增加,也會降低,最大的RTT并沒有超過1000ms,變化趨勢很明顯的是時高時低;在線客戶端數量為17w時,RTT增加很多,并且一直是逐步上升的。因此,據此可以初步設定,時延閾值為1000ms,時延閾值對應的客戶端的數量是16萬。
[0056]上述變化的細節(jié)情況,通過圖2和圖3中CPU和內存的占用是根本看不出服務器性能劣化的真實情況的,但是通過本申請的RTT,卻可以清晰地展示出來。
[0057]其中,在步驟S101之前,還可以包括:根據在線的客戶端的數量,確定測試時間點的時間間隔和個數。
[0058]例如:在線客戶端數量為10萬時,確定測試時間點的第一時間間隔和第一個數;在線客戶端數量為12萬時,確定測試時間點的第二時間間隔和第二個數;在線客戶端數量為14萬時,確定測試時間點的第三時間間隔和第三個數;在線客戶端數量為15萬時,確定測試時間點的第四時間間隔和第四個數;在線客戶端數量為16萬時,確定測試時間點的第五時間間隔和第五個數;在線客戶端數量為17萬時,確定測試時間點的第六時間間隔和第六個數等等。例如:在線客戶端數量越多,測試時間點的時間間隔越短,個數越多。具體如何確定測試時間點的時間間隔和個數根據實際應用情況確定,在此不做限制。
[0059]其中,該方法還包括:服務器在判斷出當前消息是系統(tǒng)消息時,按照系統(tǒng)消息的處理程序進行處理。
[0060]也就是說,該方法在實現上,僅僅是增加了一對請求測試消息和響應測試消息(Request/Response),以用于RTT測試,而且不影響服務器后臺的原有處理邏輯,不給后臺處理增加額外壓力。如圖9所示,在一個【具體實施方式】中,也就是在服務器后臺僅僅增加了RTT測試消息處理模塊,原有的處理模塊與處理邏輯沒有變化。消息隊列中的消息是原有的系統(tǒng)消息時,按照原來系統(tǒng)消息的處理程序進行處理,消息隊列中的消息是RTT測試消息(即請求測試消息)時,按照上述的方法返回響應測試消息。
[0061]參閱圖10,圖10是本發(fā)明測試服務器性能的系統(tǒng)一實施方式的結構示意圖,該系統(tǒng)能夠執(zhí)行上述方法中的相應步驟,在該系統(tǒng)中相應內容的詳細說明與介紹請參見上述方法部分,在此不再贅敘。
[0062]該系統(tǒng)包括:測試服務器性能的裝置10和服務器20,服務器20為多個在線的客戶端同時提供后臺服務,多個客戶端發(fā)送單播消息給服務器,服務器定期給多個客戶端發(fā)送廣播消息。
[0063 ]測試服務器性能的裝置10包括:發(fā)送模塊101、接收模塊102、第一確定模塊103。服務器20包括:接收模塊201、解析模塊202、判斷模塊203、第一發(fā)送模塊204。
[0064]測試服務器性能的裝置10的發(fā)送模塊101用于在多個測試時間點分別向服務器發(fā)送用于測試服務器的性能的多個請求測試消息。
[0065]服務器20的接收模塊201用于接收消息。
[0066]服務器20的解析模塊202用于依次對接收的消息隊列中的消息進行解析。
[0067]服務器20的判斷模塊203用于判斷當前消息是否是請求測試消息。
[0068]服務器20的第一發(fā)送模塊204用于當判斷出當前消息是請求測試消息時,發(fā)送響應測試消息以響應對應的請求測試消息,以根據多個請求測試消息而依次返回多個對應的響應測試消息。
[0069]測試服務器性能的裝置10的接收模塊102用于依次接收返回的多個對應的響應測試消息。
[0070]測試服務器性能的裝置10的第一確定模塊103用于根據多個請求測試消息與對應的響應測試消息之間的往返時延RTT,確定服務器為多個在線的客戶端同時提供穩(wěn)定的后臺服務的性能。
[0071]本發(fā)明實施方式在多個測試時間點分別向服務器發(fā)送用于測試服務器的性能的多個請求測試消息;服務器接收消息并依次對接收的消息隊列中的消息進行解析,當判斷出當前消息是請求測試消息時,發(fā)送響應測試消息以響應對應的請求測試消息,以根據多個請求測試消息而依次返回多個對應的響應測試消息;根據多個請求測試消息與對應的響應測試消息之間的往返時延RTT,確定服務器為多個在線的客戶端同時提供穩(wěn)定的后臺服務的性能。由于增加一對互相響應的消息,即請求測試消息和響應測試消息,并多次測量請求測試消息和響應測試消息之間的往返時延RTT,根據這些多個RTT,能夠確定服務器為多個在線的客戶端同時提供穩(wěn)定的后臺服務的性能;可以客觀、真實的表現出服務器的性能的細節(jié)變化情況。
[0072]其中,測試服務器性能的裝置10的第一確定模塊103具體用于在多個請求測試消息與對應的響應測試消息之間的RTT中,若最大的RTT小于等于時延閾值,則確定服務器能夠為多個在線的客戶端同時提供穩(wěn)定的后臺服務,并記錄當前在線的客戶端的數量;在多個請求測試消息與對應的響應測試消息之間的RTT中,若最大的RTT大于時延閾值,則確定服務器不能夠為多個在線的客戶端同時提供穩(wěn)定的后臺服務,并記錄當前在線的客戶端的數量。
[0073]其中,參見圖11,測試服務器性能的裝置10還包括: