当我尝试发布内容或通过php上传文件到我的服务器时,我有一个奇怪的问题。
提交表单后,睡了一会儿,然后显示页面加载错误。 我试了不同的内容和大小不同的文件,发现它只能发布/上传大小530字节的内容/文件! (约)。
我可以上传/发布到其他网站,所以我很确定这个问题是在服务器上的某个地方。
upload_max_filesize是2M post_max_size是8M LimitRequestbody是3M 服务器通过PPPoE连接连接到互联网,而我之前在FTP上遇到了问题,我通过将服务器的MTU降低到1460来解决问题,但现在即使更改MTU也无济于事。
当我通过WireShark监视networking时,会显示下面的行(校验和错误和错误的tcp)
1170 53.165583000 192.168.1.2 78.39.102.77 TCP 1506 [TCP segment of a reassembled PDU] 1293 57.661244000 192.168.1.2 78.39.102.77 TCP 1506 [TCP Retransmission] 60849 > http [ACK] Seq=1 Ack=1 Win=66792 Len=1452
在线的细节上说错误发生在IP数据包上,主要是因为错误校验和(0x0000),并且表明它可能是由TCP / IP校验和卸载function引起的。
这可能与我的问题有关吗? 如果是这样,我该如何解决呢? 我应该禁用校验和? 更改网卡? 别的东西?
更新:我禁用了我的电脑(客户端)的IP校验和,现在我看到另一个消息在TCP重新传输,怀疑是问题的原因
[This frame is a (suspected) retrasmission]
下
[TCP Analysis Flags]
在我看来拥塞错误,但我不知道如何解决它
不要禁用TCP校验。
您的TCP堆栈应该会自动处理恢复,尽pipe这会拖低networking的吞吐量。 如果你能重现相同的故障,那么在发送或接收机器的TCP堆栈或其中的某个地方有一个非常严重的缺陷。 你在两端运行wireshark吗?
你在发送端configuration了TCP卸载吗? 你试过把它关掉吗?
是由路由器或HTTP代理的NAT?
我想在Sirjan Universoty of Technology能够给你一些关于如何在serverfault上configuration系统的更具体的build议。
我猜想是tcp拥塞的问题,于是我跟着tcp参数调优,增加了tcp_wmem,tcp_rmem,wmem_max,…..然后重启服务器
直到现在我还没有遇到这个问题
在这里我应该指出,因为WireShark在通过NIC之前捕获tcp分组,所以如果在NIC中计算校验和,那么WireShark中不正确的校验和通常不是真正的问题