服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

如何防止TCP连接通过OpenVPNnetworking冻结?

在这个问题的最后增加了新的细节; 我可能正在调整原因。 我有一个基于UDP的基于OpenVPN的VPNbuild立在互联网上的less数客户端,这些VPN是以tap模式build立的(我需要tap因为我需要VPN来传递多播包,而tunnetworking似乎不可能)。 我一直在经历VPN频繁的TCP连接冻结。 也就是说,我将build立一个TCP连接(例如SSH连接,但其他协议也有类似的问题),并且在会话期间的某个时刻,stream量似乎将停止在该TCP会话上传输。 这似乎与发生大数据传输的点有关,例如,如果我在SSH会话中执行ls命令,或者如果我logging长日志文件。 一些Googlesearch在服务器故障上出现了许多类似于这个问题的答案,表明可能的罪魁祸首是MTU问题:在高stream量期间,VPN试图发送丢弃在VPN端点。 上面链接的答案build议使用以下OpenVPNconfiguration设置来缓解该问题: fragment 1400 mssfix 这应该将VPN上使用的MTU限制为1400字节,并修复TCP最大段大小,以防止产生大于此数据包的数据包。 这似乎缓解了一些问题,但我仍然经常看到冻结。 我已经尝试了一些尺寸作为fragment指令的参数:1200,1000,576,所有的结果都相似。 我想不出两端之间有什么奇怪的networking拓扑可能引发这样的问题:VPN服务器运行在直接连接到Internet的pfSense机器上,而我的客户端也直接连接到另一个位置的Internet。 另外一个奇怪的问题是:如果我运行tracepath工具,那么这似乎可以帮助解决问题。 示例运行如下所示: [~]$ tracepath -n 192.168.100.91 1: 192.168.100.90 0.039ms pmtu 1500 1: 192.168.100.91 40.823ms reached 1: 192.168.100.91 19.846ms reached Resume: pmtu 1500 hops 1 back 64 以上运行在VPN上的两个客户端之间:我发起了从192.168.100.90到192.168.100.91目的地的跟踪。 两个客户端都configuration了fragment 1200; mssfix; fragment 1200; mssfix; 试图限制链路上使用的MTU。 上面的结果似乎表明tracepath能够检测两个客户端之间的1500字节的pathMTU。 我会假设由于在OpenVPNconfiguration中指定的碎片设置,它会稍小一些。 我发现结果有点奇怪。 更奇怪的是,如果我有一个处于停顿状态的TCP连接(例如,一个目录列表被冻结的SSH会话),那么执行上面显示的tracepath命令会导致连接重新启动 ! 为什么会出现这样的情况呢,我想不出什么合理的解释,但是我觉得这可能是指向一个解决scheme,最终根除问题。 […]

寻找测量使用CDN的高可用性应用程序的build议

我为一家财富500强公司工作,该公司正在努力准确衡量高可用性应用程序的性能和可用性(例如,5秒页面到页面导航的应用程序可达99.5%)。 我们考虑计划和计划外宕机时间来确定这个可用性数字。 不过,我们最近又join了CDN,这使我们的指标变得复杂一些。 CDN现在可以处理大约75%的stream量,同时将余下的数据发送到我们自己的服务器。 我们试图测量我们所说的“真正的用户体验”(即,我们的testing脚本模拟一个典型的用户点击应用程序)。这些监控脚本位于我们的networking之外,这意味着我们正在使用CDN的约75%时间。 pipe理层决定,我们采取最坏的情况来衡量可用性。 所以,如果我们的原始服务器有问题,但是CDN服务内容还不错,我们仍然会受到影响。 反过来也是如此。 我的想法是,只要“用户体验”成功,我们就不应该不必要地惩罚自己。 毕竟,CDN有提高性能和可用性! 我只是想知道,如果有人知道其他财富500强公司如何计算他们的可用性数字? 例如,我看着一个使用CDN的店面(apple.com),这个店面使用的CDN似乎从来没有出现过(除非将要成为一个重要的产品宣告)。拥有一些硬性的,事实的数据是件好事,因为我不喜欢我们不相信我们需要在这些指标上不必要地伤害自己。 我们正在根据这些数字做出商业决定。 但是,我可以说,鉴于pipe理层可以看到这些指标,问题得到解决和快速解决(阅读:我们快速地浏览了繁文</s>节)。不幸的是,作为开发人员,我不希望pipe理层思考由于某些外部因素(即CDN)正在影响这些数字,所以应用程序已经启动或closures。 思考? (我错误地在StackOverflow上发布了这个问题,对于交叉post提前抱歉)