HaProxy学习 —300K的TCP Socket并发连接实现(翻译)
1 原文链接
2 原文翻译
标题:用HAProxy的负载均衡实现300K的TCP Socket并发连接:端口耗尽、保持连接等。
发表时间: 2015年8月19日
最近我尝试建立一个推送系统。为了增加系统的可扩展性,最佳实践是使每个连接尽可能无状态。因此当瓶颈出现时,可以通过添加更多的机器来轻松扩展整个系统的容量。说到负载平衡和反向代理,Nginx可能是最著名和公认的一个。然而,TCP代理是一个相当新的事情。Nginx从v1.9引入了TCP负载平衡和反向代理,该版本于今年5月下旬发布,有很多缺失的功能。另一方面,HAProxy作为TCP加载平衡的先驱,已经相当成熟和稳定。我选择使用HAProxy来构建系统,最终我达到了300K的TCP Socket并发连接。如果不是我相当过时的客户端PC,我可以实现更高的数量。
2.1 调整Linux系统参数
300K的TCP Socket并发连接对于高性能服务器PC来说也不是一件容易的事情。首先,我们需要调整Linux内核配置,以充分利用我们的服务器。
- 文件描述符
从Linux系统角度来看,Sockets等同于文件,因此默认的文件描述符限制对于我们的300k目标来说相当小。修改系统全局允许分配的最大文件句柄数:(只有到配置/etc/sysctl.conf文件中修改才会永久生效,否则重启后就失效了
)