Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Download 无法在Jetty服务器上下载大型文件_Download_Timeout_Jetty_Jetty 9 - Fatal编程技术网

Download 无法在Jetty服务器上下载大型文件

Download 无法在Jetty服务器上下载大型文件,download,timeout,jetty,jetty-9,Download,Timeout,Jetty,Jetty 9,我使用Jetty 9服务器进行了一些测试下载,在该服务器上对一个大约80MB大小的文件进行多次下载。当下载次数较少且未达到55秒的下载时间时,所有下载通常都会结束,但是,如果55秒后有任何正在进行的下载,则网络流量仅限于下载,不再保留 我已经尝试设置超时和缓冲区Jetty,尽管这不起作用。有没有人遇到过这个问题,或者对如何解决有什么建议?IIS和Apache服务器上的测试工作得很好。使用JMeter进行测试。超时意味着您的客户端读取速度不够快 JMeter读取响应数据的速度不够快,因此连接处于空

我使用Jetty 9服务器进行了一些测试下载,在该服务器上对一个大约80MB大小的文件进行多次下载。当下载次数较少且未达到55秒的下载时间时,所有下载通常都会结束,但是,如果55秒后有任何正在进行的下载,则网络流量仅限于下载,不再保留


我已经尝试设置超时和缓冲区Jetty,尽管这不起作用。有没有人遇到过这个问题,或者对如何解决有什么建议?IIS和Apache服务器上的测试工作得很好。使用JMeter进行测试。

超时意味着您的客户端读取速度不够快

JMeter读取响应数据的速度不够快,因此连接处于空闲状态的时间足够长,以至于空闲超时并断开连接

我们定期使用800MB和2GB文件进行测试

关于使用HTTP/1.0、HTTP/1.1和HTTP/2协议

使用普通(明文)连接和安全TLS连接

响应以我们所能想到的尽可能多的传输编码和内容编码(压缩、gzip、分块、范围等)交付

我们使用自己的测试基础设施进行所有这些测试,通常会启动许多Amazon EC2节点来执行负载测试,该测试可以充分测试服务器需求(典型的测试是20个客户端节点对1个服务器节点)

在测试大型响应时,您需要了解协议(HTTP/1.x vs HTTP/2)以及该协议的持久性行为如何改变请求/响应延迟。在现实世界中,通过HTTP/1在同一个持久化连接上不会有多个大型请求(在HTTP/2上,多个请求将并行并同时发送)

确保将JMeter设置为使用HTTP/1.1,而不是使用持久化连接。(有关这方面的帮助,请参阅JMeter文档)

还要注意您的测试带宽,当测试本身设置不周且预期带宽远远超过网络本身带宽时,通常会责怪服务器(任何服务器)执行速度不够快

接下来,不要使用同一台机器进行测试,这种负载测试需要多台机器(1台用于服务器,4+用于客户端)


最后,在进行负载测试时,您希望密切了解服务器(以及较小程度上的客户端测试机器)上的网络配置,以最大限度地提高高负载下的网络配置。操作系统的默认配置很少足以处理正确的负载测试。

Marcus,也许你只是碰到了Jetty bug

编辑:提到的错误是Jetty中的一个单独超时,适用于整个操作,而不仅仅是空闲时间。因此,通过设置http.timeout属性,您基本上定义了允许任何下载的最长时间,这反过来可能会导致慢速客户端和/或大型下载的超时错误

干杯,
momo

我更改了Jetty start.ini下面的行,将时间增加了近5分钟,下载已经完成。如果问题发生在30台设备降低同一文件服务器时,其中大多数设备都停止了。那是最好的办法吗HTTP空闲超时(毫秒)HTTP.timeout=300000