zoukankan      html  css  js  c++  java
  • 关于心跳ajax请求pending状态(被挂起),stalled时间过长的问题。涉及tcp连接异常。

    环境:景安快云服务器(听说很垃圾,但是公司买的,我也刚来),CentOS-6.8-x86_64,Apache,MySQL5.1,PHP5.3.

    问题:现公司有一个php系统,需要重复向后台发送ajax请求,但是会出现pending状态,我现在需要解决这个问题,或者说找到问题在服务器,代码,还是客户端,然后有个交代,但是不知道从何下手,毕竟还是it萌新啊。。

    效果如图。两个特点,1:就是越往后的请求,pengding时间越长,且其中绝大部分时间被stalled占用(此问题网上有相关文章,但是没有解决办法,我后文会贴出来);2:就是这个图我是设置的1s请求一次,一次又三个请求,如果设置的时间长一点比如7s,这个现象就会出现得迟。

    我的解决过程: 程序员表示没想到回来解决这个问题。。。百度,谷歌。

    我首先找到的有价值的文章是这篇:关于请求被挂起页面加载缓慢

    链接: http://kb.cnblogs.com/page/513237/

    文章的结论是,没有找到解决办法,但是大致描述了一个原因就是tcp连接的问题,而且跟chrome浏览器有关,关于socket这些,不是太了解,但是知道跟tcp握手有关。

    好,大致文章说了跟chrome有关,于是我又下了火狐来测试,依然有这个问题,所以虽然这篇文章很好,可能跟我这个无关吧我想。

    然后我又找到一篇文章:chrome的timeline中stalled问题解析 

    链接:http://www.tuicool.com/articles/qQVj6nb

    这篇文章的问题也和我差不多,耗时大部分在stalled,然后他通过抓包工具,证明是tcp的
    连接出了问题,跟上文一样,然后结论是网络问题或者服务端问题。然后我也去下载了同样的抓包工具,出现得效果也差不多。

    当然,如果是网络问题,我就有交代了,但是还有可能是服务端问题,因此还得继续找。

    然后虽然我确实看不懂这个抓包工具里面的信息,不过明显的报错我还是能看出来,也就是 TCP Previous segment not captured,这个错误出现频率很高,我想这应该就是跟tcp链接异常有关的报错,因此我又找了相关的文章,找到了这篇:抓包分析之 “TCP Previous segment not captured”;

    链接:https://my.oschina.net/moooofly/blog/804568

    文章描述了种种原因,就列出了一种,并贴出了相关的抓包图,我一对比,发现跟我的几乎一样,但是我看不懂各个信息的真正意思,所以也只能估计就是这个原因

    文中的抓包图:

    tcp 连接关闭时由于协议栈bug导致的认为数据包丢失

    我的抓包图:

    这张图全是错误,但是我都看不懂。

    好,总结一下,以上就是我解决问题的过程,大牛们做个参考,我现在想知道,这个问题到底出在哪一端,好有个交代。

                    </section>
  • 相关阅读:
    Log4net详细说明
    IDEA 介绍
    在互联网中关系型数据库是否不再那么重要
    彻底删除Kafka中的topic
    kafka consumer 配置详解
    kafka常用命令
    kafka可视化客户端工具Kafka Tool
    System.InvalidOperationException:“线程间操作无效: 从不是创建控件“btnSearch”的线程访问它。
    zookeeper图形化的客户端工具
    window上安装kafka(单机)
  • 原文地址:https://www.cnblogs.com/jpfss/p/8963766.html
Copyright © 2011-2022 走看看