首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure关闭空闲网络连接

Azure关闭空闲网络连接
EN

Server Fault用户
提问于 2015-01-22 23:10:14
回答 2查看 36.4K关注 0票数 10

我正在单个实例windows服务器2k8R2蔚蓝VM上运行一个专有的客户机/服务器应用程序。

客户端非常依赖于与服务器的连接。但是,如果我花了几分钟没有任何活动,Azure端的某个东西会强行关闭连接(据我从日志中可以看出)。如果这是天蓝色本身或窗户的作用,我就不确定了。

如果没有实现某种保活功能(因为这个软件是专有的),那么我是否可以扩展这个超时呢?

我看到了几个关于为负载平衡情况更改idletimeout的引用,但这只是一个实例。

提前谢谢!

EN

回答 2

Server Fault用户

回答已采纳

发布于 2015-01-23 22:32:04

您正在您的VM前面的软件负载均衡器的设计特性。默认情况下,它将在4分钟后关闭任何空闲连接,但您可以将超时配置为这4到30分钟之间的任意值:

Azure负载均衡器的可配置空闲超时

但是,在基础设施和应用程序端都有一些保持生命的好做法。在将来,它会给你节省更多的麻烦。

编辑以添加Azure现在支持空闲连接上的TCP重置

票数 11
EN

Server Fault用户

发布于 2017-05-20 09:12:21

Azure VM的TCP设置

Azure VM通过使用NAT (网络地址转换)与公共Internet进行通信。NAT设备为Azure VM分配公共IP地址和端口,允许该VM建立与其他设备通信的套接字。如果数据包在特定时间后停止通过该套接字,NAT设备将终止映射,该套接字可供其他VM自由使用。

这是一种常见的NAT行为,它可能会导致基于TCP的应用程序上的通信问题,这些应用程序期望套接字在超时期间后得到维护。对于处于已建立连接状态的会话,需要考虑两个空闲超时设置:

通过Azure负载平衡器入站。这个超时默认为4分钟,并且可以调整到30分钟。出站使用SNAT (源NAT)。此超时设置为4分钟,无法调整。为了确保连接不会超过超时限制,您应该确保您的应用程序保持会话活动,或者您可以配置底层操作系统来这样做。Linux和Windows系统使用的设置不同,如下所示。

对于Linux,您应该更改下面的内核变量。net.ipv4.tcp_keepalive_time = 120 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes =8

对于Windows,您应该更改下面的注册表值。KeepAliveInterval = 30 KeepAliveTime = 120 TcpMaxDataRetransmissions =8

上述设置确保在空闲时间为2分(120秒)后发送“保持活动”数据包,然后每30秒发送一次。如果其中8个数据包失败,会话将被丢弃。

来源:https://github.com/wbuchwalter/azure-content/blob/master/includes/guidance-tcp-session-timeout-include.md

票数 5
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/661704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档