【发布时间】:2013-07-31 18:19:47
【问题描述】:
假设我有 15000 个处于 TIMEWAIT 状态的连接会影响性能吗?问题是我正在从 erlang 连接到 redis 并且我得到 redis 超时并且我正在触发许多查询让我们说 15000 在 1-2 秒内。
- 问题不在于套接字限制
我打开连接触发查询并关闭导致许多连接处于 TIMEWAIT 状态的连接,这对我来说没问题,因为我有 60k 可用套接字。
在 erlang 方面,我有 20 秒的 timewait 时间,我认为这足以完成任务,因为 redis 非常快。
可能是什么问题?顺便说一句,我正在使用 eredis 作为库
【问题讨论】:
-
也许是 google 的 C10K 问题
-
究竟是什么问题?听起来您应该在客户端使用连接池。
-
问题是redis返回超时问题..所以如果我有65000个套接字并且我正在使用大约18000个并且redis性能很好并且网络速度很好那么为什么超时?我想确切地知道为什么会有超时,瓶颈是什么..
-
@Basile.. 谢谢我正在使用 erlang 牛仔,我认为它解决了 CK10 问题
-
您没有“65000 个套接字”。您有 64k 端口,但所有传入连接都使用与它们连接的侦听套接字相同的端口号,因此您可以拥有比 64k 套接字多很多倍的端口号。处于 TIME_WAIT 状态的端口不会消耗任何 CPU。您是否遇到连接超时或读取超时?
标签: linux sockets tcp erlang scalability