我想构建一个 Linux 负载均衡器,使用 SSL 卸载和粘性会话。我想使用 Pound 或 Pound 和 HAProxy 来实现这一点。我以前没有这样做过,而且我一直想了解 HAProxy 和 Pound。最后,我有了一个小小的用例,可以作为我动手的借口。
该网站是一个论坛,峰值吞吐量约为 4Mbps,我认为这意味着有很多帖子和阅读量!所以我不需要高吞吐量的设备,我更关心并发用户。
不过我有以下疑问;
- 负载均衡器上的大部分工作负载在哪里,是 CPU 解码 SSL 流量,还是粘性会话的 RAM 缓存会话?
接着查询 1,我有一台想要使用的备用服务器,但如何将所需的服务器硬件规格与所需的 Web 应用程序性能关联起来?
我有一台小型 1u 服务器 (PowerEdge 1850),配备 2x76GB 10k Ultra 320 SCSI 驱动器(RAID1)、2x 3Ghz 单核 Xeon(800Mhz 总线,2MB L2 缓存)和 6x 1GB PC2-3200 400Mhz RAM。我想使用这个,但我没有使用过 HAProxy 和 Pound,所以我不能说这是否合适。我认为从硬件负载平衡器规格来看,6GB 的 RAM 太多了。其他人对 CPU 和 HDD 有什么看法?
这不是购物帖子,所以不要发布合适的服务器模型。相反,如果这个不能胜任任务,我想做的是回到查询 (1),这样我就可以构建其他足够的东西。我在服务器部署方面有很多经验,但没有这两个包。
谢谢。
答案1
HAProxy 和 SSL:
HAProxy 中直接支持 SSL 的时间非常短(仍处于开发阶段,大约一周前发布),因此根据你的时间安排,你将需要 stunnel 或 nginx 之类的东西来卸载 SSL。如果你不介意尝试新东西,这里有一个如何。
TPS、并发性和吞吐量:
这里的主要因素可能是每秒事务数 (TPS)。因此,为了预测负载,您需要以某种方式获取此数字。您很可能想要解析 Web 日志。并发性实际上取决于您保持会话打开的时间。如果您将它们保持打开一段时间,响应似乎会更快,因为您不必不断重新创建会话(对于 SSL 来说,这既耗时又昂贵)。但是,您不希望将会话保持打开时间过长,以免占用大量内存。
使用 HAProxy 估算容量:
就内存性能而言,HAProxy 文档确实给出了一些指导:
另外,请记住,一个连接包含两个 8kB 的缓冲区,以及一些其他数据,因此每个建立的连接会消耗大约 17 kB 的 RAM。这意味着,如果经过适当调整,配备 1GB RAM 的中型系统可以承受大约 40000-50000 个并发连接。
对于 SSL,大部分 CPU 工作将在握手阶段进行,如果您用于处理 SSL 的设备可以缓存生成的密钥,则可以节省大量 CPU。请参阅本文了解更多详细信息。
您还可以使用这个人基准以获得一个想法作为基线。
您必须进行基准测试以确保:
最后,你必须进行基准测试才能确定,这是一个参考帮助您入门。我个人的印象是,4 Mbps 的速度应该没问题。