首先,如果这个 StackExchange 网站不适合回答这个问题,我深表歉意 - 它是关于以太网网络容量的,而不是专门关于服务器等的。
我正在为数据采集系统设计一个网络,该系统将通过 TCP 以略高于 30 Mbps 的速度输出数据。(为了避免明显的第一条评论,这绝对是超级位每秒。)
我记得曾经听说过,应该将网络的正常利用率保持在容量的 10% 以下,但我找不到任何相关研究。10% 这个数字合理吗?如果合理,它适合我的数据采集系统吗?还是这个数字适用于比我恒定的 30 Mbps 更具“突发性”的企业网络?
与以 30% 容量运行的 100baseT 设备相比,使用以大约 3% 容量运行的千兆以太网是否更好?
答案1
根据我的经验,您应该尝试将最常用的链接保持在峰值“低于 90%”。至于您预期的“典型”和“峰值”之间的差异,您比我更有资格回答这个问题。
我猜想“低于 10% 的正常利用率”是针对“典型”和“峰值”之间存在巨大差异的网络,或者基于大型冲突域(通常基于同轴电缆和 wifi),您可以预期大约 80% 的“完美”利用率(之后,重传占用的可用带宽比例越来越大,直到您所拥有的基本上只有重传)。
如果速度相当稳定,为 30 Mbps,且不与“突发”网络共享基础设施,我认为 100-BaseT 应该没问题,但我还要确保设置了监控(这会占用网络元素上的一点带宽和 CPU,但非常值得),这样,您应该能够在需求增长到网络的全部容量之前提前计划升级到更快的网络链接。
答案2
静态地,避免因容量不足而导致失败 (;-)) 与所有事情一样,如果您使用的容量超过理论容量的 80%,则很可能会造成太多数据包同时到达,并且您的容量将远远超过 100% 的需求即时。[真正老旧的“幼稚”以太网在使用率达到 30% 时就会出现问题,从而引发了以太网必须大量过度配置的都市传说]
从技术上讲,在进行任何动态操作之前,您需要消除缓冲区膨胀(参见 Dave Taht 的任何作品)。
动态地,在消除了缓冲区膨胀的隐藏瓶颈之后,绘制数据包丢失情况。IP 将丢弃数据包,以使实际最大值尽可能接近理论最大值,而丢弃就是它实现这一点的方式。每次丢弃都是一个正在修复的瞬时过载。[顺便说一句,这使得队列模型变得棘手]