我将使用Ganglia进行群集监视,并向我们的管理人员展示了O'Reilly关于Ganglia的书中的以下图片:
他们在这张照片中看到了“多播”,并出于性能考虑将其归类为“ Big No”。我的印象完全相反-组播协议比单播协议更易于配置,更经济,更有效。
有什么大的原因,为什么集群设计者应该害怕多播?
答案 0 :(得分:1)
多播的主要潜在“陷阱”是许多网络交换机未实现IGMPv3(或对于IPv6而言,未实现MLDv2),相反,它们只是将每个多播数据包广播到网络上的每个设备。局域网,并依靠每个设备的IP堆栈在本地过滤掉所有不相关的传入多播数据包。从技术上讲,这是可行的(并使交换机的实现保持简单),但这确实意味着,如果局域网上的任何慢速设备必须投入大量的网络带宽和/或CPU时间来检查并抛出,则可能会遇到性能问题。丢弃了许多他们从未要求的组播数据包。
在另一方面,多播(或广播)实际上是执行LAN上设备自动发现之类的要求,因为除非您已经知道该设备的IP地址,否则您就不能使用单播通信来与另一台设备进行通信。
那么,我的建议是将多播用于发现,心跳和其他低带宽流量,但是如果您打算做一些高带宽(例如,视频流或批量数据传输),则要么可以回退到单播,或者确保您的交换机实现IGMPv3 / MLDv2,而不仅是到处都是垃圾多播数据包。
最后一点:WiFi在组播方面确实很糟糕–由于实施WiFi组播的不幸方式,即使适量的组播流量也可以将WiFi路由器带到其上膝盖因此,如果您打算使用多播,则可能要使所有WiFi路由器完全远离LAN,或者至少要确保可以将其设置为过滤多播数据包,而不是尝试将其转发给它们。 WiFi客户端。