Citrix NetScaler技术原理,在网上看到一篇有关这样的文章感觉不错,给大家分享一下:

纵观全球IT领域,持续增长的Web应用开发和部署模式,让我们切身体验了Web化的ERP、CRM和Web 2.0所带来的诸多好处。然而,Web应用的飞速发展意味着企业必须提升负载均衡器或应用交付控制器(ADC)的性能和容量。然而,提升性能并不是简单地采用最新的Intel®或AMD处理器就能实现的。单个处理器为性能带来的增量效益已经逐渐消失。因此要实现应用交付控制设备性能的大幅提升,必须采取新的系统架构,即多核处理器体系架构。与传统处理器不同,多核处理器将多个处理元件嵌入了同一处理器封装。例如,老式Pentium® 4处理器一次只能处理一条指令,但4核Intel® Core™ 2 Quad处理器可并行处理4条指令。

突破单核壁垒
采取多核或多处理器来实现高性能必须克服大量的技术障碍,如有效的分配负载,实现处理器间的资源共享,以及精确的管理不能并行处理的关键功能。这里面有一个共同的技术难点,即数据信息同步。
如果要实现多处理器之间的数据信息同步,就会制约系统整体数据处理性能,它会在关键时刻放缓所有进程,确保程序结果的准确性,但此时系统性能会快速下滑。同时,由于同步设计所带来的复杂性,系统出错的可能性也越来越大。
因此最有效的解决方案就是避免数据信息同步操作,但这说来简单,做起来却很困难。消除同步不仅需要重新构建软件架构,还需进行大量的先期规划,并充分了解硬件、软件和系统之间的相互作用。
 
Citrix NetScaler nCore技术
 
Citrix® NetScaler® nCore™技术作为一种高性能的并行处理架构,利用多核技术实现有效扩展,以满足要求最为苛刻的Web应用的需求。要构建能有效利用多核处理器的系统必须考虑以下两个问题:
(1)系统如何能够确保所有核心一直处于工作状态?
(2)系统如何消除处理器间信息同步的损耗?
两者是相辅相成的,消除多核处理器间的同步损耗让每个处理器可尽可能地实现最佳性能。Citrix NetScaler MPX产品平台采用零共享的设计思路,成功避免信息同步操作。不需要处理器之间进行数据信息同步已变成一个差异化的特征,使得NetScaler能够以极高的效率利用多个处理器分别执行大量TCP/IP处理进程,加速和优化任务,以及执行安全策略,从而线性的增加了NetScaler产品的处理性能和容量。
零共享设计:
提升性能所面临的共同挑战就是共享。多个组件需要共享数据时,性能就成了问题。零共享有以下几大好处:
1、无同步化开销
2、大幅降低复杂性,从而提高稳定性
3、可更妥善地处理故障,因为组件之间不会互相影响
4、nCore架构利用NetScaler数据包处理引擎的关键属性实现了零共享设计。
零共享的运作原理:
 
nCore零共享技术采取了为每个CPU处理器部署一个数据包处理引擎的架构,每个CPU核与数据包处理引擎之间进行1对1映射,确保硬件资源得到充分利用。而每个数据包处理引擎都具备完整的NetScaler功能集,并通过专用存储空间实现对应用流量的优化和加速。由于每个数据包处理引擎都可执行所有的功能,因而可完整进行Web应用交易,无需借助其它数据包处理引擎的力量。引擎之间的相互独立让同步不再成为一个问题。同时,每个数据包处理引擎都有专用的CPU和内存资源,它们之间也不用相互等候。如此一来,NetScaler MPX产品可在极短的延迟时间内实现极高的吞吐量。例如MPX 17000可以达到20Gbps的7层应用数据处理能力。

 

数据包队列中的流量分配方法:

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

nCore的重要性

nCore技术的高性能和可扩展性对目前和将来的Web应用交付有着极其重要的影响。nCore技术可:
● 优化Web 2.0和复杂互联网应用的性能
● 改善处理流量峰值的能力
● 扩充容量来支持更多用户和更多应用
● 实现Web应用交付需求的多合一平台:4-7层负载均衡、缓存、广域负载均衡(GSLB)、压缩、SSL ×××、SSL卸载、应用安全性、性能监控及其它更多功能
nCore技术将可能消耗很多CPU资源的复杂的7层处理能力提高了6倍。此外,nCore技术将TCP并发连接处理能力提高了7倍,更多的并发用户可同时使用应用。
 
总结
Citrix NetScaler nCore技术作为一种高性能的并行处理架构,可有效利用多核技术实现扩展,以满足要求最为严苛的Web应用的需求。nCore零共享设计消除了所有数据同步开销,因此,多核技术的改善将继续提升线性性能扩展。
nCore架构的线性可扩展性实现了无与伦比的性能-企业有机会开发创新性解决方案,以应对未来可能面临的Web应用交付挑战。由于拥有足够的存储空间和处理器容量,因而可优化、改善和扩展Web技术的新发展,而无需重新构建IT架构。将来,Citrix NetScaler MPX产品平台利用nCore技术继续提升性能,并利用充足的容量来开发全新功能。