集群的可扩展性及其分布式体系结构之七--网络负载平衡常见问题
2008-11-25 10:59:59 来源:WEB开发网核心提示:常见的错误集群系统的设计是复杂的,特别在处理通信和软件架构上面,集群的可扩展性及其分布式体系结构之七--网络负载平衡常见问题,有很多令人意想不到的问题,层出不穷,这是典型的负载均衡算法使用或者系统配置不当的问题;有的时候,没有充分考虑集群节点性能差异,以下是笔者在部署集群系统的时候遇到的频率较高的问题,且作为抛砖引玉
常见的错误
集群系统的设计是复杂的,特别在处理通信和软件架构上面,有很多令人意想不到的问题,层出不穷。以下是笔者在部署集群系统的时候遇到的频率较高的问题,且作为抛砖引玉,希望广大爱好者可以加以讨论:
1. 溢出
如果有太多网络流量要处理,就会导致包丢失和发往目的节点的包阻塞,这时就会导致溢出。溢出可能发生在主控平衡器,也可能是在各服务节点。由于平衡器在处理能力上往往比节点的要大的多,就很可能是平衡器的流量很平稳但是某些较弱的节点溢出;反过来平衡器如果超载则会导致将要转发的数据流丢失或阻塞。
在处理TCP/IP协议是最常见的溢出错误就是TCP包超时。由于发送的TCP包需要等待确认信息,溢出错误使得确认信息无法返回,引发用户程序的再次尝试发送相同的请求包(这会产生更多的流量),最终造成恶性循环直至这个连接不可用。
2. 挨饿--负载不均衡
如果有太多网络流量要处理,就会导致包丢失和发往目的节点的包阻塞,这时就会导致溢出。溢出可能发生在主控平衡器,也可能是在各服务节点。由于平衡器在处理能力上往往比节点的要大的多,就很可能是平衡器的流量很平稳但是某些较弱的节点溢出;反过来平衡器如果超载则会导致将要转发的数据流丢失或阻塞。
在集群内部,一个节点如果和其他节点相比,没有得到足够的流量,或者这个节点总是处于比较空闲的状态没有什么负载,就说明集群的负载出现不平衡,这个节点正在"挨饿"。事实上,这表明了集群节点的计算资源没有被充分的利用,负载均衡的作业分配效率很低。这是典型的负载均衡算法使用或者系统配置不当的问题;有的时候,没有充分考虑集群节点性能差异,采用"一视同仁"的分配算法也会引起挨饿。
更多精彩
赞助商链接