论文部分内容阅读
在高性能的计算机集群系统中,采用高速网络设备对集群中的各个节点进行互连已成为当前集群技术发展的主流。网络组件是集群系统体系结构的重要组成部分,直接影响了集群系统的各项性能指标。另一方面,集群网络具有许多明显不同于一般网络的优势特征,例如高带宽、低延迟、高可靠性等等,如果系统中的网络组件不能充分利用这些优点,就容易成为系统的瓶颈。因此,针对高性能集群网络的特点,对网络进行优化设计非常必要。RPC是一项广泛用于集群与分布式系统的网络组件与通信技术。然而,当传统的RPC技术用在基于高速网络的集群环境中时其性能表现很一般,其主要原因就在于传统的RPC技术并没有充分利用到集群网络中所特有的优点。仔细研究了传统的RPC技术,研究表明传统RPC在集群网络中性能表现差的主要原因之一是由RPC技术中的序列化/反序列化操作引起的。因此提出了一种同构集群下专用的序列化/反序列化方法——SimpSerial,它能够减少传统的序列化/反序列化方法中的数据拷贝次数,以此来大幅度地提升集群网络的性能。将SimpSerial在真实的集群环境中加以实现,并进行了测试。测试表明此方法能显著提升集群网络的性能,当测试中所传输的数据块大于2MB时,其对集群网络带宽性能的提升幅度可达到40%以上。在高性能集群系统中,如果RPC超时现象频繁发生,将会严重影响集群的整体性能。传统的自适应超时机制能动态地调整超时值,因此它们被广泛使用在RPC系统中。然而,传统的自适应超时机制也有它们自己的缺点,并且有待于进一步的改进。通过对超时现象发生时服务端与客户端的具体情况的仔细分析,发现传统的单机版自适应超时机制存在两个重要的问题,其一是当超时发生时,服务端经常会发生一种本文称之为"RPC任务拥塞”的情形;另一个问题是超时值的调整趋势为只增不减,因此,超时值在系统运行过程中会调整得越来越大。根据上述分析,提出了一种分区间的RPC自适应超时机制,它将超时值区间划分为两个不同的子区间,当超时值位于不同的区间时,分别采用了不同的超时值调整方法,使系统的RPC超时值调整方法达到更好的调整精度与自适应能力。分区间的超时机制具有更大的超时值调整范围与更快的调整速度,因此可以在一定程度上解决“RPC任务拥塞”问题;同时,在这个机制中有一个新颖的算法,用于当超时值偏大时可以将其调整到一个合理范围。因此,这个机制具有较好的精确度与自适应能力。TCP与RDMA都是集群网络中最常用的协议。早期文献中的分析认为TCP协议在高速网络环境中容易成为性能瓶颈,并且将主要原因归结为TCP协议在工作过程中存在着多次的内存拷贝操作,这导致了整体效率低下以及较多的CPU资源消耗。相比之下,RDMA最主要的优势在于其对内存的单次访问,因此具有数据传输速率快、CPU利用率低的优点。对目前的主流集群服务器平台中各种新部件的特点进行了分析,并且在此平台上对TCP的性能进行了研究。研究表明,TCP的工作效率与性能可以随着计算机体系结构和硬件技术的发展而提升。在目前的主流集群服务器平台上,TCP协议能够获得非常好的性能表现。相比之下,RDMA技术带来的编程方面的复杂性、兼容性问题依然严重存在。所以,TCP在集群平台上仍然有着广阔的应用与发展空间。在上述分析基础上,在Cappella集群系统的开发过程中设计并实现了相应的网络中间层。Cappella系统网络中间层包含了两种主要的用户态通信方式分别为:RPCover TCP、RPC over RDMA,测试表明这两种方式都能获得非常高的带宽性能。通过网络中间层实例设计,对集群系统中提升网络中间层性能的方法进行了归纳总结。可以认为,在集群系统中,在各个层次减少数据拷贝操作、在TCP协议中使用多流技术是集群系统中提升网络性能的两类典型的方法。