当前位置: 首页 > 科技观察

描述数据中心交换机的重要性能指标——缓存

时间:2023-03-16 12:36:00 科技观察

交换机是数据中心不可或缺的网络设备,在数据中心发挥着举足轻重的作用。在日常使用和购买中,大多关注交换机的背板带宽、端口密度、单端口速率、协议特性等性能指标。很少有人关注缓存指标,这是一个经常被人们忽略的指标。.事实上,缓存是数据中心交换机的重要性能参数,是衡量交换机设备性能的重要指标。交换机的缓存不同于通常的缓存概念。通常,缓存是指当一个硬件要读取数据时,首先会从缓存中寻找需要的数据。如果找到了,就直接执行。显然,在缓存中查找数据的速度要比在内存中快很多。这是CPU内部的内存地址空间。在交换机上,缓存是数据交换的缓冲区,有时也称为数据包缓冲区大小,是交换机用来协调不同网络设备之间速度匹配的一种队列结构。突发数据可以存储在缓冲区中,直到被慢速设备处理。该交换机有直通转发、存储转发和无分片转发三种转发模式,其中存储转发模式应用最为广泛。其实无论采用哪种转发方式,都必须使用缓存,但是直通式转发只解析报文的前几个字节再转发。缓存中存储的数据量小,转发速度快。数据经过验证,很容易转发错误信息。大多数交换机的片上缓存都不大,一般只有几兆到几十兆。虽然单端口带宽在不到十年的时间里从1G发展到100G,但是缓存并没有太大的提升。如果一个100G的端口遇到突发流量,就会出现十几MB的丢包。显然在实际应用中会有限制,除非在应用流量上明确不应该出现突发流量。那么有人可能会疑惑,既然缓存这么重要,为什么不把它做大呢?其实以现有的芯片集成技术应该不难实现。的确,缓存理论上可以通过芯片工艺设计进行放大,但是过大的缓存会影响正常通信条件下数据包的转发速度,因为过大的缓存空间需要相对较多的寻址时间,增加了设备的成本。在一些对时延要求比较高的应用场景中,过大的缓存会适得其反,所以不能简单地扩大缓存,必须在缓存和时延之间做一个权衡。“你不能两者兼得。”当然,随着技术的进步,交换机的缓存能力是可以不断提升的,尽可能不增加延迟。受时钟和总线带宽能力的限制,缓存性能难以大幅提升。考虑到功耗和成本的平衡,缓存容量不会大幅增加。有的交换机还在交换机芯片外挂了一个DRAM缓存来提高交换机的缓存容量,这样延迟可能会大一些,但是缓存可以做的很大,达到1G以上。缓存很重要,但是到底需要多少缓存,却没有正确答案。巨大的缓存意味着网络不会丢掉任何流量,但也意味着网络延迟的增加,这取决于数据中心的业务。例如,在搜索业务中,搜索需要在海量数据库中查找结果,这很可能会产生网络突发流量,甚至造成网络拥塞。在这样的网络业务中,需要部署一个具有大缓存的交换机设备;在金融领域,尤其是股票市场中的证券交易网络中,一纳秒的差异都可能带来巨大的收益或损失。这样的字段对网络时延要求非常高,不允许拥塞,所以不需要太多的缓存。一些金融数据中心还需要低延迟。对于交换机,转发延迟控制在纳秒级别。缓存通常是由不同的网络接口速度、突发的流量或多对一的流量传输引起的。最常见的问题是多对一流量的突然变化。例如,一个应用程序构建在多个服务器集群节点上。如果其中一个节点同时向所有其他节点请求数据,则所有回复应同时到达。发生这种情况时,所有网络流量都会涌入请求者的交换机端口。如果交换机没有足够的出口缓冲区,它可能会丢弃一些流量,或增加应用程序延迟。足够的网络缓冲区可以防止由低级协议引起的数据包丢失或网络延迟。缓存是交换机的一个整体概念。整个交换芯片共享缓存,每个端口的数量可以调整。这些缓存是在交换机上管理的,所以有两种模式:QOS模式和FC模式。每个数据包都必须在硬件上存储、处理然后转发,但是存储空间是有限的,所以当缓存不足时,就会出现丢包。在QOS模式下,拥塞时不会发送流控帧,但可以调度端口上不同优先级的流量。报文必须丢弃,优先级低的报文先被丢弃。选择性可以通过设置相关配置丢包来实现。FC模式下,当发生拥塞时,会发送一个流控帧(需要手动配置,一般设备默认不开启。如果对端设备发生拥塞,也会发送一个流控帧,本设备必须响应处理流控帧,这将是非常消耗设备端口的Cache)。QOS模式下的所有缓冲区由所有端口共享,