Rav*_*mar 5 nginx haproxy google-cloud-platform websocket
对于目标100K并发 websocket 连接,建议使用什么nginx或haproxy设置?我认为,单个 nginx 将无法承受这样的流量以及并发连接。应该如何拆分到 nginx/haproxy 的流量(DNS lvl 或任何可用的 Amazon/Google 选项)?单个 nginx 能够处理多少并发 websocket?
尝试从谷歌搜索和 SO 帖子中收集相关信息。
有些人在 haproxy 负载均衡器后面运行聊天服务器,负载甚至更高。在私人电子邮件中向我报告的最高负载(带有统计页面的副本)是每个进程大约 300k 连接(因此是 600k 套接字)。请注意,在 Linux 下,默认情况下一个进程被限制为 1M 文件描述符(因此有 500k 端到端连接),但可以在 /proc 中进行调整。
在这种负载下要考虑的最重要的事情是您需要的 RAM 量。内核端套接字缓冲区每边每个方向至少需要 4kB,因此每个端到端连接最少需要 16kB。HAProxy 1.5 及更低版本每个连接将有两个缓冲区(例如:4kB 缓冲区足以用于 websocket)。1.6 可以在没有这些缓冲区的情况下运行,并且只为与数据的稀有连接分配它们。所以至少每百万个连接有 16 GB 的 RAM,或者旧版本大约 24 GB。将其分散到 SMP 机器上的多个进程以减少延迟可能是值得的。请记住,为了简单地建立 1M 连接,以 100k conns/s 的速度可能需要 10 秒。所有这些连接都会引起一些工作,每个工作几个字节,
| 归档时间: |
|
| 查看次数: |
9446 次 |
| 最近记录: |