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