找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6396|回复: 0

Citrix NetScaler nCore 技术

[复制链接]

238

主题

329

帖子

2119

积分

超级版主

Rank: 8Rank: 8

积分
2119
QQ
发表于 2016-3-4 23:59:35 | 显示全部楼层 |阅读模式
IMG_6061.JPG
简介
     从全球范围来看,Web 应用开发和部署的增长趋势没有任何减缓的迹象。事实上,这种增长趋势还在继续。如果您了解了Web 应用如传统ERP、CRM 和Web 2.0 的好处,您自然就不会惊讶了。然而,Web 应用的飞速发展是以牺牲性能为代价的。大量的新型开发方式和结构(如Ajax、SOA、Comet 和Rails)与传统Web 服务和JSON 的广泛使用对网络性能提出了更高的要求,并占用了更多的服务器周期和网络带宽,这对企业来说是无法承受的。
       要适应这些应用的快速增长意味着企业必须提升负载均衡器或应用交付控制器(ADC)的性能和容量。然而,提升性能并不是简单地采用最新的Intel®或AMD 处理器就能实现的。单个处理器为性能带来的增量效益已经逐渐消失。企业要实现性能的提升,必须完善IT 架构,即多核处理器。与传统处理器不同,多核处理器将多个处理元件嵌入了同一处理器封装。例如,老式Pentium® 4 处理器一次只能处理一条指令,但4核Intel® Core™ 2 Quad 处理器可并行处理4 条指令。
     一般而言,应用和软件的性能不会因为这些新推出的多核处理器的使用而得到大幅提升。换句话说,主频为3.33GHz 的4 核处理器并不等于主频为13.32GHz 的一个处理器。

突破单核壁垒
     要想通过部署多核或多处理器来实现高性能意味着IT 必须克服大量的技术障碍,如进行有效的负载分配,实现处理器间的资源共享,以及确保能恰当管理不能平行处理的关键功能。这些技术障碍有一个共同之处,即数据同步。
     而数据同步又会制约高性能网络处理,它会在关键时刻放缓所有进程,以消除潜在冲突,确保程序结果的准确性。极为讽刺的是,数据同步的目的是确保准确性,但设计同步时又增加了复杂性,而随着复杂性的增加,错误的可能性也越来越大。
     同步带来的负面影响在处理多线程应用时得到了充分体现。在多线程应用中,任务被分成几个并行运行的小程序(线程)。初次部署多线程应用可大幅改善性能。然而,随着应用复杂性的增长和其它线程的增加,性能又会快速下滑。性能下滑的原因是相互作用的软件组件越多,就需要越多的同步操作,而这样一来,实现多线程之间同步所需的时间抵消了多线程所带来的效益。
     最有效的解决方案就是消除同步操作,但这说来简单,做起来却很困难。消除同步不仅需要重新构建软件架构,还需进行大量的先期规划,并充分了解硬件、软件和系统之间的相互作用。

Citrix NetScaler nCore 技术
     Citrix® NetScaler® nCore™技术作为一种高性能的并行处理架构,可利用多核技术实现有效扩展,以满足要求最为严苛的Web 应用的需求。要构建能有效利用多核处理器的系统必须考虑以下两个问题:
     (1)系统如何能够确保所有CPU 核一直处于工作状态?
     (2)系统如何消除处理器间的同步损耗?
     两者是相辅相成的,消除处理器间的同步损耗让每个处理器可尽可能地实现最佳性能。要了解NetScaler 如何成功避免同步操作,首先必须掌握NetScaler 数据包处理引擎的本质特性。

1、NetScaler 数据包处理引擎
      Citrix NetScaler 数据包处理引擎的目的是将数据包从网络中分离出来,执行大量TCP/IP 处理进程,加速和优化任务,以及执行安全策略。当数据包处理引擎处理完成一组数据包时,便会将回应返回到网络,然后继续处理新的数据包。
     NetScaler 数据包处理引擎的高效率使其可在几微秒内完成数据包的处理。NetScaler 超低延迟数据包处理引擎优化了Web 应用交付和用户体验。利用精心设计的分段数据包处理,数据包处理引擎即可消除数据同步需求。这样一来,单个CPU 核上运行的单个数据包处理引擎可支持几千兆的吞吐量。
     与基于Linux 的传统产品相比,NetScaler 数据包处理引擎的高效率所带来的影响是非常值得赞赏的。传统的Linux TCP 堆栈会让数据包在不同层之间传输时进行排队处理,而每一层在接收数据前都会产生大量的数据同步损耗。正因为如此,一些基于Linux 并结合ASIC 芯片处理数据交换的产品设计会将这种延迟放大。
     值得注意的是,随着NetScaler 平台的发展,不需要数据同步已变成一个差异化的特征,使得NetScaler 能够以极高的效率将数据包处理引擎延伸到多个处理器核心。

2、零共享设计
     提升性能所面临的共同挑战就是共享。多个组件需要共享数据时,性能
就成了问题。零共享有以下几大好处:
     1、无同步化开销
     2、大幅降低复杂性,从而提高稳定性
     3、可更妥善地处理故障,因为组件之间不会互相影响
     nCore 架构利用NetScaler 数据包处理引擎的关键属性实现了零共享设
