l04*_*m33 5 sockets linux erlang networking
我们的(Linux)服务器使用了{active, once}
它的套接字选项,并且{tcp_error, Socket, etimedout}
弹出了消息.我知道这可能是由糟糕的网络状况引起的,但有一些奇怪的事情.
在我们的机器上系统范围内启用了TCP keepalive,实际选项值为:
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75
Run Code Online (Sandbox Code Playgroud)
我相信这意味着套接字会在至少20分钟内超时.但奇怪的是,我们的流程{tcp_error, Socket, etimedout}
在不到10秒的时间内就收到了.
我想知道,这是由gen_tcp:send(...)
运营引发的吗?然后我发现这是不可能的,因为发送操作都是同步的,它们会立即失败.
所以,我的问题是,etimedout
消息来自哪里?或是什么引发了它?特别是我在Erlang VM的C源代码附近inet_drv.c
,但还没有结论.
谢谢.
归档时间: |
|
查看次数: |
1069 次 |
最近记录: |