Html 为什么在这个http对话中会有10秒的延迟?

Html 为什么在这个http对话中会有10秒的延迟?,html,http,tcp,webserver,wireshark,Html,Http,Tcp,Webserver,Wireshark,我遇到了一个奇怪的情况。当我在10.1.10.29第一次访问嵌入式web服务器(uclinux/boa)时,在事情开始发生之前,我在浏览器窗口中得到了10秒的延迟。“第一次”是指我已经好几天没碰机器了。浏览器类型/操作系统无关紧要(源代码为10.1.10.20) 我有一条线鲨捕捉到了这一切 这是第296帧的细节: 注意,数据包374在296后大约10秒钟内不会弹出。这两个数据包之间的数据包不是来自相关机器。它只是坐在那里10秒钟,然后决定重新传输。它应该如何工作?最主要的原因肯定是因为代码是

我遇到了一个奇怪的情况。当我在10.1.10.29第一次访问嵌入式web服务器(uclinux/boa)时,在事情开始发生之前,我在浏览器窗口中得到了10秒的延迟。“第一次”是指我已经好几天没碰机器了。浏览器类型/操作系统无关紧要(源代码为10.1.10.20)

我有一条线鲨捕捉到了这一切

这是第296帧的细节:


注意,数据包374在296后大约10秒钟内不会弹出。这两个数据包之间的数据包不是来自相关机器。它只是坐在那里10秒钟,然后决定重新传输。它应该如何工作?

最主要的原因肯定是因为代码是从内存中交换出来的

Windows女士在这方面真的很糟糕。如果某个程序在“太长时间”内没有被使用,它就会被调出内存。时期当你返回时,它必须从硬盘上重新读取

Windows这样做的一件好事(主要原因)是对内核内存进行碎片整理。这是好事

但是,只有在服务器需要内存的情况下,Linux下才会出现类似的问题。换句话说,如果你有大量的进程,它们都在争夺尽可能多的内存,那么它很可能会替换掉使用最少的软件。否则它将留在原地


如果您使用Cassandra数据库系统,您会注意到在任何运行Cassandra以外的任何计算机上。如果你只是跑卡桑德拉,它会一直保持快速。若您运行其他占用大量内存的软件,则Cassandra在首次访问时速度较慢。这一点尤其值得注意。

我想补充一个答案,解决了我们的问题,即10秒延迟的问题,然后工作,5分钟不活动后再增加10秒延迟

首先,我们对所有内容进行了无线共享,并试图找出代码中的某种错误,或者计算机或服务器处理网络流量的方式中的错误。没有发现任何异常

经过多次搜索,我们发现这是一个DNS“问题”。在客户端计算机使用的DNS服务器中,服务器的域名有两个条目。一个是正确的,另一个(列表中的第一个)是错误的

因此,删除错误的dns指针解决了问题

这意味着问题是计算机尝试了它得到的第一个地址,等了10秒才得到答复,但没有得到答复,就转到了第二个地址。这不会产生错误消息,因为DNS应该是这样工作的。这就是为什么我们所有的wireshark日志显示为只等待10秒,没有错误,没有理由,然后跳入生命,只要DNS记录有效(在我们的情况下为5分钟),然后该过程需要再次进行


希望这对有类似问题的人有所帮助。

但是,wireshark中的延迟不会因为从内存中收集数据而发生。数据已经传输了。嗯。。。您的网络上可能存在冲突问题。我很久以前就遇到过这样的问题,一些局域网无法正确响应。但通常情况下,这不会在第一次点击后消失,就像多个设备的时钟一样。如果我有一段时间没有击中它,它在那个位置总是会有一个延迟。我认为这不是一个延迟,而是因为ACK/FIN(因为重传)的问题,这是一个问题的答案,还是一个关于Windows内存管理的随机咆哮,仅仅基于猜测?除非您确实有一个生锈的硬盘用于交换,并且内存需求大大超出了供应量,否则由于交换,很难让进程在十秒钟内完全不响应。web服务器本身当时似乎是内存,因为它会响应状态行和头。可能涉及的任何资源都可以交换到磁盘上(尽管10秒是很长的时间)。这也可能是某种状态的防火墙问题——如果持续10秒左右,这可能表明这是某种策略执行。我不知道这是否相关,但我注意到在数据包
374
上,窗口大小减小到
9056
。我还注意到TCP窗口缩放正在使用中。这表明,这可能会导致用户的Internet连接间歇性故障几分钟,然后又无缘无故地重新开始工作。