计。
IMG_6062.JPG
3、零共享的运作原理
    nCore 零共享架构采用了一系列数据包处理引擎,每个引擎都具备完整的NetScaler 功能,可通过专用存储空间实现应用优化和加速。由于每个数据包处理引擎都可执行所有的功能,因而可完整进行Web 应用交易,无需借助其它数据包处理引擎的力量。
     引擎之间的相互独立让同步不再成为一个问题。同时,资源争夺让数据包处理引擎再也不用相互等候。如此一来,NetScaler 可在极短的延迟时间内实现极高的吞吐量。
     数据包处理引擎在每个CPU 上运行时有两种不同的状态:
     1)搜寻需要处理的数据包;
       2)正在处理数据包。
      每个数据包处理引擎搜寻的是基于硬件的数据包队列中的数据包。为了支持零共享理念,每个数据包处理引擎都有自己的队列,不和其它CPU 核共享。因为硬件部署是完全对称的,因此,出站数据包也将通过每个处理器的专用队列发送出去。
     由于每个数据包处理引擎可利用整个CPU 核,因此每个CPU 核与数据包处理引擎之间进行1 对1 映射,确保硬件提供的每个可用周期都可得到充分利用。随着系统新增CPU 核,可大幅提高线性性能,提高平台在将来的可扩展性。

4、数据包队列中的流量分配方法
     在多核CPU 系统设计中,CPU 核之间分配网络流量有多种方法,常用的三种方法如下:
     1、功能并行性
     2、将网络接口映射到处理器
     3、单独流量分配
     在应用交付领域,功能并行性的典型实现方法是通过分离多核CPU 之间的任务来实现的。结果,指定CPU 核只承担相应功能。例如,核1专门用于管理网络流量,核2 用于处理TCP/IP,核3 用于7 层(如HTTP)处理等等。这在表面上似乎也很合理,因为它将一种功能的峰值从另一种中分离了出来。然而,在现实情况下,这种架构通常会大幅降低CPU多核的利用率。例如,如果一个应用要求进行更多的7 层处理,而不是SSL 处理,它也不会将未使用的CPU 资源从SSL 转移到7 层处理上。
IMG_6063.PNG
IMG_6064.JPG
     将网络接口映射到处理器是传统的网络领域方法,这种方法是将物理端口连接到指定CPU 核上。更新一些方法则是将IP 地址映射到指定CPU核。然而,与功能并行性类似,这也依然无法实现均衡多核CPU 之间的负载,单个应用就有可能用尽单一CUP 核的容量,而不能利用系统其它空闲CPU 的容量。
      经过对功能平行性以及将网络接口映射到处理器这两种方法的评估后,NetScaler nCore 技术决定选择单独流量分配的方法。其实,这种方法就是最细粒度的负载共享机制,充分利用了单个数据包处理引擎可执行产品的每项功能这一能力,最终实现均衡多核CPU 之间的负载,确保单个应用或功能不会受制于单个CPU 核的容量,仍可以使用其它空闲CPU 的能力。
IMG_6065.PNG
     为了以最高速度实现单独流量分配,必须使用对称的流量分配器。这种特殊的硬件可捕获发送到每个网络接口的数据包,并快速确定由哪个数据包处理引擎入站队列来接收指定的网络流量。由于决策的根据是TCP/IP 报头信息,因此,分配器必须确保指定流量的数据包会发送到相同的数据包处理引擎。
IMG_6066.JPG
     流量分配器使用的算法均衡了所有数据包处理引擎之间的流量分配,从而确保所有数据包处理引擎能支持系统的全部工作负载。在nCore 架构中,宝贵的处理器资源决不会用于数据同步损耗,也绝不会不均衡地分配网络流量。

5、nCore 管理
      从历史的角度来看,ADC 资源管理是极具挑战性的。如果处理能力稀缺,最好能将所有可用容量用于数据包处理引擎。这样的话,就只剩很少容量来支持必要的管理功能,如跨一个或多个接口提供SNMP 通信以及支持管理控制台访问。但NetScaler 可保留部分容量以进行管理,因此,即使流量繁重,管理员也能有效管理系统。
IMG_6067.JPG
     由于nCore 架构从根本上改变了处理容量的本质,过去稀缺的容量如今变得足够多了。因此,nCore 架构可将一个完整的CPU 核及其相应的专用存储空间专门用来进行管理。
      这为管理提供了更强的灵活性,从而实现进一步的创新和功能开发。同样重要的是,nCore 架构确保即使是在流量繁重的情况下,管理员也能获得高效的管理界面。

nCore 的重要性
     nCore 技术的高性能和可扩展性对目前和将来的Web 应用交付有着极其重要的影响。nCore 技术可:
     ● 优化Web 2.0 和富互联网应用的性能
     ● 改善处理流量峰值的能力
     ● 扩充容量来支持更多用户和更多应用
     ● 实现Web 应用交付需求的多合一平台:4-7 层负载均衡、缓存、广域负载均衡(GSLB)、压缩、SSL VPN、SSL 卸载、应用安全性、性能监控及其它更多功能
     nCore 技术将可能消耗很多CPU 资源的复杂的7 层处理能力提高了6倍。此外,nCore 技术将TCP 并发连接处理能力提高了7 倍,更多的并发用户可同时使用应用。

总结
     Citrix NetScaler nCore 技术作为一种高性能的并行处理架构,可有效利用多核技术实现扩展,以满足要求最为严苛的Web 应用的需求。nCore零共享设计消除了所有数据同步开销,因此,多核技术的改善将继续提升线性性能扩展。
     nCore 架构的线性可扩展性实现了无与伦比的性能-企业有机会开发创新性解决方案,以应对未来可能面临的Web 应用交付挑战。由于拥有足够的存储空间和处理器容量,因而可优化、改善和扩展Web 技术的新发展,而无需重新构建IT 架构。将来,Citrix NetScaler nCore 将继续提升性能,并利用充足的容量来开发全新功能。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表