关于心跳ajax请求pending状态(被挂起),stalled时间过长的问题。涉及tcp连接异常。[通俗易懂]

关于心跳ajax请求pending状态(被挂起),stalled时间过长的问题。涉及tcp连接异常。[通俗易懂]环境:景安快云服务器(听说很垃圾,但是公司买的,我也刚来),CentOS6.8x86_64,Apache,MySQL5.1,PHP5.3.问题:现公司有一个php系统,需要重复向后台发送ajax

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

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

关于心跳ajax请求pending状态(被挂起),stalled时间过长的问题。涉及tcp连接异常。[通俗易懂]

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

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

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

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

关于心跳ajax请求pending状态(被挂起),stalled时间过长的问题。涉及tcp连接异常。[通俗易懂]

 

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

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

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

关于心跳ajax请求pending状态(被挂起),stalled时间过长的问题。涉及tcp连接异常。[通俗易懂]

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

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

 

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

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

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

关于心跳ajax请求pending状态(被挂起),stalled时间过长的问题。涉及tcp连接异常。[通俗易懂]

文中的抓包图:

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

我的抓包图:

关于心跳ajax请求pending状态(被挂起),stalled时间过长的问题。涉及tcp连接异常。[通俗易懂]

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

关于心跳ajax请求pending状态(被挂起),stalled时间过长的问题。涉及tcp连接异常。[通俗易懂]

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

                </section>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167567.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JS实现继承的几种方法总结

    JS实现继承的几种方法总结首先定义一个父类://构造函数functionAnimal(name){ this.name=name||’Animal’; this.sleep=function(){ console.log(this.name+’正在睡觉!’); };}//原型上面的方法:Animal.prototype.eat=function(food){ console…

    2022年7月22日
    8
  • c++ offsetof_函数offset的用法

    c++ offsetof_函数offset的用法宏offsetof标准库stddef.h定义size_toffsetof(type,member);分析C库宏offsetof(type,member)会生成一个类型为size_t的整型常量,它是一个结构成员(member)相对于结构(type)开头的字节偏移量。成员是由member给定的,结构的名称是在type中给定的。type–这是一个参数class类型,是结…

    2022年8月22日
    10
  • Win10安装Matlab R2017a技术指导

    Win10安装Matlab R2017a技术指导下面带来win1064-bitMatlab2017a的安装过程,亲测,可用。(一)所需文件及下载地址1.Matlab-R2017a-ISO镜像文件链接:https://pan.baidu.com/s/1pNhyKGF密码:cgt22.破解文件链接:https://pan.baidu.com/s/1nwWDgKh密码:4fwa链接:https://pan.ba

    2022年5月6日
    52
  • java环境搭建[通俗易懂]

    java环境搭建[通俗易懂]java环境搭建环境搭建(JDK与eclipse下载安装)目标:掌握Java环境搭建java环境搭建环境搭建(JDK与eclipse下载安装)目标:掌握Java环境搭建一、JDK下载和安装二、eclipse下载和安装三、eclipse常用配置设置四、编写代码一、JDK下载和安装下载:访问官网跳转到官网下载页面选择对应版本点击下载安装:打开安装包,依次点击下一步按其流程安装即可。配置环境变量(1)此电脑右击属性–>找到高级系统设置–>找到

    2022年7月9日
    23
  • Oracle创建本地数据库实例及配置

    Oracle创建本地数据库实例及配置        因为以前一直都是用的mysql的数据库,所以当新工作中用到Oracle数据库的时候,一时还有点不习惯,特别是一直连接的远程数据库,更是麻烦,所以就想在本地创建一个Oracle的数据库,然后导入数据库的备份文件方便使用。然而看似简单的东西,真正动起手来,却也还是花了好一会儿工夫也才解决。所以希望能够把安装的过程记录下来,不仅方便自己以后查阅,也能督促自己开始写博客(3年前就有这样的想…

    2022年5月31日
    35
  • 《海量数据库解决方式》读后感

    《海量数据库解决方式》读后感

    2021年12月1日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号