LIFO或FIFO:测量数据中心以太网时延方法探讨
时延是数据中心以太网的一个关键性能指标。这是因为在高频率金融交易(HFT)、高性能计算(HPC)和类似的性能敏感型环境中,超低时延10GbE交换功能是处理巨大网络流量的关键,这常常意味着每天上百万次的交易。电子交易中价格和交易数据速率的不断攀升以及保持竞争力的需求推动着金融市场股东们投资最新技术,以便支持螺旋式上升的带宽要求,并降低数据流时延。
因此,现在时延测量已经成为数据中心以太网交换机供应商测试报告的一个重要部分。在评估这些系统所用的交换IC时,设计师需要明白时延测量方法有好多种,采用不正确的方法可能是一种错误,因为有些方法并不能测出真实性能。
近来在测试中使用的其中一些测量方法使得LAN交换芯片供应商声称具有超低时延。这是怎么做到的呢?使用末位进、首位出(LIFO)方法,存储转发交换机确实可以报告亚微秒的时延。然而,这不符合RFC1242,该文档建议优先采用首位进到首位出(FIFO)方法:"理想情况下所有设备的测量都应从帧前导位之后的第一个实际位开始。"这种方法能够更精确地测量数据包穿透交换机时遇到的任何存储或处理时间。
交换机架构和时延
2006年推出的第一台低时延10GbE交换机使用直通工作模式取得了十分优异的时延性能,这种模式下交换机可以在帧被完整接收之前就开始发送。而存储转发交换机不能取得低时延,这是因为数据包在从出口发送出去之前必须完全存储在内存中。但并不是所有直通交换机都有相同的时延性能,因为它们采用的交换架构有很大的区别。
存储器存取带宽一直是交换芯片架构师心头的痛。在使用传统的交叉开关矩阵和内存设计时,将没有足够的片上带宽允许每个输入端口同时写入相同的输出队列。为了解决这种阻塞问题,芯片架构可以在每个交换输入端使用虚拟输出队列,即所谓的组合式输入/输出队列(CIQQ)架构(图1)。
图1 组合式输入/输出队列(CIQQ)架构
虚拟输出队列可以在每个输入端口为每个交换输出端口(出口)提供一个队列。如果某个特定的出口队列临时受阻,那么与之对应的入口队列将实行流控,而以其它出口为目的地的数据包可以避过这个受阻队列,将数据发送给其它无阻塞的出口。然而,对于一个N端口交换机而言,这意味着N*N输入队列和关联调度器,从而增加了很大的复杂性。同时还会增加数据包时延,因为每个数据包通过交换机时必须排队两次。鉴于VOQ和关联调度器的复杂性,许多交换机设计通过一定程度的内部阻塞来降低复杂性,这将进一步增加时延。
新的共享式内存交换技术第一次通过SRAM IP实现性能提升,使交换机能够支持具有特别低时延、完全无阻塞输出排队、共享的内存架构,见图2。通过使用专有的高带宽内存结构,交换架构可以做得更简单,进而消除入口VoQ的复杂性和所需的额外内存。另外,组播数据包只需存储一次,从而进一步降低了对片上内存的要求。由于只有一次内存入队/出队和非常低的内部阻塞,因此这种技术可以提供最低的时延。
图2 具有特别低时延的输出排队、共享内存架构
时延测量方法
测量通过交换机的时延有多种方法:首位进到末位出(FILO)、末位进到首位出(LIFO)、首位进到首位出(FIFO)和末位进到末位出(LILO)。每种方法的时延测量都是在交换机入口和出口进行的。
这种方法测量的是交换机的时延加上数据包从出口发送出来的时间。虽然这种方法对于服务器群集中的应用到应用时延等的测量足够了,但不是一种非常好的交换机时延测量方法。为了更好地表明这个观点,可以想像一个电气连接器。FILO方法意味着连接器具有与数据包大小相关的时延,但事实上连接器具有零时延。
大数据包会给这些测量结果增加较大的时延,使得提取实际交换机时延变得更加困难。最后,考虑两个串联的直通交换机。当使用FILO方法时,通过两个交换机的时延不能通过累加单个交换机的测量时延计算得到。鉴于这些因素,这种方法并不是测量交换机时延的正确方法。
LIFO方法在20世纪80年代晚期和90年代早期用于测量传输单元大小固定的电信网络中的时延。一些测试报告仍参考1991年发表的RFC 1242,这个时间比直通交换技术的发明早很多。对于只提供存储和转发交换机的供应商来说,这种测量方法可以使结果看起来更好,因为这种方法不考虑数据包在转发之前被完整存储在交换机中的时间。从图3可以看出,直通交换机的时延不能用这种方法精确测量。
图3 使用FIFO和LIFO方法的测量结果
这两种方法从效果上看是相同的,是正确测量通过直通交换机的时延的唯一方法。为了说明这些方法的工作原理以及与LIFO测试的区别,让我们对
- H3C发布OAA架构 可集成流量分析等业务(07-02)
- 如何使用SQL Server 2005 DAC 登录到服务器(04-10)
- 利用科来网络回溯分析技术诊断网络设备异常丢包故障(01-23)
- 以太网接入技术简介(01-09)
- 以太网技术的发展(01-24)
- 基于PC104总线的嵌入式以太网卡设计(01-31)