Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/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
Linux 如果许多套接字连接处于TIMEWAIT状态,是否会影响服务器的性能_Linux_Sockets_Tcp_Erlang_Scalability - Fatal编程技术网

Linux 如果许多套接字连接处于TIMEWAIT状态,是否会影响服务器的性能

Linux 如果许多套接字连接处于TIMEWAIT状态,是否会影响服务器的性能,linux,sockets,tcp,erlang,scalability,Linux,Sockets,Tcp,Erlang,Scalability,假设我有15000个连接处于TIMEWAIT状态,它会影响性能吗?问题是我正在从erlang连接到redis,我得到了redis超时,并且我在1-2秒内触发了Many查询,比如15000个查询 问题不在于套接字限制 我打开连接火警查询并关闭连接,该连接导致许多连接处于TIMEWAIT状态,这对我来说是正常的,因为我有60k可用套接字 在erlang方面,我有20秒的等待时间,我认为这足以完成任务,因为redis速度非常快 有什么问题吗?顺便说一句,我正在使用eredis作为库如果不随意打开与

假设我有15000个连接处于TIMEWAIT状态,它会影响性能吗?问题是我正在从erlang连接到redis,我得到了redis超时,并且我在1-2秒内触发了Many查询,比如15000个查询

  • 问题不在于套接字限制
我打开连接火警查询并关闭连接,该连接导致许多连接处于TIMEWAIT状态,这对我来说是正常的,因为我有60k可用套接字

在erlang方面,我有20秒的等待时间,我认为这足以完成任务,因为redis速度非常快


有什么问题吗?顺便说一句,我正在使用eredis作为库

如果不随意打开与redis的连接,而是拥有一个稳定的连接池,那么效率会更高。您将消除每次启动tcp会话时的大量开销。 此外,您可能会遇到“打开的文件太多”错误

考虑调整您的
/etc/sysctl.conf
(如果您在linux上)。这绝对值得一看:

  • net.ipv4.tcp\u tw\u回收
  • net.ipv4.tcp\u tw\u重用
  • net.ipv4.tcp\u fin\u超时

可能是谷歌针对C10K问题提出的具体问题是什么?听起来您应该在客户端使用连接池。问题是redis返回超时问题。。所以,如果我有65000个插座,使用18000个左右,redis表现良好,网络速度也不错,那为什么超时呢?我想知道为什么会出现超时,瓶颈是什么。@Basile。。谢谢,我用的是erlang cowboy,我想它解决了CK10的问题,你没有65000个插座。您有64k端口,但所有传入连接都使用与其连接的侦听套接字相同的端口号,因此您可以拥有比64k多很多倍的套接字。处于TIME_WAIT状态的端口不消耗任何CPU。您是否收到连接超时或读取超时?