如何预测 Linux 负载均衡器的规格?

如何预测 Linux 负载均衡器的规格?

我想构建一个 Linux 负载均衡器,使用 SSL 卸载和粘性会话。我想使用 Pound 或 Pound 和 HAProxy 来实现这一点。我以前没有这样做过,而且我一直想了解 HAProxy 和 Pound。最后,我有了一个小小的用例,可以作为我动手的借口。

该网站是一个论坛,峰值吞吐量约为 4Mbps,我认为这意味着有很多帖子和阅读量!所以我不需要高吞吐量的设备,我更关心并发用户。

不过我有以下疑问;

  1. 负载均衡器上的大部分工作负载在哪里,是 CPU 解码 SSL 流量,还是粘性会话的 RAM 缓存会话?
  2. 接着查询 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 的速度应该没问题。

相关内容