项目涉及几十个设备的连接,客户说在同一时刻所有设备会发送消息过来,消息上附带图片,然后说我服务端就拥堵了,出现了延迟。 我想问有什么办法来检测是否拥堵了呢?非常感谢
我认为拥堵不拥堵得有个数据指标来衡量才科学,比如要求从客户端发起请求到服务端响应必须在1秒之内完成,如果超过了这个时间指标,那么就认为是是拥堵的,如果是拥堵了话那么就可以根据这个指标继续优化服务器的处理能力。
过程是这样的,客户端的日志记录了发送开始与结束的时间间隔为30ms,
09:55:06.191298 849 messagehandler] send message begin 09:55:06.223420 849 messagehandler] send message end
服务端实际上接收的时间到的时间也是如此,服务端接收到这个消息会转发给web端显示。
现在的问题是,在客户端增加到20多个的时候,这个消息会在同一时刻发送到客户端,然而客户端可能会出现某一些消息会延迟几秒才发送,,但是将客户端 缩减一半左右,或者不发送图片就没有这样的现象出现。客户认为是我们服务端拥堵了才导致这样的结果。
1、某些客户端发送延迟? 难道是在onMessage()内处理完业务逻辑才发送消息的吗? 2、你这日志只是记录是客户端发送的起始时间,并不能反映客户端从发送到最后接收到响应这段时间内的服务器实际处理能力; 3、如果服务端网络没有问题、业务逻辑没有明显的阻塞、以及服务器的业务处理能力都在预期的指标内,那么基本上最大的可能就是带宽不足,图片会占用较大的带宽。
@614: 问题重现的流程是这样,
我认为拥堵不拥堵得有个数据指标来衡量才科学,比如要求从客户端发起请求到服务端响应必须在1秒之内完成,如果超过了这个时间指标,那么就认为是是拥堵的,如果是拥堵了话那么就可以根据这个指标继续优化服务器的处理能力。
过程是这样的,客户端的日志记录了发送开始与结束的时间间隔为30ms,
服务端实际上接收的时间到的时间也是如此,服务端接收到这个消息会转发给web端显示。
现在的问题是,在客户端增加到20多个的时候,这个消息会在同一时刻发送到客户端,然而客户端可能会出现某一些消息会延迟几秒才发送,,但是将客户端 缩减一半左右,或者不发送图片就没有这样的现象出现。客户认为是我们服务端拥堵了才导致这样的结果。
1、某些客户端发送延迟? 难道是在onMessage()内处理完业务逻辑才发送消息的吗?
2、你这日志只是记录是客户端发送的起始时间,并不能反映客户端从发送到最后接收到响应这段时间内的服务器实际处理能力;
3、如果服务端网络没有问题、业务逻辑没有明显的阻塞、以及服务器的业务处理能力都在预期的指标内,那么基本上最大的可能就是带宽不足,图片会占用较大的带宽。
@614: 问题重现的流程是这样,
2.服务端接收到消息后进行了解析信息,转发到相对应的class处理,处理的第一步是转发到web端(不含图片),第二部是将里面的信息丢到mq中(将图片保存到数据库),然后发送响应消息给到客户端。服务端并没有分析出有哪些地方有阻塞的可能。