本帖最后由 KYLE_K 于 2020-7-1 13:05 编辑
故障描述:
1.客户端访问业务系统时,反复出现卡顿的情况,具体表现为每隔几秒钟就会出现页面数据刷新不了的情况; 2.卡顿的情况并没有在所有的终端上出现; 3.出现卡顿的客户端ping服务器的时延正常; 4.检查过交换机流量日志,没有发现异常情况; 5.检查服务器性能消耗情况,没有发现异常情况。
数据包分析: 1.发现有客户端有发送TCP 0窗口数据包的情况 通过抓取有访问故障终端的通信数据,发现有TCP窗口为0的情况,如下图所示:
2.什么情况下客户端会向服务器发送0窗口报文? 根据TCP滑动窗口机制:某些情况下,可能是由于内存不足,处理能力不够,或其他原因,客户端无法继续处理从服务器发送的数据。为避免造成数据被丢弃以及传输中断,客户端会发送窗口为0的报文。当服务器接收到此报文时,它会暂停所有数据传输,会以传输探测(keep-alive)报文的方式,保持与服务器的连接。探测报文在客户端与服务器之间发送,以检测客户端窗口状态。一旦客户端能够再次处理数据,将会返回非零值窗口到服务器,传输会恢复。
3.TCP 0窗口报文分析 一.客户端在8.05秒时,发送第一个TCP 0 窗口报文,在14.26秒发送非0 窗口报文,
二.客户端在14.42秒时,发送第二个TCP 0 窗口报文,在22.11秒发送非0 窗口报文,
三.客户端发送其余的0窗口报文,都是在几秒钟内释放释放出非0窗口报文,其他出现卡顿的客户端也出现类似的数据包。
四.客户端发送TCP 0窗口报文的情况,疑似终端出现性能不足的情况,需要对卡顿的终端进行排查。
4.终端卡顿问题排查 一.经客户确认,访问系统卡顿的电脑使用年限都在三年以上,但不访问业务系统时,完全没有卡顿的情况; 二.卡顿的电脑,即使重装系统后,访问业务系统,仍出现卡顿的情况;
5.分析结论 综合以上的情况,判断终端电脑性能不足,导致的业务系统访问卡顿,与网络质量和服务器性能无关;
6.问题解决建议 一.建议淘汰使用年限在三年以上的电脑, 二.如果无法短时间内无法更换这部分终端,那要怎么解决呢?这时候就可以采用以下方案: 部署某公司SSL VPN远程应用发布 客户通过远程应用发布服务器,对业务系统进行访问,类似通过远程桌面访问对应的业务系统,终端仅作为显示输出,大幅减少性能消耗,但终端仅能访问发布的应用,能有效避免了远程桌面访问权限过高的问题。 部署某公司云桌面 客户端仅作为显示输出终端,所有计算资源消耗均在云桌面上,本地终端性能对访问无任何影响,而且相对于SSL VPN的远程应用发布,在不超出服务器性能的情况,可以依照业务系统性能要求,调整云桌面计算资源,更灵活地适应业务系统对终端的性能要求。 |