項目涉及幾十個設備的連接,客戶說在同一時刻所有設備會發(fā)送消息過來,消息上附帶圖片,然后說我服務端就擁堵了,出現(xiàn)了延遲。
我想問有什么辦法來檢測是否擁堵了呢?非常感謝
我認為擁堵不擁堵得有個數(shù)據指標來衡量才科學,比如要求從客戶端發(fā)起請求到服務端響應必須在1秒之內完成,如果超過了這個時間指標,那么就認為是是擁堵的,如果是擁堵了話那么就可以根據這個指標繼續(xù)優(yōu)化服務器的處理能力。
過程是這樣的,客戶端的日志記錄了發(fā)送開始與結束的時間間隔為30ms,
09:55:06.191298 849 messagehandler] send message begin
09:55:06.223420 849 messagehandler] send message end
服務端實際上接收的時間到的時間也是如此,服務端接收到這個消息會轉發(fā)給web端顯示。
現(xiàn)在的問題是,在客戶端增加到20多個的時候,這個消息會在同一時刻發(fā)送到客戶端,然而客戶端可能會出現(xiàn)某一些消息會延遲幾秒才發(fā)送,,但是將客戶端 縮減一半左右,或者不發(fā)送圖片就沒有這樣的現(xiàn)象出現(xiàn)。客戶認為是我們服務端擁堵了才導致這樣的結果。
1、某些客戶端發(fā)送延遲? 難道是在onMessage()內處理完業(yè)務邏輯才發(fā)送消息的嗎?
2、你這日志只是記錄是客戶端發(fā)送的起始時間,并不能反映客戶端從發(fā)送到最后接收到響應這段時間內的服務器實際處理能力;
3、如果服務端網絡沒有問題、業(yè)務邏輯沒有明顯的阻塞、以及服務器的業(yè)務處理能力都在預期的指標內,那么基本上最大的可能就是帶寬不足,圖片會占用較大的帶寬。
@614: 問題重現(xiàn)的流程是這樣,