Linux 中如何实现负载平衡?我需要概念上的理解才能实施解决方案

Linux 中如何实现负载平衡?我需要概念上的理解才能实施解决方案

一个简单的场景,我为用户实现了一个电子邮件服务器来访问/发送电子邮件。现在用户数量增长,我的服务器已经无法处理负载。

现在的问题是为什么像电子邮件这样简单的事情会造成服务器负载?

场景 1) 它已达到其网络限制 - 带宽(这可以通过 askig ISP 来解决,以便为我提供更多带宽,因此排除)或 TCP/IP 端口 - 如果我没记错的话,每个服务器最多允许 64000 个端口。我认为这种可能性更大。那么解决方案是什么?添加更多网卡并启用绑定?如果是,绑定会处理负载平衡吗?同样只有 1 个 IP,那么如何解决这个问题?也许是虚拟 IP?

场景 2) 无法处理请求 - (处理器不足)。现在的解决方案可能是集群。我该如何实现它?谁来负责负载平衡?会不会像 4 台服务器一样,每台服务器都运行一个 IP 的 Web 服务器包?

答案1

考虑到您的知识水平,您应该找一个知道他们在做什么的人来评估您的系统并推荐升级或提高效率的方法。

场景 1a - 网络带宽饱和。这种情况不太可能发生。您没有提到您认为存在问题的原因,但除非您的组织规模非常大,否则电子邮件通常不会占用大量带宽,即使如此,系统的其他因素也往往首先成为瓶颈。

场景 1b - 端口耗尽。不,情况并非如此。差得远。

场景 2 - 处理器容量。这更可能是问题所在,也可能是 RAM、磁盘空间、磁盘速度(吞吐量/延迟)或其他完全不同的因素。集群是一种潜在选择。负载平衡硬件设备或特定软件会分配连接;不过,按卷和/或目的地智能分配负载通常会带来更多好处。

邮件服务器不是网络服务器,这完全是另一回事。计算机必须有 IP 地址才能在互联网上工作;哪种地址取决于您的设计。

相关内容